Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore หลักการเขียนโปรแกรม ปวส.

หลักการเขียนโปรแกรม ปวส.

Published by tamcomed50, 2020-12-27 06:22:21

Description: หลักการเขียนโปรแกรม ปวส.

Search

Read the Text Version

ใบความรู้ วิชาหลักการเขยี นโปรแกรม (Programming principles) รหสั วิชา 30204 - 0001 จุดประสงค์รายวิชา เพ่อื ให้ 1. เข้าใจเกยี่ วกับหลักการเขยี นโปรแกรม 2. สามารถวเิ คราะหอ์ อกแบบผังงาน รหสั เทยี ม และข้ันตอนการแก้ไขปญั หา (Algorithm) 3. สามารถออกแบบและเขยี นโปรแกรมโดยใช้ภาษาคอมพวิ เตอร์ 4. สามารถเขยี นคาสั่งควบคุมการทางานเบื้องตน้ 5. มเี จตคติและกิจนิสยั ทดี่ ใี นการปฏบิ ัติงานคอมพิวเตอร์ด้วยความละเอียดรอบคอบ และถกู ต้อง สมรรถนะรายวิชา 1. แสดงความร้คู วามเข้าใจเก่ยี วกบั หลักการเขียนโปรแกรม 2. วิเคราะห์ออกแบบผังงาน รหสั เทียมและขัน้ ตอนการแก้ไขปญั หา (Algorithm) 3. ออกแบบและเขยี นโปรแกรมโดยใช้ภาษาคอมพวิ เตอร์ 4. เขียนคาสง่ั ควบคมุ การทางานเบ้อื งตน้ คาอธิบายรายวิชา ศกึ ษาและปฏบิ ัตเิ ก่ียวกับหลกั การเขียนโปรแกรมและการวเิ คราะหง์ าน ผงั งาน รหัสเทยี ม และขั้นตอน การแกไ้ ขปญั หา (Algorithm) โครงสร้างภาษาคอมพิวเตอรแ์ ละการใชก้ ระบวนการเขยี นโปรแกรม คาส่ังการ คานวณ เงื่อนไขกรณี และการทาซา้ การออกแบบและเขียนโปรแกรมอย่างงา่ ย



! บทที่ 1 แนะนําภาษา C++ เบอ้ื งตน ♦!ประวตั ภิ าษา C , C++ ค.ศ. 1970 มีการพัฒนาภาษา B โดย Ken Thompson ซึ่งทาํ งานบนเครอ่ื ง DEC PDP-7 ซึ่ง ทาํ งานบนเครอ่ื งไมโครคอมพวิ เตอรไ มไ ด และยังมีขอจาํ กัดในการใชงานอยู (ภาษา B สืบทอดมาจาก ภาษา BCPL ซง่ึ เขยี นโดย Marth Richards) ค.ศ. 1972 Dennis M. Ritchie และ Ken Thompson ไดสรางภาษา C เพื่อเพิ่มประสิทธิภาพ ภาษา B ใหดียิ่งขึ้น ในระยะแรกภาษา C ไมเ ปน ทน่ี ยิ มแกน กั โปรแกรมเมอรโ ดยทว่ั ไปนกั ค.ศ. 1978 Brian W. Kernighan และ Dennis M. Ritchie ไดเ ขยี นหนงั สอื เลม หนง่ึ ชอ่ื วา The C Programming Language และหนังสือเลมนี้ทาํ ใหบุคคลทั่วไปรูจักและนิยมใชภาษา C ในการเขียน โปรแกรมมากขน้ึ แตเ ดมิ ภาษา C ใช Run บนเครอ่ื งคอมพวิ เตอร 8 bit ภายใตระบบปฏิบัติการ CP/M ของ IBM PC ซึ่งในชวงป ค. ศ. 1981 เปน ชว งของการพฒั นาเครอ่ื งไมโครคอมพวิ เตอร ภาษา C จึงมี บทบาทสาํ คญั ในการนํามาใชบ นเครอ่ื ง PC ตง้ั แตน น้ั เปน ตน มา และมีการพัฒนาตอมาอีกหลาย ๆ คาย ดงั นน้ั เพอ่ื กาํ หนดทิศทางการใชภาษา C ใหเปนไปแนวทางเดียวกัน ANSI (American National Standard Institute) ไดกาํ หนดขอ ตกลงทเ่ี รยี กวา 3J11 เพื่อสรางภาษา C มาตรฐานขน้ึ มา เรยี นวา ANSI C ค.ศ. 1983 Bjarne Stroustrup แหง หอ งปฏบิ ตั กิ ารเบล (Bell Laboratories) ไดพัฒนาภาษา C++ ขึ้นรายละเอยี ดและความสามารถของ C++ มีสวนขยายเพิ่มจาก C ที่สาํ คัญ ๆ ไดแก แนวความคดิ ของการ เขียนโปรแกรมแบบกําหนดวตั ถเุ ปา หมายหรอื แบบ OOP (Object Oriented Programming) ซง่ึ เปน แนว การเขียนโปรแกรมที่เหมาะกับการพัฒนาโปรแกรมขนาดใหญที่มีความสลับซับซอนมาก มีขอมูลที่ใชใน โปรแกรมจาํ นวนมาก จงึ นยิ มใชเ ทคนคิ ของการเขยี นโปรแกรมแบบ OOP ในการพฒั นาโปรแกรมขนาด ใหญใ นปจ จบุ นั น้ี ♦ข! อ ดขี องภาษา C และ C++ โปรแกรมเมอรโ ดยทว่ั ไปในปจ จบุ นั นยิ มพฒั นาโปรแกรมดว ยภาษา C และ C++ ดว ยเหตผุ ล ดงั น้ี 1. โปรแกรมเมอรส ามารถสรา งโปรแกรมทค่ี วบคมุ การทาํ งานของคอมพวิ เตอรแ ละการโตต อบ ระหวางผูใชกับคอมพิวเตอรไดอยางเต็มประสิทธิภาพ เชน การเขียนโปรแกรมในลักษณะที่ผูใชควบคุม โปรแกรมในสภาพแวดลอ ม ท่เี ปน Event-Driven คือ ผูใชสามารถควบคุมเหตุการณตาง ๆ ของโปรแกรม ศิริชยั นามบุรี แนะนําภาษา C++ เบอ้ื งตน !

!2 ในขณะทาํ งานไดไมใชผูใชถูกควบคุมโดยโปรแกรม ลักษณะการทาํ งานแบบ Event-Driven ไดแก โปรแกรมทท่ี าํ งานในสภาพแวดลอมภายใตระบบปฏิบัติการวินโดวส เปน ตน 2. ภาษา C และ C++ มีประสิทธิภาพของภาษาอยูในระดับที่ใกลเคียงกับภาษา Assembly มากที่ สุด แตม คี วามยดื หยนุ ในยดึ ตดิ กบั ฮารด แวรค อมพวิ เตอรห รอื Microprocessor รนุ ใดรนุ หนง่ึ ทาํ ใหสามารถ นาํ โปรแกรมท่ีสรา งขน้ึ ไปทาํ งานไดก บั เครอ่ื งคอมพวิ เตอรไ ดท กุ รนุ 4. ภาษา C++ สนับสนุนการเขียนโปรแกรมในลักษณะเชิงวัตถุหรือ OOP (Object Oriented Programming) ซง่ึ เปน เทคนคิ การเขยี นโปรแกรมทน่ี ยิ มใชเ ขยี นโปรแกรมขนาดใหญท ม่ี จี ํานวนขอมูลใน โปรแกรมมาก 5. โปรแกรมเมอรส ว นใหญจ ะนยิ มใชภ าษา C, C++ พฒั นาโปรแกรมประยกุ ตใ นงานดา นตา ง ๆ เปน จํานวนมากในปจจุบัน เพราะประสิทธิภาพของภาษาที่ไดเปรียบภาษาอื่น ๆ ♦!ขน้ั ตอนการพฒั นาโปรแกรมดว ย C++ การพฒั นาโปรแกรมดว ยภาษา C++ มีขั้นตอนในการสรางคลายกับภาษาระดับสูงทั่วไป แตภ าษา C++ ไดจ ดั เตรยี มเครอ่ื งมอื ในการพฒั นาโปรแกรมในสภาพแวดลอ มทร่ี วมไวด ว ยกนั แบบเบด็ เสรจ็ ที่เรียก วา IDE (Integrated Development Environment) คือ ไดน าํ เครอ่ื งมอื ทจ่ี าํ เปน ทง้ั หมดในการพฒั นา โปรแกรมมารวมไว ดวยกัน ทั้ง Editor, Compiler, Link Library และ Help เพื่อความสะดวกของผูใชใน ขณะทาํ การพฒั นาโปรแกรม การพฒั นาโปรแกรมดว ยภาษา C++ มีขน้ั ตอนตามลาํ ดบั ดงั น้ี 1. ขน้ั ตอนการสรา ง Source File หรอื แฟม ตน ฉบบั เปน Text File โดยการใชสวน Editor ของ IDE (หรอื สรา งจาก Editor ของโปรแกรมอน่ื ๆ ก็ได) เมอ่ื สรา งเสรจ็ แลวจึงบันทึก Source File ไว โดย กําหนดสวนขยายเปน CPP เชน TEST.CPP (C Plus Plus) โดย Source File นจ้ี ะตอ งสรา งใหถ กู ตอ งตาม โครงสรางและไวยากรณของภาษา C++ ทั้งหมดกอน 2. การคอมไพล (Compile) คอื การใชต วั โปรแกรมหรอื Compiler ของ C++ ในการแปล Source File ใหเปนไฟลภาษาเครื่องที่เรียกวา Object File หรอื Object Code จะไดไฟลที่มีสวนขยายเปน OBJ เพิ่มขึ้นมาอีกหนึ่งไฟล เชน TEST.OBJ 3. การเชอ่ื มโยง (Linking) เปน ขน้ั ตอนการเชอ่ื มโยงไฟลป ระเภท OBJ เขากับแฟมจากคลัง (Library) ของภาษา C++ จาํ นวน 1 แฟมหรือมากกวา ซึ่งไฟลใน Library นจ้ี ดั เตรยี มไวโ ดยผสู รา งภาษา C++ ผลก็คือจะไดผลลัพธเปนไฟลที่สามารถนาํ ไปทาํ งาน หรอื Run ไดโ ดยอสิ ระ หรอื ทเ่ี รยี กวา Executable File มีสวนขยายเปน EXE เชน TEST.EXE เปน ตน ขน้ั ตอนของการสรา ง Source File , การ Compile และการ Link ทั้งหมดจะดาํ เนนิ การไดใ น IDE ของ C++ ทจ่ี ดั เตรยี มไวใ หแ ลว อยา งอตั โนมตั ิ ทาํ ใหผูเขียนโปรแกรมสามารถทาํ สรา งโปรแกรมดว ย ภาษา C++ สะดวกยิ่งขึ้น ศิริชยั นามบรุ ี แนะนําภาษา C++ เบอ้ื งตน

! 3 ! Executable File ! TEST.EXE ! Source File C++ Library File ! TEST.CPP ! iostream.h, conio.h ! Compile Link ! Object File ! TEST.OBJ ! รปู แสดง ขน้ั ตอนการพฒั นาโปรแกรมดว ย C++ ♦!การใช IDE ของ C++ ในการพฒั นาโปรแกรมดว ยภาษา C++ โดยใช Turbo C++ Version 3.0 มี ซง่ึ ไดจ ดั เตรยี มเครอ่ื ง มอื ในการพฒั นาโปรแกรมทเ่ี รยี กวา IDE มาใหแลว ลักษณะการใชงานใน IDE มีความคลายคลึงกับ Editor ของภาษาระดับสูงอื่น ๆ เชน BASIC, PASCAL การเรยี กใช IDE ของ C++ ใหเขาเรียกใชไฟล TC.EXE ดงั น้ี C:\\TC>TC แลวกดแปน Enter หรอื C:\\TC\\BIN>TC แลวกดแปน Enter (กรณี TC.EXE อยูใน path C:\\TC\\BIN) โปรแกรมสภาพแวดลอ มของ IDE ดังนี้จอภาพตอไปนี้ ศิริชัย นามบรุ ี แนะนําภาษา C++ เบอ้ื งตน

!4 การเปด IDE ของ TURBO C++ version 3.0 ในระบบปฏิบัติการ Windows'95 ในลักษณะหนา ตางแบบ Graphic ก็สามารถทํางานไดเ ชนเดยี วกนั โดยการเลอื กโปรแกรม MS-DOS Prompt จากเมนู ของ Windows'95 เมอ่ื เครอ่ื งหมาย prompt ของ DOS ปรากฏขึ้นแลว ก็ใหเปลี่ยน directory ไปยัง path ของ Turbo C++ ดงั น้ี C:\\>cd\\tc [enter] C:\\TC>TC [enter] เพื่อ run program จะปรากฎ IDE ของ Turbo C++ ดังภาพขางลางในรูปแบบ Graphic windows (ถาไมเปนดังภาพ ให กดแปน Alt+Enter เพื่อสลับการแสดงผลระหวาง Graphic window กับ IDE แบบเดมิ ศิริชัย นามบรุ ี แนะนําภาษา C++ เบอ้ื งตน

!5 ! พิมพ Code ของภาษา C++ ใน ! Editor น้ี ♦!ตวั อยา งวธิ กี ารเขยี นโปรแกรมและ Compile ดวย C++ จากตวั อยา ง Source File ตอ ไปน้ี ใหทดลองสรางโปรแกรมภาษา C++ โดยใช IDE ของ Turbo C++ 3.0 ของบรษิ ทั Borland International, Inc. (หรอื อาจใช C++ ของบรษิ ทั อน่ื ๆ ) /*Program : First.CPP Written by: Mr.Sirichai Date : 10/1997 */ #include <iostream.h> void main(void) { cout << \"My name is Mr.Sirichai Namburi \\n\"; cout << \"Office : Computer Department,RIPA\"; } ศิริชัย นามบรุ ี แนะนําภาษา C++ เบอ้ื งตน

!6 ขน้ั ท่ี 1 สราง Source File ใน Editor โดยการ Click Mouse ในหนา ตา ง Editor แลวพิมพ รหสั คาํ สั่งของภาษา C++ ตามตวั อยา งใหถ กู ตอ ง ขน้ั ท่ี 2 บันทึกแฟม Source File โดยใชค าํ สั่งเมนู File, Save เลือกหรอื พมิ พช ่อื ไดรฟและ ไดเรกทอร่ี จากนั้นพิมพชื่อไฟล First.CPP แลว Click ปุมคาํ สั่ง OK หรือใชฟงกชันคีย F2 เพอื่ สง่ั บันทึกแฟมก็ได (ถา ตอ งการเขยี นเปน ภาษา C ใหบันทึกเปนไฟลเปนประเภท C เชน First.C) ขน้ั ท่ี 3 ใชคาํ สั่งสั่ง Run, Run หรอื Ctrl+F9 เพอ่ื ทาํ การ Compile , Link และทดลอง Run โปรแกรมทส่ี รา งขน้ึ เพอ่ื ทาํ งาน จากนัน้ กดแปน Alt+F5 เพอ่ื ดผู ลการทํางานของโปรแกรมในหนา ตา ง ผลลัพธ (User Screen) ผลการทํางานจากโปรแกรม หรอื ผลการ RUN ไดด งั น้ี My name is Mr.Sirichai Namburi Office : Computer Department,RIPA ขน้ั ท่ี 4 กรณีมีขอผิดพลาด IDE ของ C++ จะไมสามารถทาํ การ Compile ได จะแจง ขา วสารขอ ผดิ พลาดไวในกรอบหนาตาง Message จะตองแกไขใหถูกตองกอน แลว จงึ ดาํ เนนิ การในขน้ั ท่ี 3 ใหม ♦!โครงสรา งของโปรแกรม C++ การเขยี นโปรแกรมดว ย C++ มโี ครงสรา งของโปรแกรมพน้ื ฐานดงั ตวั อยาง /*Program : First.CPP 1. หมายเหตหุ รอื คาํ อธิบาย (comments) Written by: Mr.Sirichai Date : 10/1997 */ 2. Preprocessor, Directive, header file #include <iostream.h> 3. Function main() void main() { 4. Statement ของคาํ สั่งอยูใน block ของ cout << \"My name is Mr.Sirichai Namburi \\n\"; เครอ่ื งหมาย{ …. }แตล ะ Statement จบดว ย ; cout << \"Office : Computer Department,RIPA\"; } สวนประกอบเบื้องตนของ C++ มีดังนี้ 1. Comments or Remark หมายถงึ สว นทเ่ี ปน การอธบิ ายหรอื หมายเหตใุ นโปรแกรม เขียน อธบิ ายไวในเคร่อื งหมาย /* ………*/ หรอื เขยี นตามหลงั เครอ่ื งหมาย // ก็ได ในขณะที่แปล Compiler ของ C++ จะไมนาํ ไปแปลดวย แตต อ งเขยี น Comments อยูภายในเครื่องหมายใหถูกตอง โดยท่ี /*…..*/ ศิริชยั นามบุรี แนะนาํ ภาษา C++ เบอ้ื งตน

!7 มักใชกับ Comment หลาย ๆ บรรทดั สวน // ใชกับการ Comments ตามหลัง Statement เปน สว นใหญ เชน /*Program : First.CPP Written by: Mr.Sirichai หมายเหตหุ รอื คาํ อธิบาย Date : 10/1997 */ หรอื cout << \"My name is Mr.Sirichai Namburi \\n\"; // display text to screen 2. #include <iostream.h> บรรทดั ทข่ี น้ึ ตน ดว ย # นจ้ี ะตอ งมเี สมอในทกุ โปรแกรม เรยี กวา preprocessor เรยี กคําวา include ทต่ี ามเครอ่ื งหมาย # นว้ี า directive และชื่อไฟลที่อยูในเครื่องหมาย <…..> (จะใชเ ครอ่ื งหมาย “……” แทนก็ได) เรยี กวา header file หรอื include file ซึ่งเปนไฟลที่เก็บไว ในคลังคาํ สั่ง (Library File) ของ C++ ขอ สงั เกต การเขียน preprocessor directive จะตอ งเขยี นรายการละ 1 บรรทดั และไมตอง มเี ครอ่ื งหมาย ; ที่ทายประโยค #include <iostream.h> หมายถึง การสั่งให Compiler นาํ สิ่งที่อยูในไฟลที่กําหนดชอ่ื มา ให คือไฟล iostream.h มารวมกับ source file ขณะทาํ การ link เพอ่ื ใหไ ด Executable file นน่ั หมาย ความวา ในโปรแกรมทเ่ี ราสรา งขน้ึ ไดมีการเรียกใชฟงกชันที่ถูกเก็บไวใน Header File นน้ั 3. void main() เปน การเรยี กใชฟ ง กช นั หลกั ของโปรแกรมคอื ฟงกชัน main() ซึ่งจะตองมีชื่อ ฟงกชันนี้เสมอ ฟงกชัน main() เปนฟงกชันหลัก จะประกอบไปดวยวงเล็บเปด { เปน การเรม่ิ ตน ภายในมี การประกาศตวั แปร มีประโยคคาํ สั่งของภาษา C++ มีชื่อฟงกชันอื่น ๆ ที่ผูเขียนสรางขึ้นแลวเรียกใชภาย ในฟงกชัน main() แลวจบฟงกชันดวยวงเล็บปด } คาํ วา void เปน ชอ่ื ประเภทขอ มลู (data type) ที่ใหคาวาง จะทาํ ใหฟงกชันไมมีการสงคา ใด ๆ กลับไปยังชื่อฟงกชันที่ถูกเรียกใช ทั้งนี้ เน่อื งจากใน C++ เมื่อมีการเรียกใชฟงกชันใดฟงกชันหนึ่ง เมื่อฟงกชันทาํ งานเสรจ็ แลว จะตองสงคาคืนกลับมายังจุดที่เรียกใชชื่อฟงกชันเสมอ เพื่อไมใหสงคืนคาใด ๆ กลับมา จึงใชคาํ วา void เพื่อกาํ หนด main() ใหเปนฟงกชันที่ไมตองคืนคากลับมา ณ จดุ เรยี กใชห รอื เปน ฟง กช นั ประเภทไมม คี า นน่ั เอง 4. cout << \"My name is Mr.Sirichai Namburi \\n\"; cout << \"Office : Computer Department,RIPA\"; เปน สว นของประโยคคาํ สั่งหรือ Statement ในภาษา C++ ซึ่งตองเขียนใหถูกตองตามไวยากรณ ของภาษา ทกุ ประโยคตอ งจบดว ยเครอ่ื ง semicolon (;) เสมอ สาํ หรบั คําวา cout เปน object ซึ่งถูกเก็บไว ในไฟล iostream.h ดงั นน้ั จงึ ตอ งกาํ หนดชื่อไฟล iostream.h ไวใ นสว นของ preprocessor directive ดว ย ศิริชยั นามบรุ ี แนะนาํ ภาษา C++ เบอ้ื งตน

!8 header file ที่สามารถใชรวมกับ #include ใน C++ เพื่อใหสามารถเรียกใชคาํ สั่งหรือฟงกชันตาง ๆ ทผ่ี ใู ชต อ งการได ไดแ กรายชอื่ ไฟลใ นตารางตอ ไปนี้ โดยกอ นทจี่ ะเรยี กใช header file ใดนน้ั ผใู ชจ ะ ตองตรวจสอบกอนวาฟงกชันที่ตองเรียกใชถูกสรางไวใน header file ใด เชน ถามีการเรียกใชฟงกชัน getch() ในโปรแกรม จะตอ งเขยี น preprocessor directive เรยี กใช header file ที่ชื่อ conio.h เนอ่ื งจาก ฟงกชัน getch() ถูกเก็บไวในไฟล conio.h ซึ่งเปนคลังคําสั่ง (Library) ของ C++ มีรูปแบบการเรียกใช ดงั น้ี #include <conio.h> ตาราง แสดงรายชื่อ Header file ใน C++ และรายละเอียดกลุมฟงกชันที่เรียกใชไดในแตละ herder file Header File Groups of Functions in Header file alloc.h Declares memory management functions (allocation, deallocation, etc.). assert.h Defines the assert debugging macro. Bcd.h Declares the C++ class bcd and the overloaded operators for bcd and bcd math functions. Bios.h Declares various functions used in calling IBM-PC ROM BIOS routines. complex.h Declares the C++ complex math functions. Conio.h Declares various functions used in calling the DOS console I/O routines. ctype.h Contains information used by the character classification and character conversion macros. Dir.h Contains structures, macros, and functions for working with directories and path names. Direct.h Defines structures, macros, and functions for working with directories and path names. Dirent.h Declares functions and structures for POSIX directory operations. Dos.h Defines various constants and gives declarations needed for DOS and 8086-specific calls. Errno.h Defines constant mnemonics for the error codes. Fcntl.h Defines symbolic constants used in connection with the library routine open. Float.h Contains parameters for floating-point routines. fstream.h Declares the C++ stream classes that support file input and output. ศิริชัย นามบุรี แนะนําภาษา C++ เบอ้ื งตน

! 9 Header File Groups of Functions in Header file generic.h Contains macros for generic class declarations. graphics.h Declares prototypes for the graphics functions. io.h Contains structures and declarations for low-level input/output routines. iomanip.h Declares the C++ streams I/O manipulators and contains macros for creating parameterized manipulators. iostream.h Declares the basic C++ (version 2.0) streams (I/O) routines. Limits.h Contains environmental parameters, information about compile-time limitations, and ranges of integral quantities. locale.h Declares functions that provide country- and language-specific information. malloc.h Memory management functions and variables. math.h Declares prototypes for the math functions, defines the macro HUGE_VAL, and declares the exception structure used by matherr. mem.h Declares the memory-manipulation functions. (Many of these are also defined in string.h.) memory.h Memory manipulation functions. new.h Access to operator new and newhandler. process.h Contains structures and declarations for the spawn... and exec... functions. search.h Declares functions for searching and sorting. setjmp.h Defines a type used by longjmp and setjmp. share.h Defines parameters used in functions that use file-sharing. signal.h Defines constants and declarations for signal and raise. stdarg.h Defines macros used for reading the argument list in functions declared to accept a variable number of arguments. stddef.h Defines several common data types and macros. stdio.h Defines types and macros needed for the Standard I/O Package defined in Kernighan and Ritchie and extended under UNIX System V. Defines the standard I/O predefined streams stdin, stdout, stdprn, and stderr, and declares stream-level I/O routines. ศิริชยั นามบุรี แนะนําภาษา C++ เบอ้ื งตน

! 10 Header File Groups of Functions in Header file stdiostr.h Declares the C++ (version 2.0) stream classes for use with stdio FILE structures. stdlib.h Declares several commonly used routines: conversion routines, search/sort routines, and other miscellany. stream.h Declares the C++ (version 1.2) streams (I/O) routines. string.h Declares several string- and memory-manipulation routines. strstrea.h Declares the C++ stream classes for use with byte arrays in memory. sys\\locking.h Definitions for mode parameter of locking function. sys\\stat.h Defines symbolic constants used for opening and creating files. sys\\timeb.h Declares the function ftime and the structure timeb that ftime returns. sys\\types.h Declares the type time_t used with time functions. time.h Defines a structure filled in by the time-conversion routines, and a type used by other time routines; also provides prototypes for these routines. utime.h Declares the functions utime and the structure utimbuf values.h Defines important constants, including machine dependencies; provided for UNIX System V compatibility. varargs.h Defines old style marcos for processing variable argumnet lists. Superceded by stdarg.h ! หมายเหตุ ถา ตอ งการทราบวา header file ประกอบดวยฟงกชั่นใดบาง ใหใ ชค าํ สง่ั Help, Index ! จากเมนใู น IDE ของภาษา C++ เพื่อคนหารายละเอียดและตัวอยางการใชฟงกชัน ! ♦ไ!อเดน็ ตฟิ ายเออร (identifier) ใน C++ ! ไอเด็นติฟายเออร (identifier) หมายถึง ชื่อที่มีอยูในสวนตาง ๆ ของโครงสรา งโปรแกรม C++ ซึ่งไดแก ชอ่ื ของ เลเบล (label) คอนสแตนต (constant) แวเรยี เบลิ หรอื ตวั แปร (variable) ฟงกชัน (function) และชนดิ ของขอ มลู (data type) ! ประเภทของไอเดน็ ตฟิ ายเออร มี 3 ประเภท คือ keyword , standard identifier และ user-defined identifier มีรายละเอียด ดงั น้ี ! 1. Keyword เปนชื่อที่มีความหมายและวิธีการใชแนนอน ไดกาํ หนดไวในภาษา C++ แลว คอมไพเลอรจะไมยอมใหเราใชชื่อนี้ในลักษณะที่แตกตางไปจากที่กาํ หนดไว ตวั อยา งของ keyword เชน void if else int char float case auto return ศิริชัย นามบุรี แนะนาํ ภาษา C++ เบอ้ื งตน

! 11 ! 2. Standard Identifier หมายถึง ชื่อที่กําหนดขน้ึ ในคอมไพเลอร ชื่อเหลานี้มีความหมายและวิธี ใชตามเง่อื นไขท่ีคอมไพเลอรกาํ หนดไว แตเราสามารถเปลี่ยนแปลงวิธีการทาํ งานและเงื่อนไขการใชชื่อ เหลา นไ้ี ด โดยคอมไพเลอรจะยกเลิกเงื่อนไขเดิมและเปลี่ยนมาใชเงื่อนไขที่เรากาํ หนดขนึ้ ใหม standard identifier สวนใหญจะเปนชื่อฟงกชันที่มีอยูใน C++ เชน abort, abs, arc, ftime, getch, open, rename เปน ตน 3. User-defined identifier หมายถึง ชอ่ื ทเ่ี รากาํ หนดความหมายและเงอ่ื นไขในการใชข น้ึ เองโดย ผูใช แตต ัง้ กาํ หนดขนึ้ ตามกฎเกณฑของ C++ ซึ่งมีรายละเอียดของกฎการตั้งชื่อ ดงั น้ี - อกั ขระตวั แรกตอ งเปน ตวั อกั ษรหรอื underscore ( _ ) จะเปนตัวเลขไมได ตวั อกั ขระตวั ตอ ไปจะเปน ตวั อกั ษร ตวั เลข หรอื เครอ่ื งหมาย _ ก็ได เรียงกันโดยหามมีชองวางภายในชื่อ - ชื่อหามซาํ้ กับคียเวิรด (Keywords) ของภาษา C++ เชน main void if - คอมไพเลอรจะถือวาอักษรพิมพเล็กและพิมพใหญ มีความแตกตางกัน ดงั นน้ั Identifier ชื่อFIRST_PROGRAM กับ first_program จะถือวาเปนชื่อตางกันและเปนคนละชื่อกัน - ชื่อมีความยาวไมจํากัด แตจะมคี วามหมายเฉพาะอกั ขระ 32 ตวั แรกเทา นน้ั แตค วรตง้ั ชื่อใหมีความหมายสอดคลองกับวัตถุประสงคการนําชอ่ื นน้ั ไปใชภ ายในโปรแกรม เพื่อความสะดวกใน การจดจาํ ในขณะเขยี นโปรแกรม ♦!ชนดิ ของขอ มูล(Data Type) ขอมูลใน C++ แบง ชนดิ ขอ มลู ออกเปน 2 ประเภท คือ 1. Simple data type เปนชนิดขอมูลที่ใชแสดงคาของสิ่งใดสิ่งหนึ่งเพียงรายการเดียว เชน คา ความสูง นา้ํ หนกั จํานวนนกั เรยี น อณุ หภมู ิ ระดบั คะแนน เปน ตน 2. Structure เปนขอมูลชนิดใชแสดงคาของสิ่งใดสิ่งหนึ่งหลายรายการ เชน ความสูงของนัก เรยี นใน ชั้น ม. 6, อณุ หภมู ขิ องแตล ะวนั ในเดอื นตลุ าคม, รายชอ่ื นกั เรยี นใน 1 กลุม ตองกาํ หนดเปน ขอ มลู ชนดิ โครงสรา งแบบ อารเ รย (array) แบบโครงสรา ง(structure) หรอื แบบยเู นยี น(union) เปน ตน ขอมลู Simple data type รายละเอียดชนิดของมูลและชวงของขอมูลประเภท Simple data type แสดงไดด งั ตารางตอ ไปน้ี ศิริชยั นามบรุ ี แนะนาํ ภาษา C++ เบอ้ื งตน

! 12 ตาราง แสดงชอ่ื ชนดิ ของขอ มลู ชวงของคาขอมูลและขนาดหนวยความจาํ ที่ใช ชนิดขอมูล คาตํ่าสุด คาสูงสุด ใชพื้นที่หนวยความจาํ char -128 127 1 byte unsigned char 0 255 1 byte int -32,768 32,767 2 byte unsigned int 0 65,535 2 byte short int -32,768 32,767 2 byte long -2,147,483,648 2,147,483,647 4 byte unsigned long 0 4,294,967,295 4 byte float 3.4x10-38 3.4x10+38 4 byte double 1.7x10-308 1.7x10+308 8 byte long double 3.4x10-4932 3.4x10+4932 10 byte หมายเหตุ ชอ่ื ชนดิ ของขอ มลู ไดแ ก char, unsigned char , int , unsigned int, short in, long , unsigned long , float , double , long double เปน keyword ท่นี าํ ไปกาํ หนดประเภทขอมูลที่จะใชใน โปรแกรม •! ตัวอยางโปรแกรม size_mem.cpp เปน ตวั อยา งโปรแกรมแสดงขนาดของหนว ยความจําทข่ี อ มูลแตละชนิดใชพื้นที่หนวยความจาํ โดยใช คยี เ วริ ด sizeof ซึ่งใหคาขนาดหนวยความจําทข่ี อ มูลชนิดนั้นใช มหี นว ยเปน byte /*Program : size_mem.cpp Process : Display size of memory for each simple data type */ #include <iostream.h> #include <conio.h> void main() { clrscr(); //clear screen in conio.h cout<< \"Size of char = \"<<sizeof(char)<< \" bytes\"<<endl; cout<< \"Size of unsigned char = \"<<sizeof(unsigned char)<< \" bytes\"<<endl; cout<< \"Size of int = \"<<sizeof(int)<< \" bytes\"<<endl; cout<< \"Size of unsigned int = \"<<sizeof(unsigned int)<< \" bytes\"<<endl; cout<< \"Size of short int = \"<<sizeof(short int)<< \" bytes\"<<endl; cout<< \"Size of long = \"<<sizeof(long)<< \" bytes\"<<endl; cout<< \"Size of unsigned long = \"<<sizeof(unsigned long)<< \" bytes\"<<endl; cout<< \"Size of float = \"<<sizeof(float)<< \" bytes\"<<endl; cout<< \"Size of double = \"<<sizeof(double)<< \" bytes\"<<endl; cout<< \"Size of long double = \"<<sizeof(long double)<< \" bytes\"<<endl; getch(); //wait for press any key } ศิริชยั นามบุรี แนะนาํ ภาษา C++ เบอ้ื งตน

! 13 ♦ก! ารประกาศตวั แปร (Variable Declaration) และการกาํ หนดคา ใหต วั แปรใน C++ ตัวแปร (Variables) ในภาษา C++ หมายถึง ชื่อที่กําหนดขน้ึ เพอ่ื ใชเ กบ็ คา ของขอ มลู หรอื คา คงท่ี ประเภทตา ง ๆ ในขณะโปรแกรมทาํ งาน ซง่ึ ผเู ขยี นโปรแกรมตอ งตง้ั ชอ่ื ตวั แปรตามกฎเกณฑก ารตง้ั ชอ่ื ประเภท user defined identifier การใชตัวแปรในภาษา C++ จะตอ งมกี ารประกาศ (Declaration) ชอ่ื ตวั แปรและประเภทของตวั แปร (Data type) ไวกอน จึงจะสามารถนาํ ตวั แปรไปใชใ นโปรแกรมได มรี ปู แบบการประกาศตวั แปรดงั น้ี Data_type variable_name; หรอื ! Data_type variable_name1, variable_name2,varible_name3, … ; โดยท่ี Data_type คือ ชอ่ื ของประเภทขอ มลู ของตวั แปร ที่สามารถเก็บคาได เชน int, float variable_name คือ ชือ่ ของตัวแปรทีผ่ ใู ชกาํ หนดเอง ถาในประเภทนั้นมีมากกวา 1 ตวั ให ใชเ ครอ่ื งหมาย , แยก และจบประโยคดวยเครื่องหมาย ; (semi-colon) การประกาศตวั แปรเพอ่ื ใชใ นโปรแกรมของ C++ มี 2 ลกั ษณะ คือ 1. definition คือ เปนการประกาศเพื่อกาํ หนดความหมาย เปน ประโยคคาํ สั่งที่ประกอบดวย ชื่อ ประเภทของตวั แปร และตัวแปร โดยทั่วไปมักจะประกาศไวตอนตน ๆ ของฟงกชัน หรอื โปรแกรม เชน #include <iostream.h> void main() { int number; float sales, purchase; การประกาศตวั แปรในลกั ษณะ definition char grade; … } 2. การประกาศแบบกําหนดคา ณ ตาํ แหนง ทใ่ี ช หมายถึง การประกาศตวั แปร ณ ตาํ แหนง ท่ี ตอ งการใชต วั แปรในโปรแกรม ก็จะประกาศพรอมกับหนดคาใหกับตัวแปรทันที ดงั ตวั อยา งโปรแกรม ตัวอยางโปรแกรม pos_var.cpp แสดงวธิ ีการประกาศตวั แปร ณ จดุ ทต่ี อ งการใชใ นโปรแกรม /*Program : pos_var.cpp แนะนาํ ภาษา C++ เบอ้ื งตน Process : Show declared varaible at any position in program */ #include <iostream.h> #include <conio.h> void main() ศิริชัย นามบุรี

! 14 ประกาศตัวแปร total ณ ตาํ แหนง ทต่ี อ งการใช { float sale,price; clrscr(); sale=500.25; price=5.25; float total=sale*price; cout<< \"Total Sale = \"<<total; getch(); } วิธีการกําหนดคา ใหแ กต วั แปรใน C++ ทาํ ได ดังนี้ 1. การใชประโยคคําสง่ั เครอ่ื งหมายเทา กบั (=) โดยกําหนดใหชื่อตัวแปรที่จะใชเก็บคาอยูทางซาย มอื ของ เครอ่ื งหมาย = ตวั แปรหรอื คา คงทอ่ี ยทู างดา นขวาของเครอ่ื งหมาย ดงั เชน ตวั อยา งโปรแกรมตอ ไปนี้ •! ตัวอยางโปรแกรม variable.cpp แสดงการกําหนดคาคงทใ่ี หก บั ตวั แปรในโปรแกรม โดยใช เครอ่ื งหมายเทา กบั = /*Program : variable.cpp Process : Display set value of varible */ #include <iostream.h> #include <conio.h> void main() { int number; //declaration variable การประกาศตวั แปรภายในฟง กช นั main() float sales,purchase; //declaration variable // set value of variable number = 50; sales = 5000.75; การกาํ หนดคาคงที่ใหกับตัวแปร purchase = 3500.50; clrscr(); // function clear screen from <conio.h> //show value from variable cout << \"Show varlue of variable\"<<endl; cout << \"number = \" << number<<endl; cout << \"sales = \" << sales<<endl; cout << \"purchase = \" << purchase; getch(); // function getch() for wait to press anykey from <conio.h> } หมายเหตุ กรณเี ปน ตวั แปรประเภทตวั เลข คา คงทด่ี า นขวามอื หา มมเี ครอ่ื งหมายวรรคตอนใด ๆ ทั้งสิ้น ยกเวนจุดทศนิยม สว นตวั แปรประเภท char กําหนดคา คงทใ่ี นเครอ่ื งหมาย '_' เชน ch = 'A'; 2. การกําหนดคา เรม่ิ ตน ใหแ กต วั แปร เมื่อมีการประกาศใชตัวแปรในลักษณะ definition มีการ กาํ หนดคา คงท่ใี หแกตัวแปรทันที ศิริชยั นามบรุ ี แนะนําภาษา C++ เบอ้ื งตน

! 15 •! ตัวอยางโปรแกรม varia2.cpp แสดงการกําหนดคาใหแกตัวแปร number, sales, purchase ดว ยเครอ่ื งหมาย = เมอ่ื ประกาศตวั แปรในโปรแกรม ประกาศตัวแปร /*Program : varia2.cpp พรอ มกําหนดคา Process : Display set value of varible */ #include <iostream.h> #include <conio.h> void main() { int number=500; //declaration and set value variable float sales=500.50,purchase=3500.75; //declaration and set value variable clrscr(); // function clear screen from <conio.h> //show value from variable cout << \"Show varlue of variable\"<<endl; cout << \"number = \" << number<<endl; cout << \"sales = \" << sales<<endl; cout << \"purchase = \" << purchase; getch(); // function getch() for wait to press anykey from <conio.h> } 3. การกําหนดคาตวั แปรโดยการรบั คาทางแปนพิมพ โดยการใชฟงกชันในการรับขอมูล (Input) เขาไปเก็บไวในตัวแปร จะกลาวรายละเอียดตอไปในบทที่ 2 ตัวแปรประเภท Global และ Local การประกาศใชต วั แปรใน C++ สามารถทาํ ได 2 ลักษณะ คือ 1. Global variable คือ ตวั แปรทก่ี าํ หนดหรือประกาศไวนอกฟงกชันใด ๆ ทุกฟงกชัน สามารถนําตวั แปรประเภท Global ไปใชไดทุกฟงกชัน เพราะเปนลักษณะการประกาศแบบสารธรณะ 2. Local variable คือ ตวั แปรทก่ี าํ หนดหรือประกาศไวในฟงกชันใดฟงกชันหนึ่ง สามารถนํา ตัวแปรนั้นไปใชไดเฉพาะในฟงกชันนั้น ๆ เทา นน้ั ฟงกชันอื่นไมสามารถนาํ ไปใชได เพราะประกาศใน ลักษณะสวนตัวหรือเฉพาะที่ หมายเหตุ กรณที ม่ี กี ารตง้ั ชอ่ื ตวั แปรประเภท Global และ Local ซํา้ กัน จะถอื วาเปน ตวั แปรคนละ ตวั กนั เนื่องจากใชพ ื้นทใ่ี นหนว ยความจําในการเกบ็ ขอมลู ในตําแหนงที่ตางกัน แตถ ามีการเรียกใชช ื่อตวั แปร C++ จะนําตวั แปรประเภท Local มาใชกอนเสมอ •! ตัวอยางโปรแกรม glo_loc.cpp แสดงการประกาศตวั แปรประเภท Global และ Local ใน โปรแกรม ศิริชัย นามบุรี แนะนาํ ภาษา C++ เบอ้ื งตน

! 16 /*Program : glo_loc.cpp Process : define global and locat variable */ #include <iostream.h> #include <conio.h> char grade; //defined global variable ประกาศตวั แปรประเภท Global Variable void main() { int midterm,final,total; //defined local variable in function main() ประกาศตวั แปรประเภท Local clrscr(); Variable ในฟงกชัน main() midterm = 30; final=50; total=midterm+final; grade='A'; cout<< \"You get total score \"<<total<<\" And get grade = \" <<grade; getch(); } ♦!การกําหนดตวั แปรคงท่ี(Constant) ตัวแปรคงที่หรอื คอนสแตนต (Constant) หมายถึง ตัวแปรที่เก็บคาคงที่ที่ไมสามารถเปลี่ยนแปลง ได การกาํ หนดคอนสแตนต มีจุดประสงคเพื่อปองกันมิใหมีการเปลี่ยนแปลงคาของตัวแปรนั้นในขณะ ทาํ งาน สามารถกาํ หนดไดทั้งในลักษณะที่เปน Global และ Local รูปแบบการกาํ หนดคา คอนสแตนต ใช คาํ วา const นาํ หนา ประเภทขอ มลู และชอ่ื คอนสแตนต ดงั น้ี const ชนดิ ขอ มลู ชอ่ื คอนสแตนต = คาคงที่; ตวั อยา งเชน const int Day = 7; const int month = 12; const float PI = 3.1418926; const float Amount = 1.0E+2; // คือ 1.0 * 102 const float Rate = 1E-3; // คือ 1 * 10-3 const char name = 'A'; // ใหค า รหสั ASCII ของ A คือ 65 const char ch = 'B'; // ใหค า รหสั ASCII ของ B คือ 66 •! ตัวอยางโปรแกรม contst.cpp แสดงการกําหนดและการใช constant ในโปรแกรม มรี าย ละเอียด ดังนี้ ศิริชัย นามบุรี แนะนาํ ภาษา C++ เบอ้ื งตน

! 17 /*Program : const.cpp Process : Display constant in program */ #include <iostream.h> #include <conio.h> const float rate = 0.05; // Global constant void main() { const float tax=0.03; //Local constant float sales,income,total_tax; clrscr(); sales = 8500.50; income = sales*rate; total_tax=income*tax; cout<< \"Income = \"<< income <<endl; cout<< \"Total tax = \"<< total_tax <<endl; getch(); } ♦!การดําเนนิ การทางคณติ ศาสตร (Arithmetic Operations) ในการคาํ นวณทางคณิตศาสตรของภาษา C++ มีการใชเครื่องหมายสาํ หรบั การคาํ นวณ ดงั น้ี ตาราง แสดงเครอ่ื งหมายคาํ นวณทางคณิตศาสตรใน C++ ตัวดําเนินการ ความหมาย ตัวอยาง ผลลัพธ - การลบ 10-5 5 + การบวก 10+5 15 * การคูณ 10*5 50 / การหาร 10/5 2 % การหารคดิ เฉพาะเศษ 9%2 1 -- การลดคาครั้งละ 1 --x หรอื x-- x=x-1 ++ การเพิ่มคาครั้งละ 1 ++x หรอื x++ x=x+1 += การบวกสะสมในตัวแปร y+=x y=y+x -= การลบคาจากตัวแปร y-=x y=y-x *= การคูณคาจากตัวแปร y*=x y=y*x /= การหารจากตัวแปร y/=x y=y/x %= การหารคิดเศษจากตัวแปร y%=x y=y%x ตาราง แสดงลาํ ดบั การประมวลผล (Precedence) ของเครอ่ื งหมายคณติ ศาสตร เครอ่ื งหมายคณติ ศาสตร ลาํ ดบั การประมวลผล หมายเหตุ ศิริชัย นามบรุ ี แนะนาํ ภาษา C++ เบอ้ื งตน

! 18 () 1 ถาเครื่องหมายมีลําดับการ ++, -- (ใชแบบ prefix) 2 ประมวลผลระดับเดียวกันให - (เครอ่ื งหมายหนา ตวั เลข) 3 ดําเนินการจากซายไปขวา */% 4 +- 5 += -= *= /= %= 6 ขอ สงั เกต การใชโ อเปอเรเตอร (Operator) ในการเพิ่มคา(increment) ++ และลดคา(decrement) -- มีขอควรสังเกต ดงั น้ี 1. การเพ่ิมคาขึน้ ทีละ 1 ไดแกการเพิ่มคาใหแกตัวแปรครั้งละ +1 เชน count = count +1; count +=1; count++; ++count; สาํ หรบั ++ มีวิธีการใช 2 วิธี คือ แบบ prefix และ แบบ postfix มขี อแตกตางกนั ดงั ตวั อยา งตอ ไปนเ้ี ปน การใช ++ แบบ prefix price = 5; volume = 3; value = price * ++volume; // คา ของ value คือ 20 คา ของ volume คือ 4 จากประโยคคําสั่งนี้ คา ของ volume จะเพิ่มขึ้น 1 กอ นทจ่ี ะนําไปคูณกับ price แลว นํา ไปเก็บไวในตัวแปร value ตอ ไปน้ี ลองพิจารณาการใช ++ แบบ postfix price = 5; volume = 3; value = price * volume++; // คา ของ value คือ 15 คา ของ volume คือ 4 จากประโยคคําสั่งนี้ คา ของ volume คือ 3 จะถกู นําไปคูณกับ price คือ 5 กอนแลวนํา ไปเก็บไวในตัวแปร value จากนน้ั จงึ เพม่ิ คา ของ volume อกี 1 จึงมคี า เปน 4 2. การลดคาลงทีละ 1 ไดแกก ารลดคา ของตัวแปรคร้ังละ -1 เชน count = count -1; count -=1; count--; --count; สาํ หรบั -- มีวิธีการใช 2 วิธี คือ แบบ prefix และ แบบ postfix มขี อ แตกตา งการใชเ ชน เดียวกับการใช ++ ศิริชยั นามบรุ ี แนะนําภาษา C++ เบอ้ื งตน

! 19 ♦!การเปลย่ี นแปลงชนดิ ขอ มลู ในนพิ จนค ณติ ศาสตร ในนพิ จนท างคณติ ศาสตรเ มอ่ื มกี ารใชเ ครอ่ื งหมายคาํ นวณระหวา งขอ มลู หรอื ตวั แปรทม่ี ชี นดิ (Data Type) แตกตางกัน เชน ชนดิ float บวกกับ ชนดิ int ใน C++ จะปรับประเภทขอมูลของผลลัพธที่ ไดจากการคาํ นวณใหเ ปน ชนดิ ขอ มลู ทม่ี อี นั ดบั สงู กวา โดยอตั โนมตั ิ ดังแสดงอันดับความสาํ คญั ของชนดิ ขอ มลู ในตารางตอ ไปน้ี ตาราง แสดงอันดับความสาํ คัญ(Precedence) ของขอ มลู ประเภท Simple Data Type ชนดิ ตา ง ๆ ชนดิ ขอ มลู อนั ดบั ตวั อยาง long double สูงสุด int * long = long double char + int = int float int + float = float long int * double = double int float + double = double char ตา่ํ สุด long + long dobule = long double ♦เ!ครอ่ื งหมายเปรยี บเทยี บและตรรก (Comparison and Logical Operators) การเปรยี บเทยี บ หมายถึง การหาวา เมอ่ื นําคาที่อยูทางดานซายของเครื่องหมายกับคาที่อยูทางขวา ของเครอ่ื งหมายเปรยี บเทยี บ มาเปรียบเทียบกันแลวจะไดผลลัพธเปนจริงหรือเท็จ ซึ่งในแตละกรณีเมื่อ เปรียบเทียบกันแลว จะไดค า เปน จรงิ หรอื เปน เทจ็ เพยี งคา เดยี วเทา นน้ั โดย C++ จะใชคา 0 แทนเทจ็ และ 1 แทน จริง และมีลาํ ดับในการประมวลผลจากซายไปขวา ถาไมมีวงเล็บกาํ กับไว มเี ครอ่ื งหมายเปรยี บ เทียบดังนี้ ตาราง แสดงเครื่องหมายเปรียบเทียบใน C++ เครอ่ื งหมาย ความหมาย ตวั อยาง ผลลัพธ 5>1 1 (จรงิ ) > มากกวา 5<1 0 (เทจ็ ) 5==1 0 (เทจ็ ) < นอ ยกวา 5!=1 1 (จรงิ ) 5>=5 1 (จรงิ ) == เทากับ 5<=5 1 (จรงิ ) != ไมเทากับ >= มากกวาหรือเทากับ <= นอ ยกวา หรอื เทา กบั ศิริชยั นามบุรี แนะนําภาษา C++ เบอ้ื งตน

! 20 การหาคาลอจิก (Logic) หมายถึง การหาผลลัพธจาก Logic operator ซึ่งจะใหคาผลลัพธออกมา เปน จรงิ หรอื เทจ็ กรณใี ดกรณหี นง่ึ เทา นน้ั เครอ่ื งหมายทเ่ี ปน Logical operator ใน C++ แสดงไวในตาราง ดงั น้ี ตาราง แสดงเครอ่ื งหมายเปรยี บเทยี บเชงิ ตรรก (Logical operator) ใน C++ เครอ่ื งหมาย ความหมาย ตวั อยาง ผลลัพธ && AND (5==5)&&(5>3) 1 (จรงิ ) || OR (5<1)||(5>3) 1 (จรงิ ) ! NOT !(5==5) 0 (เทจ็ ) ตาราง แสดงคา เปน จรงิ และเทจ็ ในกรณตี า ง ๆ ทเ่ี ปน ไปไดท ง้ั หมดของ AND, OR , NOT โดยกําหนดให A และ B คอื ประโยคตรรกทใ่ี หค า จรงิ หรอื เทจ็ A B !A A&&B A||B จรงิ จรงิ เทจ็ จรงิ จรงิ จรงิ เทจ็ เทจ็ เทจ็ จรงิ เทจ็ จรงิ จรงิ เทจ็ จรงิ เทจ็ เทจ็ จรงิ เทจ็ เทจ็ •! ตัวอยางโปรแกรม logic_tst.cpp เปน การแสดงคา ตรรกทไ่ี ดจ ากการเปรยี บเทยี บดว ยเครอ่ื ง หมายเปรยี บเทยี บและ ตัวดําเนนิ การตรรก โดยคา 0 แทน เทจ็ และ 1 แทนจรงิ ดังนี้ /*Program : logic_tst.cpp Process : Test logical value of expression */ #include <iostream.h> #include <conio.h> void main() { clrscr(); cout<< \"Display Logic Operation :\\a\"; cout<< \"\\nLogic value of expression (3==5) :\" <<(3==5); cout<< \"\\nLogic value of expression (5==5) :\" <<(5==5); cout<< \"\\nLogic value of expression (3<=5) :\" <<(3<=5); cout<< \"\\nLogic value of expression (3>=5) :\" <<(3>=5); cout<< \"\\nLogic value of expression (3<=5)&&(5>3) :\" <<((3<=5)&&(5>3)); cout<< \"\\nLogic value of expression ((3<=5)&&(3>5)) :\" <<((3<=5)&&(3>5)); cout<< \"\\nLogic value of expression ((3<=5)||(3>5)) :\" <<((3<=5)||(3>5)); cout<< \"\\nLogic value of expression ((8<=5)||(3>=5)) :\" <<((8<=5)||(3>=5)); cout<< \"\\n\\nValue 1 is true, 0 is false ....press any key\"; getch(); } ศิริชัย นามบรุ ี แนะนาํ ภาษา C++ เบอ้ื งตน

! 21 ♦แ! บบฝกหัดทายบท 1. จงเขยี นโปรแกรมเพอ่ื คาํ นวณหาผลลัพธของนิพจนทางคณิตศาสตรตอไปนี้โดยกาํ หนดใหต วั แปร A=50 B=30 C=5 D=3 E = 10 1.1 (A+B)*(E-D) 1.6 --D+C+B-- 1.2 ++D+C*E 1.7 25*D/5+10 1.3 (25+A)/C+B 1.8 A+B--+D 1.4 A*=D 1.9 C*2+E*5 1.5 20*C+B+++D/2 1.10 (A*2)+B/C-15 2. จงบอกขนาดของหนว ยความจาํ ทต่ี วั แปรชนดิ ตา ง ๆ ตอ ไปนต้ี อ งใชใ นการจองพน้ื ทใ่ี นหนว ยความจํา char, int , float, double, long int, long double 3. จงเขยี นโปรแกรมเพอ่ื หาคาํ ตอบวา ประโยคตอ ไปนเ้ี ปน จรงิ หรอื เทจ็ ถากาํ หนดใหต วั แปร A = 20 B=30 C = 2 D = 5 E=50 3.1 (A>=B) && (A==A) 3.2 (B+C>A+D)|| (B+C<A+D)&&(D<10) 3.3 (A==20) && (B>=30) 3.4 (50==E ) || (!(D<=E) 3.5 !(D!=5) 3.6 (B+C+20)!=50 3.7 C==(D-3) 3.8 (A/C<=B) && (C+D<=A) || (D>A) 3.9 (A%C+5)==(E/5-10) 3.10 A<B&&D<E ศิริชัย นามบรุ ี แนะนาํ ภาษา C++ เบอ้ื งตน

! บทที่ 2 การแสดงผลและการรับขอ มูล ♦!ความหมายของการแสดงผล การแสดงผล หมายถึง การสง่ั ใหค อมพวิ เตอรน ําขอมูลและผลลัพธที่มีอยูในหนวยความ จาํ ไป แสดงผลออกที่อุปกรณแสดงผล (output device) ของคอมพวิ เตอร การแสดงผลที่อุปกรณแสดงผลอาจมี เพยี งอปุ กรณเ ดยี ว หรอื หลาย ๆ อปุ กรณพ รอ มกันกไ็ ด เชน แสดงผลที่จอภาพ เครอ่ื งพมิ พ( Printer) ลําโพง แผนดิสก เปน ตน ♦ก! ารแสดงผลทางจอภาพดว ย cout จากรปู แบบโครงสรา งของโปรแกรม C++ ในบทที่ 1 จะเห็นตัวอยางการใชประโยคคาํ สั่ง cout (อานวา c - out ซีเอาต ยอมาจาก character out) หมายถึง การแสดงผลในลักษณะอักษรหรือขอความ ทอ่ี ยใู นเครอ่ื งหมาย \"…… \" หรอื คา ของตวั แปร(variable)ออกทางจอภาพ cout เปนออบเจ็กต( object) อยูในไฟล iostream.h ซึ่ง cout จะเปน object ที่ทาํ หนา ทด่ี าํ เนนิ การเกี่ยวกับกระแสขอมูล(Stream) ของภาษา C++ ออกไปแสดงผลสูอุปกรณตาง ๆ << เปน operator หรอื ตวั ดาํ เนนิ การ มชี อ่ื วา put to หรอื สง ไปท่ี หรอื เรยี กวา insertion หมายถึง การแสดงขอ ความ เครอ่ื งหมาย << จะทาํ หนา ทน่ี าํ คา ทอ่ี ยทู างขวาของเครอ่ื งหมายซง่ึ อาจจะ เปนคาคงที่ ขอ ความหรอื string ทอ่ี ยใู นเครอ่ื งหมาย \"……\" หรอื คา ตวั แปร(variable) ก็ได สงใหแก Object ที่อยูทางซายของเครื่องหมาย รูปแบบการแสดงผลขอความทางจอภาพ โดยใช cout << มดี งั น้ี ! cout << \" ขอความ \" << \"ขอความ \" << ตัวแปร; ! cout << ตัวแปร<<\"ขอความ\"<<ตัวแปร<<…; •! ตัวอยางโปรแกรม cout_exp.cpp แสดงการใช cout << แสดงขอความออกทาง จอภาพ ศิริชัย นามบุรี การแสดงและการรบั ขอ มลู !

!23 /* Program : cout_exp.cpp #iPncrolucdeess<:iodsistrpelaamy c.ho>ut object in iostream.h */ {void main() ccoouutt<<<<\"\"CT+h+isiisshTiguhrbloanCg+u+agPer\"o;gram \"; } จากตวั อยา งโปรแกรมน้ี cout จะทาํ หนาที่สงกระแสขอมูลขอความ This is Turbo C++ Program C++ is high language ไปแสดงที่จอภาพ ณ ตาํ แหนง ปจ จบุ นั ท่ี cursor ชี้อยู •! โปรแกรม cout_ex2.cpp แสดงขอความตอกันโดยใช << ออกทางจอภาพ /* Program : cout_ex2.cpp Process : display cout object in iostream.h */ #include <iostream.h> void main() { cout<< \"This is Turbo C++ Program.\"<<\" \"<<\" It is very easy.\"; cout<< \"I love C++.\"<<\" \"<<\"It's high level language.\"; } จากโปรแกรม cout_ex2.cpp จะแสดงขอความตอไปนี้บนจอภาพ This is Turbo C++ Program. It is very easy. I love C++. It's high level language. ♦ต! าํ แหนง แสดงผลทจ่ี อภาพดว ย endl 1. การใช endl เปน โอเปอเรเตอรป ระเภทตวั ผสม (manipulator) ทาํ หนา ทเ่ี ลอ่ื นเคอรเ ซอร เพอื่ ขึน้ บรรทดั ใหมและการแสดงผลขอ ความท่ีตามมาจะขึน้ บรรทดั ใหมดว ย •! ตัวอยางโปรแกรม endl_exp.cpp แสดงขอความ และกําหนดใหแสดงขอความขึ้น บรรทดั ใหมด ว ย manipulator คือ endl /* Program : endl_exp.cpp Process : display cout object in iostream.h */ #include <iostream.h> #include <conio.h> void main() { clrscr(); //clear screen standard function from conio.h ศิริชยั นามบุรี การแสดงและการรบั ขอ มูล

!24 cout << \"This is Turbo C++ Program\"<<endl; cout << \"It is very easy.\"<<endl; cout <<endl<<endl; // space 2 line cout << \"I like C++ Program\"<<endl<<endl; cout << \"Press any key to continue...\"<<endl; getch(); //get character standard function from conio.h } 2. การใช setw(n) ทาํ หนาที่กําหนดความกวางของตวั เลขหรือขอความกอ นทจี่ ะแสดงผลใหม ีคา เทากับ n อกั ษร เรยี กคา n วา เปน อารก วิ เมนต (argument) เพื่อใชในการแสดงผลที่จอภาพในลักษณะชิด ขวา โดยตอ งเรยี กใช Header file ที่ชื่อ iomanip.h ในขณะ compile ดว ย ดงั ตวั อยา งตอ ไปน้ี cout << setw(10) << \"World\"; หมายถึง กาํ หนดใหค าํ วา World มีความกวางในการแสดงผล 10 ตาํ แหนง โดยนับจากดานซาย ของจอภาพ อกั ษร d จะเรม่ิ พมิ พต ําแหนง คอลมั นท ่ี 10 และเริ่มพิมพอักษร lrow มาทางซายคอลัมนที่ 9,8,7 และ 6 •! ตัวอยางโปรแกรม setw.cpp เปนการใช setw กําหนดความกวางในการแสดงผล เพอ่ื ให แสดงผล ณ ตาํ แหนงกลางจอภาพ /* Program : setw.cpp Process : display set width of display to screen */ #include <iostream.h> #include <conio.h> #include <iomanip.h> //header file of setw() void main() { clrscr(); //clear screen standard function from conio.h cout << setw(50)<<\"This is Turbo C++ Program\"<<endl; cout << setw(45)<< \"It is very easy.\"<<endl; cout <<endl<<endl; // space 2 line cout << setw(45)<< \"I like C++ Program\"<<endl<<endl; cout << setw(50)<<\"Press any key to continue...\"<<endl; getch(); //get character standard function from conio.h } ศิริชัย นามบุรี การแสดงและการรบั ขอ มลู

!25 ♦!การแสดงผลการคาํ นวณทางคณติ ศาสตร •! ตัวอยางโปรแกรม cout_mat.cpp แสดงการใช cout เพื่อแสดงผลของการคาํ นวณทาง คณิตศาสตร /* Program : cout_mat.cpp Process : Display mathmetic calculate result*/ #include <iostream.h> #include <conio.h> void main() { int number1,number2; float x,y,z; // set value of variable number1=20; number2=30; x=25.25; y=30.05; z=10.75; // display calculation result clrscr(); cout<< \"Program Display Mathmetic calculation\"<<endl; cout<< \"number1 = \" << number1 <<endl; cout<< \"number2 = \" << number2 <<endl; cout<< \"number1 + number2 = \"<<number1+number2 <<endl; cout<< \"number1 - number2 = \"<<number1-number2 <<endl; cout<< \"x+y+z = \"<< x+y+z << endl; cout<< \"x*y*z = \" << x*y*z <<endl; cout<< \"50*25*12.5 = \" << 50*25*12.5 << endl; getch(); } •! ตัวอยางโปรแกรม set_dec.cpp การใช manipulator ทช่ี อ่ื setprecision(n) รว มกบั cout<< เพื่อกําหนดความละเอียดของตาํ แหนง ทศนยิ มของจาํ นวนจริง โดยท่ี n คือจาํ นวน ตําแหนง ทศนยิ ม /*Program : set_dec.cpp process : set decimal precision of float number */ #include <iostream.h> #include <iomanip.h> #include <conio.h> ศิริชยั นามบรุ ี การแสดงและการรบั ขอ มลู

!26 void main() { float A=125.25125; float B=10.7525; float C=212.15; clrscr(); //function in conio.h for clear screen cout<<\"Display set precision of float number ....\"<<endl; cout<<\"A+B = \"<<setprecision(10)<<A+B<<endl; cout<<\"A*B*C = \"<<setprecision(15)<<A*B*C<<endl; cout<<\"A*B = \"<<setprecision(5)<<A*B<<endl; cout<<\"A+B+C = \"<<setprecision(3)<<A+B+C<<endl; cout<<\"A+B+C = \"<<setprecision(2)<<A+B+C<<endl; cout<<\"A/B = \"<<setprecision(1)<<A/B<<endl; getch(); ♦!การคํานวณโดยใชฟ ง กช นั ทางคณติ ศาสตร ! การคาํ นวณคาฟงกชันทางคณิตศาสตร เชน คายกกาํ ลัง คารากท่สี อง คาสัมบูรณ จะตอ งใช ฟงกช นั มาตรฐาน (standard function) ทางดา นคณติ ศาสตร ที่ C++ จดั เตรยี มไวใ หใ น โดยจัดเก็บคลังคาํ สั่งไวในไฟล Math.h ดงั นน้ั ในโปรแกรมทต่ี อ งการใชฟ ง กช นั ทางคณติ ศาสตรจ ะตอ ง มีการ include ไฟล Math.h เปน preprocessor directive ดว ย (วิธีการตรวจสอบวามีฟงกชันใดบางใน ไฟล Math.h ใหใชคาํ สั่ง Help , Index แลวพิมพ คาํ วา Math.h เมื่อพบคําวา Math.h แลวใหกดแปน Enter จะแสดงใหเห็นชื่อฟงกชันตาง ๆ ทางดา นคณติ ศาสตร) ! •! ตัวอยางโปรแกรม Func_Mat.cpp แสดงการหาคาทางคณิตศาสตรโดยใชฟงกชัน pow() และฟงกชัน sqrt() เพื่อหาคาเลขยกกาํ ลังและรากท่สี อง /*Program : Func_Mat.Cpp การแสดงและการรบั ขอ มูล Process : Display using mathmetic function */ #include <iostream.h> #include <math.h> #include <conio.h> #include <iomanip.h> void main() { double x = 9.0, y = 2.0; clrscr(); cout<<\"Display using mathmetic functions ...\\a\"<<endl<<endl; cout<<x<<\" power by \"<<y<<\" = \"<< pow(x, y)<<endl; cout<<\" SquareRoot \"<<x<<\" = \"<< sqrt(x)<<endl; ศิริชัย นามบุรี

!27 cout<<\"(x power y)*(sqrt(y)) = \"<<setprecision(3)<<pow(x,y)*(sqrt(y)); cout<<endl<<endl<<\"Press any key to exit...\"; getch(); } ! ! ♦!การแสดงผลดว ยการใช escape sequence escape sequence เปน รหสั อกั ขระแบบคอนสแตนต(constant) ชนิดอักษร(character) ซึ่ง ประกอบดว ยเครอ่ื งหมาย \\ (backslash) และตัวอักษร อยภู ายในเครอ่ื งหมาย ' ' เชน '\\n' '\\t' ทาํ หนาที่ จดั รปู แบบการแสดงผลรว มกบั cout เหมอื นกบั endl รายละเอยี ดดงั ตารางตอ ไปน้ี ตาราง แสดง escape sequence และความหมาย escape sequence ชื่อ ความหมาย \\a alarm bell สงเสียงบิ๊ป (beep) \\b backspace เหมอื นการกดคยี  backspace \\f formfeed ขึ้นหนาใหม \\n newline ขน้ึ บรรทดั ใหม \\r return เหมอื นการกดคยี  enter \\t tab เหมอื นการกดคยี  tab \\\\ backslash แสดงเครอ่ื งหมาย \\ \\' single quote แสดงเครอ่ื งหมาย ' \\\" double quote แสดงเครอ่ื งหมาย \" \\? Question mark แสดงเครอ่ื งหมาย ? •! ตัวอยางโปรแกรม escape.cpp แสดงการใชเ ครอื่ งหมาย escape sequence รว มกบั cout สําหรบั การแสดงผล /*Program : escape.cpp Process : display with escape sequence */ #include <iostream.h> #include <conio.h> void main() { clrscr(); //clear screen cout<< \"Hello Program C++\" << '\\n'; //new line ศิริชยั นามบุรี การแสดงและการรบั ขอ มลู

!28 cout<< \"C++ is very easy \\a\" <<'\\n'<<'\\a'; //new line and bell cout<< \"\\t\\tC++ is very interest language \\n\"; // 2 tab and newline cout<< \"\\tC++ is OOP Language\\b \\n\"; //tab, backspace and new line getch(); //wait for press any key } ♦ก! ารรบั ขอ มลู จากคบี อรด ดว ย cin ในการเขยี นโปรแกรมเพอ่ื การประมวล มคี วามจําเปนอยางยิ่งที่โปรแกรมดวยทั่วไป จะตองมีการรับขอมูลจากผูใช (user) ผา นทางคยี บ อรด หรอื แปน พมิ พ เพื่อความยืดหยุนในการใชงาน โปรแกรม ใน C++ สามารถใชอ อปเจก็ ต cin ที่อยูในไฟล iostream.h เพอื่ รับขอ มลู จากคียบอรดและ อปุ กรณอ น่ื ๆ ได มรี ปู แบบดงั น้ี ! cin >> ชอ่ื ตวั แปร; ! cin>>ชอ่ื ตวั แปร>>ชอ่ื ตวั แปร>>ชอ่ื ตวั แปร>>…; โดยท่ี cin อา นวา ซีอิน ยอมาจาก character in ซึ่งหมายถึงการรับขอมูลในลักษณะ ของอักษร cin เปน ออปเจ็กตที่สรา งอยใู นไฟล iostream.h >> เปน โอเปเรเตอร ซึ่งมีชื่อวา เอก ซแ ทรก็ ชนั (extraction - รบั เขา มา) หรอื get from จะทาํ หนาที่รับคาที่อยูทางซายของเครื่องหมายสงใหแกตัวแปรที่อยูทางขวาของเครื่องหมาย(ถาไมระบุอุปกรณ หมายถึงรับขอมูลเขาทางคียบอรด) •! ตัวอยางโปรแกรม cin_exp.cpp แสดงการรบั คา จาํ นวนตัวเลขและตัวอักษรทางแปนพิมพ เพื่อเก็บไวในตัวแปร โดยใช cin>> /* Program : cin_exp.cpp การแสดงและการรบั ขอ มลู Process : input number and character to variable, and display value*/ #include <iostream.h> #include <conio.h> void main() { int number1,number2; //declared integer variable char ch; //declared character variable //start statement clrscr(); cout<< \" Please Enter number and character : \\n\"; cout<< \" Enter number1 : \"; cin>>number1; //enter integer from keyboard cout<< \"\\nEnter number 2 : \"; ศิริชัย นามบุรี

!29 cin>>number2; //enter integer from keyboard cout<< \"\\nEnter 1 character : \"; cin>>ch; //enter 1 character from keyboard cout<< \"\\n\\nPress any key to display...\"; getch(); //wait press any key clrscr(); // process display value from variable cout<< \"You enter number and character : \\n\\a\"; cout<< \"Value of number1 : \" <<number1; cout<< \"\\nValue of number 2 : \" <<number2; cout<< \"\\nValue of character : \" <<ch; cout<< \"\\n\\nPress any key to exit...\"; getch(); //wait press any key } •! ตัวอยางโปรแกรม area_cir.cpp แสดงการคํานวณพื้นที่วงกลมและแสดงผลลัพธ ออกมาทางจอภาพ โดยรับคารัศมีของวงกลมจากคียบอรดกาํ หนดใหม ตี วั แปรประเภท float และมี constant ในโปรแกรมดว ย /*Program : area_cir.cpp Process : calculate circle area by input radius */ #include <iostream.h> #include <conio.h> void main() { float rad; //declared real variable const float PI = 3.14159; // defined constant PI //start statement clrscr(); cout<< \"Please enter radius of circle : \"; cin>>rad; float area = PI*rad*rad; //declared variable at position that want to use cout<< \"\\n\\nRadius of circle = \"<<rad; cout<< \"\\n\\nArea of circles = \\a\\n\"<<area; getch(); } วิธีการกําหนดใหโ ปรแกรมรบั ขอ มลู หลาย ๆ ตวั แปร ตอ เนอ่ื งกนั มวี ธิ กี ารเขยี นประโยค ดงั น้ี ! cin >> number1 >> number2 >> number3; ศิริชัย นามบุรี การแสดงและการรบั ขอ มูล

!30 วธิ ปี อ นขอ มลู เมอื่ run โปรแกรม มี 2 วิธี คือ - กรอกเลข 3 จาํ นวน แตละจาํ นวนเวน วรรค แลว Enter ทจ่ี าํ นวนสุดทาย เชน 50 30 40 <Enter> หรอื - กรอกเลขแตละจํานวน แลวกดแปน Enter ตาม เชน 50 <Enter> 30 <Enter> 40 <Enter> •! ตัวอยางโปรแกรม cin_cout.cpp แสดงการกรอกขอ มูลตัวเลข 3 จาํ นวน ทางแปน พมิ พ /* Program : cin_cont.cpp Process : input 3 number and display value*/ #include <iostream.h> #include <conio.h> void main() { int number1,number2,number3; //declared 3 integer variable //start statement clrscr(); cout<< \"Please enter 3 integer number : \\n\"; cin>>number1>>number2>>number3; //enter 3 amount integer from keyboard cout<< \"\\nPress any key to display...\"; getch(); //wait press any key clrscr(); // process display value from variable cout<< \"You enter 3 number : \\n\\a\"; cout<< \"Value of number1 : \" <<number1; cout<< \"\\nValue of number 2 : \" <<number2; cout<< \"\\nValue of number 3 : \" <<number3; cout<< \"\\n\\nPress any key to exit...\"; getch(); //wait press any key } ♦ก! ารใช manipulator เพอ่ื เปลย่ี นเลขฐาน การแสดงและการรบั ขอ มูล ศิริชยั นามบรุ ี

!31 ในการเปลี่ยนการแสดงผลเลขฐานตาง ๆ ใน C++ ไดแก ฐานสบิ (Decimal) ฐานแปด (Octal) ฐานสบิ หก(Hexadecimal) เราสามารถใช แมนพิ วเลเตอร (manipulator) รว มกบั cout เพอ่ื แสดงจาํ นวน เลขฐานตา ง ๆ ได โดยใช manipulator ตอ ไปน้ี dec ทําหนา ทเ่ี ปลย่ี นเลขฐานแปดหรอื ฐานสบิ หกเปน เลขฐานสบิ oct ทาํ หนา ทเ่ี ปลย่ี นเลขฐานสบิ หรอื ฐานสบิ หกเปน เลขฐานแปด hex ทําหนา ทเ่ี ปลย่ี นเลขฐานแปดหรอื ฐานสบิ เปน เลขฐานสบิ หก ใน C++ กาํ หนดจํานวนเลขในฐานตา ง ๆ ดงั น้ี ถามี 0 (ศนู ย) นาํ หนาจาํ นวนเลข แสดงวา เปน จํานวนฐานแปด เชน 065,0125 ถามี ox (ศนู ยเ อก ซ) นาํ หนาจาํ นวนเลข แสดงวา เปน จํานวนฐานสิบหก เชน 0x125 ถาไมมี 0 หรอื 0x นาํ หนาจาํ นวนเลข แสดงวา เปน ฐานสบิ เชน 50, 95 •! ตัวอยางโปรแกรม base_num.cpp แสดงการใช manipulator เปลย่ี นเลขฐาน dec, oct, hex ตาง ๆ /*Program : base_num.cpp Process : display change base number of decimal,octal,hexadecimal*/ #include <iostream.h> #include <conio.h> void main() { clrscr(); cout<< \"Display change base number...\"<<endl<<endl; cout<< \"10 decimal to hexadecimal = \"<<hex<<10<<endl; cout<< \"5865 decimal to hexadecimal = \"<<hex<<5865<<endl; cout<< \"1250 decimal to octal = \"<<oct<<1250<<endl; cout<< \"02342 octal to decimal = \"<<dec<<02342<<endl; cout<< \"0xabc125 hexadecimal to decimal = \"<<dec<<0xabc125<<endl; cout<< \"0xf hexadecimal to decimal = \"<<dec<<0xf<<endl; getch(); } ♦!แบบฝกหัดทายบท ศิริชยั นามบุรี การแสดงและการรบั ขอ มลู

!32 1. จงเขยี นโปรแกรมแสดงขอ ความรายละเอยี ดเกย่ี วกบั ตวั ทา นเอง ดงั ตอ ไปน้ี โดยใหแ สดงขอ ความ บรเิ วณกลางจอภาพ This is C++ program. I love to study C++ language. My name is Mr…….. Code ……….. Major …………. 2. จากสตู รการคาํ นวณหาดอกเบย้ี ดงั น้ี I = Pin S = P+I โดยท่ี I คือ ดอกเบย้ี P คือ เงนิ ตน i คือ อตั ราดอกเบย้ี ตอ ป n คือ จํานวนป S คือ เงนิ รวม ใหเ ขยี นโปรแกรมเพอ่ื คาํ นวณหาคา ดอกเบย้ี ( I ) และเงนิ รวม (S) โดยใหผูใชกรอกขอมูลทาง แปนพิมพ ทจ่ี าํ เปน ตอ งใชใ นการคาํ นวณ 3. จงเขยี นโปรแกรมเพอ่ื คาํ นวณหาผลลัพธและแสดงผลลัพธนิพจนทางคณิตศาสตรตอไปนี้ โดยกําหนดให A , B เปน จํานวนจรงิ (float) โดย A = 2.25 B = 3.0 X,Y,Z เปน จํานวนเตม็ (integer) โดย X = 4 Y = 5 Z = 8 คาํ นวณหานพิ จนต อ ไปนใ้ี นโปรแกรม โดยกําหนดการแสดงผลทศนิยม 2 ตาํ แหนง A+B+X+Y+Z Z*Y/A (A+B)*X pow(A,2) pow(A,2)*pow(X,2) sqrt(X+Y+Z) sqrt(X*Y*Z)/B ศิริชยั นามบรุ ี การแสดงและการรบั ขอ มูล

! บทที่ 3 การเลือกทาํ ♦ค! วามหมายของการเลอื กทํา การเลือกทํา หมายถึง การกาํ หนดใหโ ปรแกรมทาํ งานอยา งหนง่ึ เมอ่ื เงอ่ื นไข (Condition) เปน จริงและทาํ (หรอื ไมต อ งทํางานใด ๆ ) เมอ่ื เงอ่ื นไข เปน เทจ็ งานโปรแกรมคอมพวิ เตอรม กี ารกําหนดให เลือกทาํ อยูมากมายการถามผูใช เชน Save (Y/N) _ Continue(Y/N) _ เปน ตน ♦!การเลอื กทําแบบ if การเลือกทําแบบ if เร่ิมดวยการทดสอบเงอ่ื นไขที่ไดก าํ หนดไวก อ น อาจมีมากกวา 1 เงอ่ื นไขก็ ได ผลการตรวจสอบเงอ่ื นไข ถาผล - เปน จรงิ statement ตอจาก if จะถูกทํางาน - เปน เทจ็ statement ตอจาก if จะไมถูกทํางานหรอื ไมตองทาํ งานใด ๆ รปู แบบ 1 แบบ statement เดยี ว มีรปู แบบ ดงั น้ี if (เงอ่ื นไขการเปรยี บเทยี บ) statement; รปู แบบ 2 แบบหลาย statement มีรูปแบบ ดงั น้ี if (เงอ่ื นไขการเปรยี บเทยี บ) { statement; statement; statement; … !} ศิริชยั นามบรุ ี การเลอื กทํา

! 34 •! ตัวอยางโปรแกรม test_if1.cpp แสดงการรับขอมูลจํานวนเต็ม 2 จาํ นวน และเปรยี บเทยี บ กันโดยใช if แบบประโยค(statement) เดยี ว /*Program : test_if1.cpp Process : copare 2 integer */ #include <iostream.h> #include <conio.h> void main() { int x,y; int result = 100; //start statement clrscr(); cout<< \"Please enter integer number : \\n\"; cout<< \"Finst number : \"; cin>>x; cout<< \"\\nSecond number : \"; cin>>y; //condition of if if (x>y) //condition cout<<\"\\nFirst number is greater than second number\\a\\n\"; if (x+y>result) //condition cout<<\"\\nFirst number + Seconde number is greater than \\a\\n\"<<result; getch(); } •! โปรแกรม test_if2.cpp แสดงการเปรยี บเทยี บจํานวนตัวเลข 2 จาํ นวน และใช if แบบ หลาย ประโยค(Compound statement) /*Program : test_if2.cpp Process : copare 2 integer*/ #include <iostream.h> #include <conio.h> void main() { int x,y; int result = 100; //start statement clrscr(); cout<< \"Please enter integer number : \\n\"; cout<< \"Finst number : \"; cin>>x; cout<< \"\\nSecond number : \"; cin>>y; //condition of if ศิริชัย นามบรุ ี การเลอื กทํา

! 35 if (x>y) { clrscr(); cout<<\"\\nFirst number is : \"<<x; cout<<\"\\nSecond number is : \"<<y; cout<<\"\\nFirst number is greater than second number\\a\\n\"; } if (x+y<=result) { clrscr(); cout<<\"\\nFirst number is : \"<<x; cout<<\"\\nSecond number is : \"<<y; cout<<\"\\nFirst number + Seconde number <= \\a\\n\"<<result; } getch(); } ♦!การเลอื กทําแบบ if…else การเลือกทําแบบ if …else มีหลักการทาํ งาน คอื เรม่ิ ดว ยการทดสอบเงอ่ื นไขทก่ี ําหนดไว ถาผล การตรวจสอบเงอ่ื นไข เปน ดงั น้ี - เปน จรงิ statement ที่อยูตอจาก if จะถูกทํางาน - เปน เทจ็ statement ที่อยูตอจาก else จะถูกทํางาน รปู แบบท่ี 1 if…else แบบ statement เดยี ว มรี ูปแบบ ดงั น้ี if(เงอ่ื นไขการเปรยี บเทยี บ) statement; else statement; รปู แบบท่ี 2 if…else แบบหลาย statement มีรปู แบบ ดงั น้ี if(เงอ่ื นไขการเปรยี บเทยี บ) { statement; statement; statement; } else { statement; statement; !} ศิริชัย นามบุรี การเลอื กทํา

! 36 •! ตัวอยางโปรแกรม test_if3.cpp แสดงการใช if…else แบบ statement เดยี ว /*Program : test_if3.cpp Process : copare 2 integer and use if...else one statement */ #include <iostream.h> #include <conio.h> void main() { int x,y; //start statement clrscr(); cout<< \"Please enter integer number : \\n\"; cout<< \"Finst number : \"; cin>>x; cout<< \"\\nSecond number : \"; cin>>y; if (x>y) //condition of if cout<<\"\\nFirst number is greater than second number\\a\\n\"; else cout<<\"\\nSecond number is greater than or equal first number\\a\\n\"; getch(); } •! ตัวอยางโปรแกรม test_if4.cpp แสดงการใช if…else แบบหลาย statement การเลอื กทํา /*Program : test_if3.cpp Process : copare 2 integer and use if...else */ #include <iostream.h> #include <conio.h> void main() { int x,y; //start statement clrscr(); cout<< \"Please enter integer number : \\n\"; cout<< \"Finst number : \"; cin>>x; cout<< \"\\nSecond number : \"; cin>>y; //condition of if if (x>y) ศิริชยั นามบรุ ี

! 37 { clrscr(); cout<<\"You enter 2 number :\"; cout<<\"\\nFirst number is : \"<<x; cout<<\"\\nSecond number is : \"<<y; cout<<\"\\nFirst number is greater than second number\\a\\n\"; getch(); } else { clrscr(); cout<<\"You enter 2 number :\"; cout<<\"\\nFirst number is : \"<<x; cout<<\"\\nSecond number is : \"<<y; cout<<\"\\nSecond number is greater than or equal first number\\a\\n\"; } getch(); } ♦!การเลอื กทําแบบ if ซอ นกนั (nested if) เราสามารถใช if…else if ซอนกัน เพอ่ื ตรวจสอบเงอ่ื นไขในโปรแกรมใหม ที างเลอื กหลาย ๆ ทางได มรี ปู แบบดงั น้ี if (เงอ่ื นไขท่ี 1) ! { statement; statement; } else if (เงอ่ื นไขท่ี 2) { statement; statement; !} ! else if (เงอ่ื นไขท่ี 3) ! { statement; ! statement; !} ! else ! { statement; ! •! ตัวอยางโปรแกรม grsatadtee1m.cpepnt;แสดงการคาํ นวณเกรด โดยการกรอกคะแนนรวมทาง ! คียบอรด โดยม}ีเงื่อนไขการตัดเกรดจากคะแนนรวม ดังนี้ ศิริชัย นามบรุ ี การเลอื กทํา

! 38 คะแนนรวม 0-49 ไดเ กรด F D คะแนนรวม 50-59 ไดเ กรด C B คะแนนรวม 60-69 ไดเ กรด A * คะแนนรวม 70-79 ไดเ กรด คะแนนรวม 80-100 ไดเ กรด คะแนนอน่ื ๆ (ไมถ กู ตอง) ไดเ กรด โดยแสดงการใช if…else…if แบบ statement เดยี ว ดังนี้ /*Program: grade1.cpp Process: calculate grade from total score*/ #include <iostream.h> #include <conio.h> void main() { int score; char grade; //begin statement clrscr(); cout<< \"Program calculate grade\"; cout<< \"\\n\\nPlease enter your score : \"; cin>>score; //input score if (score<0) //calculate grade use if...else if.. grade='*'; else if (score<=49) grade='F'; else if(score<=59) grade='D'; else if(score<=69) grade='C'; else if(score<=79) grade='B'; else if(score<=100) grade='A'; else grade='*'; cout<< \"You get grade : \\a\"<<grade<<'\\n'; //show get grade if (grade=='*') cout<< \"Your score = \"<<score<< \" is error range !!!\\n\"; getch(); } ศิริชัย นามบรุ ี การเลอื กทํา

! 39 •! ตัวอยางโปรแกรม grade2.cpp แสดงการคํานวณการตดั เกรดโดยใช Logical Operator ได แก || (OR) && (AND) มาใชในการกําหนดเงอ่ื นไข ซง่ึ มผี ลลพั ธก ารทํางานเหมือน โปรแกรม grade1.cpp /*Program: grade2.cpp Process: calculate grade from total score */ #include <iostream.h> #include <conio.h> void main() { int score; char grade; //begin statement clrscr(); cout<< \"Program calculate grade\"; cout<< \"\\n\\nPlease enter your score : \"; cin>>score; //input score //calculate grade use if...else if.. if (score<0 || score>100) //check enter error score grade='*'; else if (score>=0 && score<=49) grade='F'; else if(score>=50 && score<=59) grade='D'; else if(score>=60 && score<=69) grade='C'; else if(score>=70 && score<=79) grade='B'; else grade='A'; // end of if command cout<< \"You get grade : \\a\"<<grade<<'\\n'; //show get grade if (grade=='*') cout<< \"Your score = \"<<score<< \" is error range !!!\\n\"; getch(); } ศิริชัย นามบรุ ี การเลอื กทํา

! 40 ♦!การใช Conditional Operator ?: ใน C++ มีการกําหนดเงอ่ื นไขทท่ี ํางานไดเ หมอื น if…else เรยี กวา conditional operator ใช สัญลักษณ ?: แทน มีรปู แบบ คือ ตวั แปรเกบ็ ผลลพั ธ = (เงื่อนไขเปรียบเทียบ) ? คา ท่ี 1 : คา ท่ี 2; หลักการทาํ งานเมอ่ื เงอ่ื นไขใหค า เปน จริง ตัวแปรผลลัพธจะมีคาเปน คาที่ 1 แตถ า เงอ่ื นไขใหค า เปน เทจ็ ตัวแปรผลลัพธจะมีคาเปน คาที่ 2 พิจารณาประโยค if…else ตอ ไปน้ี if (a>b) c=a; else c=b; หรอื if (a>b) c= a; else c=b; จากประโยค if…else ดังกลาว สามารถใช conditional operator แทนไดด งั น้ี c=(a>b)? a : b; ♦ก! ารเลอื กทําแบบ switch … case ในกรณีที่การเลือกทาํ มีหลายเงื่อนไข แตล ะเงอ่ื นไขขน้ึ อยูกับ ตัวแปร (variable) ตวั เดยี วกนั ที่ เปน ประเภท int หรอื char สามารถใชการเลือกทาํ แบบ switch…case แทนการเลอื ก ทาํ แบบ if ซอนกัน (nested if ) ได โดยมรี ปู แบบดงั น้ี switch(ตัวแปรชนิด int หรอื char) { case คาคงที่ชนิด int หรอื char: statement; statement; break; case คาคงที่ชนิด int หรอื char: statement; statement; break; default: statement; break; !} ศิริชัย นามบรุ ี การเลอื กทํา

! 41 หลักการทาํ งานของ switch ....case คือ การตรวจสอบเงอ่ื นไขของ switch จะนําคา ของตวั แปร ที่กําหนดไวในวงเล็บหลัง switch (เปน ตวั แปรชนดิ int หรอื char เทา นน้ั ) ไปตรวจสอบกับคาคงที่ที่ กาํ หนดไวใ นแตล ะกรณหี รอื case ตา ง ๆ (ซึ่งตองเปน คาคงท่ชี นดิ int หรอื char เหมอื นกบั ตวั แปรหลงั switch) ถา ตรงกบั กรณใี ดเปน อนั ดบั แรก จะทาํ statement หลัง case นน้ั แลวก็ออกจากการทาํ งานดวยคีย เวริ ด break ไปทาํ งาน statement อน่ื ๆ ที่อยูหลัง } ตอ ไป แตถาคา ตัวแปรที่กาํ หนดไวไ มต รงกบั กรณี ใด ๆ เลย จะทาํ statement หลัง default (ถากาํ หนด default: ไว) •! ตัวอยางโปรแกรม switch.cpp แสดงการใช switch โดยกําหนดตัวแปรหลงั switch เปน ประเภท char ดงั นน้ั คา คงทท่ี ก่ี าํ หนดไวห ลัง case จะตองเปน char โดยกําหนดไวใ นเคร่ือง ' ' ดวย เพื่อใหสามารถนาํ คาคงที่ประเภทเดียวกนั เปรยี บเทยี บกนั ได /*Program : switch.cpp Process : test statement switch...case */ #include <iostream.h> #include <conio.h> void main() { int first,second; char choice; //begin statement clrscr(); cout<<\"Program Calcurate Area\\n\"; cout<<\"1. Circle\\n\"; cout<<\"2. Square\\n\"; cout<<\"3. Triangle\\n\"; cout<<\"Please select your choice <1-3>: \"; cin>>choice; //begin switch statement switch(choice) { case '1': cout<<\"\\nYou select choice \"<<choice<< \" calculate Circle Area\\n\"; cout<<\"Press any key to end program\\n\"; break; case '2': cout<<\"\\nYou select choice \"<<choice<< \" calculate Square Area\\n\"; cout<<\"Press any key to end program\\n\"; break; case '3': cout<<\"\\nYou select choice \"<<choice<< \" calculate Triangle Area\\n\"; cout<<\"Press any key to end program\\n\"; break; default: ศิริชยั นามบรุ ี การเลอื กทํา

! 42 cout<<\"\\nYou select Another choice \\a\\a\\n\"; cout<<\"Press any key to end program\\n\"; } getch(); } ♦!แบบฝก หดั ทา ยบท 1. ในการคาํ นวณภาษเงนิ ไดบุคคลธรรมดา (ภงด.91) มีการคาํ นวณภาษเี งนิ ไดใ นอตั รากา วหนา จากเงนิ ได สุทธิ ดงั อตั ราตามตารางตอ ไปน้ี เงินไดสุทธิตั้งแต จาํ นวนเงนิ ไดส งู สดุ ของ อตั ราภาษี ภาษีเงินไดใน ภาษีสะสมสูงสุด ขั้น รอ ยละ แตละขั้น ของขน้ั 1 ถึง 100,000 100,000 5 5,000 5,000 100,001-500,000 400,000 10 40,000 45,000 500,001-1,000,000 500,000 20 100,000 145,000 1,000,001-4,000,000 3,000,000 30 900,000 1,045,000 4,000,001 ขึ้นไป 37 ตวั อยา งเชน ถามีเงินไดสุทธิ 1,450,000 บาท การคาํ นวณภาษใี นอตั รากา วหนา เปน ดงั น้ี 100,000 บาทแรก คดิ รอ ยละ 5 ภาษีที่คาํ นวณได 5,000 บาท เหลอื เงินไดสุทธิอีก 1,450,000-100,000 = 1,350,000 บาท นาํ ไปคาํ นวณในอตั ราตอ ไปเตม็ ขน้ั 400,000 บาท คิดรอยละ 10 ภาษีที่คาํ นวณได 40,000 บาท เหลือเงินไดส ุทธิอกี 1,350,000 - 400,000 = 950,000 บาท นาํ ไปคาํ นวณในอตั ราตอ ไปเตม็ ขน้ั 500,000 บาท คิดรอยละ 20 ภาษีที่คาํ นวณได 100,000 บาท เหลือเงินไดสทุ ธิอีก 950,000 - 500,000 = 450,000 บาท นาํ ไปคาํ นวณในอตั ราตอ ไปไมเ ตม็ ขน้ั 450,000 บาท คดิ รอ ยละ 30 ภาษีที่คาํ นวณได 135,000 บาท รวมภาษีเงินไดที่ตองชําระทง้ั สน้ิ 5,000+40,000+100,000+135,000 = 280,000 บาท จากวิธีการคํานวณภาษเี งนิ ไดบ คุ คลธรรมดาในอตั รากา วหนา น้ี ใหเ ขยี นโปรแกรมเพอ่ื คาํ นวณ หาภาษี เมอ่ื กรอกจํานวนเงินไดสุทธิทางแปนพิมพ โดยแสดงขน้ั ตอนในการคาํ นวณอตั ราแบบกา วหนา แตล ะขน้ั ใหเ หน็ โดยละเอยี ดทางจอภาพ ศิริชยั นามบุรี การเลอื กทํา

! 43 2. รา นโชคดกี ารคา ตอ งการใหเ ขยี นโปรแกรมเพอ่ื คาํ นวณสวนลดของราคาสินคาและราคาสินคาสุทธิ ใหแกลูกคาจากยอดซื้อที่รวม VAT 10% แลว ตามเงอ่ื นไขดงั น้ี ยอดซื้อ 1- 1000 บาท ใหสวนลด 3% ยอดซื้อ 1001- 2000 บาท ใหสวนลด 5% ยอดซื้อ 2001- 5000 บาท ใหสวนลด 7% ยอดซื้อ 5001- 10000 บาท ใหสวนลด 9% ยอดซื้อ 10001 บาทขึ้นไป ใหสวนลด 10% ใหน กั ศกึ ษาเขยี นโปรแกรมเพอ่ื รบั คา จํานวนยอดซอ้ื สนิ คา กอ นรวม VAT , คํานวณราคาซอ้ื รวม VAT, คาํ นวณสวนลดที่ลูกคาจะไดรับ, คาํ นวณราคาสินคาสุทธิที่ลูกคาตองจาย ศิริชยั นามบุรี การเลอื กทํา

! บทที่ 4 การทาํ ซาํ้ ♦!ความหมายของการทาํ ซา้ํ การทาํ ซํ้าหรอื การวนรอบ (loop) หมายถึง การกาํ หนดเงอ่ื นไขเพอ่ื ใหโ ปรแกรมทาํ งานใน statement หรอื กลุมของ statement เดิมซํ้าๆ 1 ครง้ั หรอื มากกวา โดยจํานวนครง้ั ของการทาํ งานจะเปนไป ตามเงอ่ื นไขที่กาํ หนดไว มีประโยชนอยางยิ่งทาํ ใหก ารเขยี นโปรแกรมยดื หยนุ และสะดวก การเขียน โปรแกรมมีประสิทธิภาพดวยคาํ สั่งกาํ หนดใหมีการทาํ ซํ้าหรอื วนรอบ ใน C++ มี statement เพอ่ื สง่ั ใหโ ปรแกรมมกี ารทาํ งานแบบทาํ ซํ้า คือ for, while และ do… while ซึ่งจะกลาวถึงรายละเอียดตอไป ♦ล! ูป for ลูป for จะเรม่ิ ดว ยการนาํ คา เรมิ่ ตนเปรยี บเทยี บกับเงื่อนไขที่กาํ หนดไว ถาเง่ือนไข เปน จรงิ จะทาํ statement ในลูป ถา เปน เทจ็ จะเลิกทํางานในลูป กรณเี มอ่ื ตรวจสอบเงอ่ื นไขแลว เปน จรงิ เมอ่ื ทาํ งานใน ลูปแลว กจ็ ะเพม่ิ หรอื ลดคา ตวั แปรในเงอ่ื นไขอกี 1 หรือมากกวาตามที่กําหนดไวโ ดยอตั โนมตั ิ แลว ตรวจ สอบเงอ่ื นไขอกี ครง้ั ถา เงื่อนไข เปน เทจ็ จะเลิกทําซํ้าในลูป มรี ปู แบบ statement ดงั น้ี 1. ลูป for ทม่ี ี statement เดยี ว มรี ปู แบบ ดงั น้ี for (ตัวแปรและคาเริ่มตน; เงอ่ื นไขเปรยี บเทยี บ; เพิ่มหรือลดคาตัวแปร) statement; 2. ลูป for ทม่ี หี ลาย statement มีรูปแบบ ดงั น้ี for (ตัวแปรและคาเริ่มตน; เงอ่ื นไขเปรยี บเทยี บ; เพิ่มหรือลดคาตัวแปร) { statement; statement; statement; } ศิริชยั นามบรุ ี การทาํ ซา้ํ

! 45 3. ลูป for ซอนกัน หมายถึง มีการใช statement ของ for อกี ในขณะมีการสั่งทาํ ซํ้าดว ย for ไว แลว โปรแกรมจะดาํ เนนิ การทาํ ซํ้าในลูป โดยแตล ะรอบของลูปนอก จะตอ งทาํ ลูปในใหครบทุกรอบ กอน แลว จงึ เรม่ิ ทาํ ลปู นอกในรอบตอ ไป มีรูปแบบทั่วไป ดงั น้ี for (ตัวแปรและคาเริ่มตน; เงอ่ื นไขเปรยี บเทยี บ; เพิ่มหรือลดคาตัวแปร) { statement; ลปู นอก statement; for (ตัวแปรและคาเริ่มตน; เงอ่ื นไขเปรยี บเทยี บ; เพิ่มหรือลดคาตัวแปร) { statement; statement; ลูปใน statement; } statement; statement; } •! ตัวอยางโปแกรม for_exp1.cpp แสดงการใช for แบบ statement เดยี ว แสดงขอความซาํ้ หลายครั้งบนจอภาพ โดยกําหนดคาของตัวแปรตรวจสอบแบบเพิ่มคาและลดคาครั้งละ 1 หรอื มากกวา /*Program : for_exp1.cpp Process : display for loop statement */ #include <iostream.h> #include <conio.h> void main() { int i; clrscr(); for(i=1;i<=5;i++) //set initial i value and condition of for loop cout<< \"Program C++\\n\"; getch();cout<<'\\n'; // condition with decrease value i = i-1 for(i=5;i>=1;i--) cout<< \"I love C++ Language\\n\"; getch();cout<<'\\n'; for(i=16;i<=20;i++) ศิริชัย นามบรุ ี การเลอื กทํา

! 46 cout<< \"C++ Language is very easy for me\\n\"; getch(); } •! ตัวอยางโปรแกรม for_exp2.cpp แสดงการใช for แบบหลาย statement คาํ นวณผลรวมและ คาเฉลี่ยจาํ นวน 1-10 /*Program : for_exp2.cpp Process : Calculate summation and everage 1-10, display all */ #include <iostream.h> #include <conio.h> void main() { float i,summation; float average; //begin statement clrscr(); summation=0;average=0; // set initial value cout<< \"Progarm display summation and average 1-10\\n\"; for(i=1;i<=10;i++) { cout<<i<<'\\n'; summation=summation+i; //calculate summation 1-10 } average=summation/10; cout<< \"\\nSummation 1-10 = \"<<summation; cout<< \"\\nAverage 1-10 = \"<<average; getch(); •! ตัวอยางโปรแกรม for_exp3.cpp แสดงการหาผลรวมและคา เฉลย่ี จาํ นวนตั้งแต 1-n โดยทผ่ี ู ใชสามารถกรอกคา n ในการคํานวณได /*Program : for_exp3.cpp Process : Calculate summation and everage 1-n, display all */ #include <iostream.h> #include <conio.h> void main() { float i,summation,n; float average; //begin statement clrscr(); ศิริชยั นามบุรี การเลอื กทํา

! 47 summation=0;average=0; // set initial value cout<< \"Progarm display summation and average 1-n\\n\"; cout<< \"Please enter n : \";cin>>n; for(i=1;i<=n;i++) { cout<<i<<\" \"; summation=summation+i; //calculate summation 1-10 } average=summation/n; cout<< \"\\nSummation 1-10 = \"<<summation; cout<< \"\\nAverage 1-10 = \"<<average; getch(); } •! ตัวอยางโปรแกรม for_exp4.cpp แสดงการใช for แบบซอนกัน เพื่อคาํ นวณการคณู และ แสดงผลลัพธ /*Program : for_exp4.cpp Process : Calculate multiply number and display all */ #include <iostream.h> #include <conio.h> void main() { int i,j; //begin statement clrscr(); cout<< \"Display Multiply calculation :\\n\"; for(i=2;i<=4;i++) //begin external loop { clrscr(); cout<< \"Display Multiply calculation of \"<<i<<'\\n'; for (j=1;j<=12;j++) //begin internal loop { cout<<i<<\"*\"<<j<<\" = \"<<i*j; cout<<'\\n'; } //end of internal loop cout<< \"press any key to continue...\"; getch(); } //end of external loop cout<< \"\\nEnd of program....\\a\\n\";getch(); } ♦!ลูป while ศิริชัย นามบรุ ี การเลอื กทํา

! 48 ลูป while จะเรม่ิ การทํางานดวยการทดสอบเงื่อนไขที่กาํ หนดไวตนลูปกอ นเสมอ ถา เงอ่ื นไขเปน จริง จะทาํ งานซํา้ ในลูป แตถ า เงอ่ื นไขเปน เทจ็ จะเลิกทํางานในลูป (ทาํ งานในลูปขณะที่เง่อื นไขเปนจริง เทา นน้ั ) รปู แบบของ while มดี งั น้ี 1. ลูป while ที่มี statement เดยี ว มรี ปู แบบดงั น้ี while(เงอ่ื นไขเปรยี บเทยี บ) statement; 2. ลูป while ที่มีหลาย statement มรี ปู แบบดงั น้ี while(เงอ่ื นไขเปรยี บเทยี บ) { statement; statement; statement; } 3. ลูป while ซอนกัน มีรูปแบบ ดงั น้ี while(เงอ่ื นไขเปรยี บเทยี บของลปู นอก) { statement; statement; while(เงอ่ื นไขเปรยี บเทยี บของลปู ใน) { statement; statement; statement; } statement; statement; } ศิริชยั นามบรุ ี การเลอื กทํา


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook