เอกสารประกอบการเรยี นการสอน
วิชาหลักการเขียนโปรแกรม (20204-2004)
printf("Hello, my name is Anutra\n");
int age = 20;
printf("I\'m %d year old\n", age);
printf("I have %f Baht and %d Stang\n", 8500, 50);
นายอนุตร เติมสายทอง
ผเู้ รียบเรียง
สารบญั หนา้
1
ลกั ษณะรายวชิ า 2
หนว่ ยที่ 1 หลกั การเขยี นโปรแกรม 2
ขั้นตอนการพัฒนาโปรแกรม 2
2
- การวเิ คราะหป์ ญั หา 3
- การออกแบบโปรแกรม 3
- การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ 3
- การทดสอบและแกไ้ ขโปรแกรม 4
- การทาเอกสารประกอบโปรแกรม 5
- การบารุงรกั ษาโปรแกรม 8
แบบทดสอบ หลกั การเขยี นโปรแกรม 8
หนว่ ยที่ 2 การวิเคราะห์งาน ผงั งาน รหัสเทียม 8
การวเิ คราะหง์ าน (job analysis) 8
- จุดประสงคข์ องการวเิ คราะหง์ าน 9
- ข้นั ตอนวธิ ีการวเิ คราะห์งาน 11
- ตัวอย่าง 11
สญั ลักษณ์ Flowchart 12
- ตัวอย่าง ผงั งานการลาป่วย 12
ซูโดโค้ด (Pseudocode) 13
- ตัวอย่างที่ 1 Algorithm การหาค่าเฉล่ีย 14
- ตัวอย่างท่ี 2 Algorithm การหาพ้นื ที่สามเหลย่ี ม 16
แบบทดสอบ การวิเคราะหง์ าน ผังงาน รหสั เทียม 16
หน่วยท่ี 3 ขน้ั ตอนการแก้ไขปญั หา (Algorithm) 16
การแกป้ ัญหาด้วยอัลกอรทิ มึ (Algorithm) 16
- ประโยชน์ 16
- รูปแบบการเขียนอลั กอริทมึ 18
- ตัวอย่างการแก้ปัญหาดว้ ยอลั กอริทมึ (Algorithm) แบบบรรยาย
แบบทดสอบ ข้ันตอนการแก้ไขปัญหา (Algorithm)
สารบญั (ต่อ) หนา้
21
หนว่ ยท่ี 4 โครงสร้างภาษาคอมพิวเตอร์ 21
การประกาศควั แปร 21
21
- แนะนาตัวแปรในภาษา C 22
- ประเภทขอ้ มลู 22
- ตารางแสดงประเภทข้อมลู ทัง้ หมดในภาษา C 23
- ตวั อย่างการประกาศตัวแปร 25
- Boolean 26
- Char ตัวอักษร 27
- Integer ตวั เลขจานวนเต็ม 29
- Floating-point numbers ตัวเลขจานวนจริง 29
Input-output กบั ประเภทขอ้ มลู 30
- ฟงั กช์ นั printf 30
- ฟังก์ชนั scanf 33
- Escape characters 33
อาเรยใ์ นภาษา C 34
- การประกาศอาเรย์ 35
- การอ่านค่าในอาเรย์ 36
- การใช้คาส่ัง for loop กับอาเรย์ 37
- อาเรย์ 2 มิติ 38
- อาเรย์หลายมิติ 38
พอนย์เตอร์ 38
- พอนยเ์ ตอร์ ในภาษา C 38
- Address-of operator (&) 39
- Dereference operator (*) 40
- Declaring pointers 42
- การใช้พอนยเ์ ตอร์กบั อาเรย์
แบบทดสอบ โครงสรา้ งภาษาคอมพวิ เตอร์
สารบัญ (ต่อ) หนา้
44
หน่วยท่ี 5 การใชก้ ระบวนการเขียนโปรแกรม 44
ตัวดาเนนิ การและนิพจน์ 44
45
- ตวั เนินการทางคณิตศาสตร์ (Arithmetic Operators) 46
- ตัวดาเนนิ การยนู ารี (U nary Operators) 47
- ตวั ดาเนินการระดบั บติ (Bit wise Operator) 47
- ตวั ดาเนินการกาหนดคา่ (Assignment operator) 47
- ตวั ดาเนนิ การเงื่อนไข (Conditional Operator) 48
- ตวั ดาเนนิ การบอกขนาดชนิดข้อมูล (Size of Operator) 49
- ตัวดาเนินการบอกขนาดชนดิ ข้อมูล (Size of Operator) 50
ชนิดของข้อผดิ พลาดในการเขียนโปรแกรม 52
แบบทดสอบ การใชก้ ระบวนการเขียนโปรแกรม 52
หน่วยที่ 6 ค้าสง่ั การคา้ นวณ เงอ่ื นไขกรณี และการทา้ ซ้า 52
คาส่งั การทาซา้ 53
- คาส่งั if 54
- คาส่ัง If else 57
- ตวั อยา่ งการใชง้ านคาสง่ั เลอื กเงื่อนไขในภาษา C++ 59
- คาสง่ั Switch case 60
- คาสง่ั while loop
- คาสั่ง do while loop 61
หน่วยที่ 6 คา้ สั่งการคา้ นวณ เงอ่ื นไขกรณี และการท้าซ้า 62
- คาสง่ั for loop 62
- คาสง่ั break 63
- คาสง่ั continue 66
- ตัวอย่างการใช้งานคาสง่ั วนซ้าในภาษา C++
แบบทดสอบ คาสง่ั การคานวณ เง่ือนไขกรณี และการทาซา้
สารบญั (ต่อ) หน้า
68
หนว่ ยท่ี 7 การออกแบบและเขยี นโปรแกรมอยา่ งงา่ ย 68
- การคานวณหาพ้นื ท่ีของสามเหลยี่ ม 69
- การพิมพแ์ ม่สูตรคูณ แม่ 2 ถึง 25 70
- การตัดเกรด A – F ด้วยคาสั่ง IF 71
- การประยกุ ต์ใช้งานโปรแกรมดว้ ยภาษาซี 72
74
แบบทดสอบ การออกแบบและเขยี นโปรแกรมอยา่ งง่าย
เอกสารอ้างอิง
1
ลกั ษณะรายวชิ า
จดุ ประสงค์รายวิชา เพือ่ ให้
1. เข้าใจเก่ียวกับหลักการเขยี นโปรแกรม
2. สามารถวิเคราะห์ ออกแบบผังงาน รหสั เทยี ม และขนั้ ตอนการแกไ้ ขปัญหา (Algorithm)
3. สามารถออกแบบและเขยี นโปรแกรมโดยใชภ้ าษาคอมพิวเตอร์
4. สามารถเขยี นคาสงั่ ควบคมุ การทางานเบื้องตน้
5. มเี จตคติและกิจนสิ ัยที่ดีในการปฏบิ ัตงิ านคอมพวิ เตอร์ด้วยความละเอียด รอบคอบ และถกู ต้อง
สมรรถนะรายวิชา
1. แสดงความรู้ ความเขา้ ใจ เก่ียวกบั หลกั การเขียนโปรแกรม
2. วเิ คราะห์ ออกแบบผงั งาน รหสั เทียม และขัน้ ตอนการแกไ้ ขปัญหา (Algorithm)
3. ออกแบบและเขียนโปรแกรมโดยใช้ภาษาคอมพวิ เตอร์
4. เขยี นคาส่ังควบคุมการทางานเบอื้ งต้น
คา้ อธิบายรายวชิ า
ศกึ ษาและปฏิบัตเิ กย่ี วกบั หลักการเขยี นโปรแกรมและการวเิ คราะห์งาน ผงั งาน รหัสเทยี ม และขนั้ ตอน
การแก้ไขปญั หา (Algorithm) โครงสรา้ งภาษาคอมพิวเตอรแ์ ละการใชก้ ระบวนการเขยี นโปรแกรม คาสง่ั การ
คานวณ เงือ่ นไขกรณี และการทาซ้า การออกแบบและเขียนโปรแกรมอย่างงา่ ย
2
หน่วยท่ี 1
หลักการเขยี นโปรแกรม
ขน้ั ตอนการพฒั นาโปรแกรมประกอบด้วย
1. การวเิ คราะหป์ ัญหา
2. การออกแบบโปรแกรม
3. การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
4. การทดสอบและแก้ไขโปรแกรม
5. การทาเอกสารประกอบโปรแกรม
6. การบารงุ รกั ษาโปรแกรม
การวเิ คราะหป์ ัญหา
การวิเคราะหป์ ัญหา ประกอบดว้ ยขั้นตอนต่างๆ ดงั นี้
1. กา้ หนดวตั ถุประสงค์ของงาน เพือ่ พจิ ารณาว่าโปรแกรมต้องทาการประมวลผลอะไรบา้ ง
2. พิจารณาข้อมูลน้าเข้า เพื่อให้ทราบว่าจะต้องนาข้อมูลอะไรเข้าคอมพิวเตอร์ ข้อมูลมีคุณสมบัติเป็น
อยา่ งไร ตลอดจนถึงลกั ษณะและรูปแบบของขอ้ มลู ที่จะนาเข้า
3. พิจารณาการประมวลผล เพื่อใหท้ ราบว่าโปรแกรมมีขน้ั ตอนการประมวลผลอย่างไรและมเี งื่อนไปการ
ประมวลผลอะไรบ้าง
4. พิจารณาข้อสนเทศน้าออก เพ่ือให้ทราบว่ามีขอ้ สนเทศอะไรที่จะแสดง ตลอดจนรูปแบบและส่ือท่ีจะ
ใชใ้ นการแสดงผล
การออกแบบโปรแกรม
การออกแบบข้ันตอนการทางานของโปรแกรมเป็นขั้นตอนท่ีใช้ เป็นแนวทางในการลงรหัสโปรแกรม
ผู้ออกแบบขั้นตอนการทางานของโปรแกรมอาจใช้เครื่องมือต่างๆ ช่วยในการออกแบบ อาทิเช่น คาส่ังลาลอง
(Pseudocode) หรือ ผังงาน (Flow chart) การออกแบบโปรแกรมนั้น ไม่ต้องพะวงกับรูปแบบคาส่ัง
ภาษาคอมพวิ เตอร์ แตใ่ ห้ม่งุ ความสนใจไปท่ลี าดับข้ันตอนในการประมวลผลของโปรแกรมเท่านน้ั
3
การเขียนโปรแกรมด้วยภาษาคอมพวิ เตอร์
การเขียนโปรแกรมเป็นการนาเอาผลลัพธ์ของการออกแบบโปรแกรม มาเปล่ียนเป็นโปรแกรม
ภาษาคอมพิวเตอร์ภาษาใดภาษาหน่ึง ผู้เขียนโปรแกรมจะต้องให้ความสนใจต่อรูปแบบคาส่ังและกฎเกณฑ์ของ
ภาษาที่ใช้ เพ่ือให้การประมวลผลเป็นไปตามผลลัพธ์ที่ได้ออกแบบไว้ นอกจากน้ันผู้เขียนโปรแกรมควรแทรก
คาอธิบายการทางานต่างๆ ลงในโปรแกรมเพื่อให้โปรแกรมนั้นมีความกระจ่างชัดและง่ายต่อการตรวจสอบและ
โปรแกรมนี้ยังใช้เป็นสว่ นหนึ่งของเอกสารประกอบ
การทดสอบและแก้ไขโปรแกรม
การทดสอบโปรแกรมเป็นการนาโปรแกรมที่ลงรหัสแล้วเขา้ คอมพิวเตอร์ เพ่ือตรวจสอบรปู แบบกฎเกณฑ์
ของภาษา และผลการทางานของโปรแกรมนั้น ถ้าพบว่ายังไม่ถูกก็แก้ไขให้ถูกต้องต่อไป ขั้นตอนการทดสอบและ
แกไ้ ขโปรแกรม อาจแบ่งได้เปน็ 3 ขน้ั
1. สรา้ งแฟม้ เก็บโปรแกรมซึ่งส่วนใหญ่นิยมนาโปรแกรมเขา้ ผ่านทางแปน้ พิมพ์โดยใช้โปรแกรมประมวลคา
2. ใช้ตัวแปลภาษาคอมพิวเตอร์แปลโปรแกรมท่ีสร้างข้ึนเป็นภาษาเคร่ือง โดยระหว่างการแปลจะมีการ
ตรวจสอบความถูกต้องของรูปแบบและกฎเกณฑ์ในการใช้ภาษา ถ้าคาส่ังใดมีรูปแบบไม่ถูกต้องก็จะแสดง
ขอ้ ผิดพลาดออกมาเพือ่ ใหผ้ ูเ้ ขยี นนาไป แก้ไขต่อไป ถ้าไม่มีข้อผิดพลาด เราจะได้โปรแกรมภาษาเครือ่ งทีส่ ามารถให้
คอมพิวเตอรป์ ระมวลผลได้
3. ตรวจสอบความถูกตอ้ งของการประมวลผลของโปรแกรม โปรแกรมที่ถูกตอ้ งตามรูปแบบและกฎเกณฑ์
ของภาษา แต่อาจให้ผลลัพธ์ของการประมวลผลไม่ถูกต้องก็ได้ ดังนั้นผู้เขียนโปรแกรมจาเป็นต้องตรวจสอบว่า
โปรแกรมประมวลผลถูกต้องตามต้อง การหรือไม่ วิธีการหน่ึงก็คือ สมมติข้อมูลตัวแทนจากข้อมูลจริงนาไปให้
โปรแกรมประมวลผลแล้วตรวจสอบผลลัพธ์ ว่าถูกตอ้ งหรือไม่ ถ้าพบว่าไม่ถูกต้องก็ต้องดาเนินการแก้ไขโปรแกรม
ต่อไป การสมมติข้อมูลตัวแทนเพื่อการทดสอบเป็นส่ิงท่ีมีความสาคัญเป็นอย่างมาก ลักษณะของข้อมูลตัวแทนท่ีดี
ควรจะสมมติทั้งข้อมูลที่ถูกต้องและข้อมูลทผี่ ิด พลาด เพ่ือทดสอบว่าโปรแกรมท่ีพัฒนาขึ้นสามารถครอบคลมุ การ
ปฏิบัติงานในเงื่อนไข ต่างๆ ได้ครบถ้วน นอกจากนี้อาจตรวจสอบการทางานของโปรแกรมด้วยการสมมติตัวเอง
เป็นคอมพิวเตอร์ที จะประมวลผล แล้วทาตามคาส่ังทีละคาส่ังของโปรแกรมน้ันๆ วิธีการนี้อาจทาได้ยากถ้า
โปรแกรมมีขนาดใหญ่ หรอื มีการประมวลผลท่ีซบั ซ้อน
การทา้ เอกสารประกอบโปรแกรม
การทาเอกสารประกอบโปรแกรมเป็นงานท่ีสาคัญของการพัฒนา โปรแกรม เอกสารประกอบโปรแกรม
ช่วยใหผ้ ู้ใชโ้ ปรแกรมเข้าใจวัตถปุ ระสงค์ ข้อมูลที่จะต้องใช้กับโปรแกรม ตลอดจนผลลัพธ์ทจ่ี ะได้จากโปรแกรม การ
ทาโปรแกรมทุกโปรแกรมจึงควรต้องทาเอกสารกากับ เพื่อใช้สาหรับการอ้างอิงเมื่อจะใช้งานโปรแกรมและเมื่อ
ตอ้ งการแกไ้ ขปรับปรงุ โปรแกรม เอกสารประกอบโปรแกรมท่จี ดั ทา ควรประกอบดว้ ยหวั ข้อต่อไปนี้
4
1. วตั ถปุ ระสงค์
2. ประเภทและชนดิ ของคอมพิวเตอร์และอปุ กรณท์ ่ีใชใ้ นโปรแกรม
3. วธิ กี ารใช้โปรแกรม
4. แนวคิดเกี่ยวกบั การออกแบบโปรแกรม
5. รายละเอยี ดโปรแกรม
6. ข้อมูลตวั แทนทีใ่ ช้ทดสอบ
7. ผลลพั ธ์ของการทดสอบ
การบา้ รุงรักษาโปรแกรม
เม่ือโปรแกรมผ่านการตรวจสอบตามขั้นตอนเรียบร้อยแล้ว และถูกนามาให้ผู้ใช้ได้ใช้งาน ในช่วงแรกผู้ใช้
อาจจะยงั ไม่ค้นุ เคยก็อาจทาให้เกิดปัญหาข้ึนมาบ้าง ดังนั้นจึงตอ้ งมีผ้คู อยควบคมุ ดูแลและคอยตรวจสอบการทางาน
การบารุงรักษาโปรแกรมจึงเป็นขั้นตอนที่ผู้เขียนโปรแกรมต้องคอยเฝ้าดูและหา ข้อผิดพลาดของโปรแกรมใน
ระหวา่ งทผี่ ู้ใช้ใชง้ านโปรแกรม และปรับปรุงโปรแกรมเมือ่ เกิดขอ้ ผิดพลาดขึ้น หรือในการใชง้ านโปรแกรมไปนานๆ
ผใู้ ช้อาจต้องการเปล่ียนแปลงการทางานของระบบงานเดิมเพอ่ื ให้เหมาะกับ เหตุการณ์ นักเขียนโปรแกรมก็จะตอ้ ง
คอยปรบั ปรงุ แกไ้ ขโปรแกรมตามความตอ้ งการของผู้ใช้ท่ี เปล่ยี นแปลงไปนน่ั เอง
อ้างองิ http://www.bankhai.ac.th/dev_c/step_develop_program.html
5
แบบทดสอบ หน่วยท่ี 1
หลักการเขยี นโปรแกรม
ตา้ ส่ัง : จงเลือกคา้ ตอบที่ถกู ตอ้ งที่สดุ เพยี งค้าตอบเดยี ว โดยท้าเคร่ืองหมาย X หนา้ ก. ข. ค. ง.
1. รปู แบบโครงสร้างการควบคมุ การทางานของโปรแกรม มกี ี่รูปแบบ
ก. 2 รูปแบบ ข. 3 รูปแบบ ค. 4 รปู แบบ ง. 5 รูปแบบ
2. โครงสรา้ งการควบคมุ การทางานของโปรแกรมแบบใดที่ทางานจากบนลงล่างเป็นบรรทดั
ก. โครงสรา้ งการควบคุมแบบลาดบั ข. โครงสร้างการควบคุมแบบวนซา้
ค. โครงสร้างการควบคมุ แบบบรรทัด ง. โครงสร้างการควบคุมแบบทาซ้า
3. ขอ้ ใดไมใ่ ช่โครงสรา้ งการควบคุมการทางานของโปรแกรม
ก. โครงสร้างการควบคุมแบบลาดับ ข. โครงสรา้ งการควบคุมแบบบรรทัด
ค. โครงสรา้ งการควบคมุ แบบวนซา้ ง. โครงสรา้ งการตัดสนิ ใจทางเลอื ก
4. การคานวณสว่ นลดซ่ึงมรี ปู แบบการใหส้ ว่ นลดอยู่3 ประเภท ควรใช้โครงสรา้ งการควบคุมการ
ทางานของโปรแกรมรูปแบบใด
ก. โครงสรา้ งการควบคุมแบบลาดบั ข. โครงสรา้ งการควบคมุ แบบบรรทดั
ค. โครงสรา้ งการควบคุมแบบวนซ้า ง. โครงสร้างการตดั สนิ ใจทางเลือก
5. ขอ้ ใดไม่ใชข่ นั้ ตอนของหลกั การเขียนโปรแกรมคอมพวิ เตอร์
ก. การวเิ คราะหป์ ญั หา ข. การออกแบบโปรแกรม
ค. การเขียนโปรแกรม ง. การตดิ ต้ังโปรแกรม
6. หากนักเรียนเขียนโปรแกรมแล้ว พบวาไม่ผิดไวยากรณ์ แต่ไม่สามารถทางานได้และเกิดความผิดพลาด
ขณะทางาน เน่อื งรับคา่ บางค่าไม่ได้ จดั เป็นความผิดพลาดของโปรแกรมแบบใด
ก. run-time error ข. syntax error ค. logical error ง. system error
7. การทดสอบความถูกต้องของโปรแกรม ต้องทาหลังจากขั้นตอนใดต่อไปน้ี
ก. การออกแบบโปรแกรม ข. การเขียนโปรแกรม
ค. การตรวจสอบความผิดพลาดของโปรแกรม ง. การติดต้ังและบารุงรกั ษาโปรแกรม
6
8. ขอ้ ใดคือความจาเปน็ ของการทาเอกสารประกอบโปรแกรมสาหรบั ผ้ใู ช้งาน
ก. การปรับปรุงโปรแกรมในอนาคต ข. งา่ ยตอ่ การตรวจหาข้อผิดพลาดของโปรแกรม
ค. อธิบายการใชง้ านโปรแกรม ง. ตรวจสอบความต้องการของผใู้ ช้
9. ข้อใดไมใ่ ช่คณุ สมบัติท่ีดีของโปรแกรมเมอร์ ข. ชอบสันโดษ
ก. มีความอดทน ง. รกั และชอบในการเขียนโปรแกรม
ค. มีความริเรม่ิ สรา้ งสรรค์
10. โปรแกรมท่ีดคี วรมลี ักษณะอย่างไร
ก. เม่ือนาไปใชค้ วรมขี ้อผดิ พลาดเยอะๆ เพอ่ื จะได้ทราบถงึ ปญั หา
ข. ควรมีความยืดหยน่ สงู เพือ่ ให้งา่ ยต่อการปรบั แก้ไข
ค. ควรมีความซบั ซอ้ น เพอื่ ความปลอดภยั ของโปรแกรม
ง. เกดิ logic error เพื่อความสะดวกในการแกไ้ ขโปรแกรม
11. ขอ้ ใดไม่ใช่ส่ิงท่กี ารวิเคราะห์งานตอ้ งวเิ คราะห์ ข. การวิเคราะหต์ วั แปร
ก. การวิเคราะห์ภาษา ง. การวเิ คราะหข์ ้อมูลออก
ค. การวิเคราะหข์ ้อมูลเขา้
12. ถ้าต้องการคานวณพ้ืนที่สามเหล่ียม โดยรับค่าฐานและความสูงทางคีย์บอร์ด ข้อใดคือการวิเคราะห์การ
ประมวลผล
ก. รบั คา่ ฐาน ข. รับความสูง
ค. แสดงพื้นที่สามเหลีย่ ม ง. คานวณหาพ้ืนท่สี ามเหลี่ยมตามสูตร
13. จากโจทย์ข้อที่ 12 ขอ้ มูลใดคอื ข้อมูลใดคือขอ้ มูลเขา้
ก. คา่ ฐาน ข. ความสูง
ค. ค่าฐานและความสูง ง. 0.5 * ฐาน * สงู
14. จากโจทย์ขอ้ ที่ 12 ขอ้ มลู ใดคือขอ้ มลู ใดคอื ขอ้ มลู ออก
ก. คา่ ฐาน ข. ความสูง
ค. คานวณหาพ้ืนท่ีสามเหล่ียม ง. พ้ืนท่ีสามเหลย่ี ม
15. จากโจทย์ขอ้ ที่ 12 ตวั แปรที่ใช้ควรมกี ่ตี ัว ค. 4 ตวั ง. 5 ตวั
ก. 2 ตัว ข. 3 ตัว
7
เฉลยแบบทดสอบ หนว่ ยที่ 1
หลักการเขยี นโปรแกรม
1. ข. 3 รูปแบบ
2. ก. โครงสรา้ งการควบคมุ แบบลาดับ
3. ข. โครงสรา้ งการควบคมุ แบบบรรทดั
4. ง. โครงสรา้ งการตดั สนิ ใจทางเลอื ก
5. ง. การตดิ ต้ังโปรแกรม
6. ก. run-time error
7. ค. การตรวจสอบความผดิ พลาดของโปรแกรม
8. ค. อธิบายการใชง้ านโปรแกรม
9. ข. ชอบสันโดษ
10. ข. ควรมคี วามยืดหย่นสูงเพอื่ ให้งา่ ยตอ่ การปรบั แก้ไข
11. ก. การวเิ คราะห์ภาษา
12. ง. คานวณหาพื้นทสี่ ามเหลีย่ มตามสตู ร
13. ค. คา่ ฐานและความสูง
14. ง. พ้ืนทส่ี ามเหลย่ี ม
15. ข. 3 ตัว
8
หน่วยที่ 2
การวิเคราะห์งาน ผงั งาน รหสั เทยี ม
การวเิ คราะห์งาน (job analysis)
ในการวิเคราะหง์ านเราจะต้องกาหนดจุดประสงค์ของการวเิ คราะห์งาน และขน้ั ตอนวิธีการวิเคราะห์งาน
แตล่ ะอย่างใหไ้ ด้ ซ่ึงงานแต่ละอยา่ งมรี ายละเอียดดังน้ี
จุดประสงคข์ องการวิเคราะห์งาน
ในการวิเคราะห์งานแตล่ ะอยา่ งมีจุดประสงค์ของการวเิ คราะหง์ านทีส่ าคัญดังน้ี
1. เพ่อื หาวัตถปุ ระสงคข์ องการเขียนโปรแกรม
2. เพอ่ื หารูปแบบผลลัพธท์ ีต่ ้องการ
3. เพื่อหาขอ้ มลู นาเข้าทีต่ อ้ งใส่เข้าไปในโปรแกรม
4. เพอื่ หาตวั แปรท่ีจาเป็นต้องใช้ในโปรแกรม
5. เพอ่ื หาขน้ั ตอนวธิ กี ารทางานของโปรแกรม
ขน้ั ตอนวิธีการวเิ คราะหง์ าน
ในการวเิ คราะห์งานแต่ละอย่างมีขน้ั ตอนวิธีการวิเคราะหง์ านทสี่ าคัญดังนี้
1) การหาวัตถุประสงค์ของการเขยี นโปรแกรม ผ้เู ขียนโปรแกรมจะต้องหาวัตถุประสงค์จากงานที่
จะเขียนโปรแกรมว่า ต้องการเขียนโปรแกรมเพ่ือแก้ปัญหาอะไรบ้างซึ่งจะทาให้เขียนโปรแกรมได้ตรงกับความ
ต้องการหรือวตั ถปุ ระสงคข์ องงานนั้น ๆ
2) การหารูปแบบผลลัพธ์ที่ต้องการ เม่ือผู้เขียนโปรแกรมหาวัตถปุ ระสงค์ของการเขียนโปรแกรม
ได้แล้ว ข้นั ตอนตอ่ มาคือการกาหนดรปู แบบผลลัพธ์ที่ต้องการจากโปรแกรม ซง่ึ รูปแบบผลลัพธ์อาจอยู่ในลักษณะ
ของข้อความหรือตวั เลข หรอื ตาราง หรือแผนภูมิ หรืออาจใชผ้ สมกนั ระหว่างตัวเลขกับข้อความ หรือข้อความ
กับตัวเลข และตารางก็ได้ ข้ึนอยู่กับผู้เขียนโปรแกรมเป็นผู้กาหนดเอง แต่โดยส่วนมากนิยมแสดงผลลัพธ์ของ
โปรแกรมใหอ้ ยู่ในรปู แบบทีเ่ ข้าใจงา่ ยมากกว่ารูปแบบทซี่ บั ซ้อน
3) การหาข้อมูลนาเข้าที่ต้องใส่เข้าไปในโปรแกรม ผู้เขียนโปรแกรมจะต้องหาข้อมูลนาเข้าจาก
ผลลัพธ์ท่ีได้จากโปรแกรม โดยคานึงถึงขั้นตอนวิธีการคานวณ และข้อมูลที่จาเป็นต้องใสเ่ ข้าไปเพ่ือให้ได้ผลลัพธ์ท่ี
ตอ้ งการ
4) การหาตัวแปรท่ีจาเป็นต้องใช้ในโปรแกรม ตัวแปร หมายถึง ช่ือที่ผู้เขียนโปรแกรมสามารถ
ตั้งขึ้นเองตามหลักการต้ังชื่อตัวแปรของภาษาคอมพิวเตอร์ที่นามาเขียนโปรแกรม เพื่อใช้ในการอ้างอิงการเก็บ
ข้อมูลและเรียกใช้ข้อมูลภายในตัวแปร ดังน้ันผู้เขียนโปรแกรมจะต้องต้ังช่ือตัวแปรท่ีใช้ในการเก็บข้อมูลทั้งหมด
ภายในโปรแกรม รวมถึงตัวแปรบางตัวทใ่ี ชใ้ นการนับจานวนรอบของการทางานในโปรแกรมอกี ด้วย
9
ตวั อยา่ ง ผลลัพธ์ท่ีตอ้ งการ คือ พน้ื ท่สี ามเหลีย่ มมุมฉากขอ้ มลู นาเขา้ ทตี่ อ้ งใสเ่ ขา้ ไปในโปรแกรมคอื
1) สูตรคานวณพน้ื ท่ีสามเหล่ยี มมุมฉาก
พน้ื ท่ีสามเหลย่ี มมมุ ฉาก = ? x ฐาน x สงู
2) ความยาวของฐานและความสงู ของรปู สามเหลยี่ ม
จากตัวอยา่ ง สามารถแสดงการวิเคราะห์งานตั้งแตข่ น้ั ตอนที่ 1 ถงึ 4 ไดด้ ังนี้
1) วัตถปุ ระสงคข์ องการเขียนโปรแกรมเพอ่ื คานวณหาคา่ พื้นทส่ี ามเหลยี่ มมุมฉาก
2) รูปแบบผลลัพธท์ ตี่ ้องการพมิ พผ์ ลลพั ธ์ท่ีตอ้ งการออกทางภาพดังนี้
*** output ***
Base = 5
High = 4
Area = 10
3) ข้อมูลนาเข้า คอื ความยาวฐานและความสงู
4) ตัวแปรที่ใช้
B = ตัวแปรท่เี ก็บความยาวของสามเหลี่ยมมมุ ฉาก
H = ตวั แปรทเ่ี กบ็ ความสงู ของสามเหลีย่ มมุมฉาก
Area = ตวั แปรทเี่ กบ็ ผลลพั ธท์ ี่ได้จากการคานวณตามสูตร
Area = 1/2*B*H หรอื Area = 0.5*B*H
5) การหาข้ันตอนวิธีการทางานของโปรแกรม การหาขั้นตอนวิธีการทางานของโปรแกรมจะขึ้นอยู่กับ
ลกั ษณะของการแกป้ ญั หา ดังนั้นนักเขียนโปรแกรมที่มคี วามชานาญในระดับหน่งึ แล้วจะสามารถหาข้ันตอนวิธีการ
ทางานของโปรแกรมได้โดยไม่ยาก แตส่ าหรับผทู้ เี่ ร่ิมตน้ ศึกษาการเขยี นโปรแกรม ควรหาขน้ั ตอนวิธีการทางานของ
โปรแกรมตามคาแนะนาโดยเรยี งตามลาดบั ดังนี้
ขั้นตอนวธิ กี ารทางานของโปรแกรมทีแ่ นะนา
5.1) เรม่ิ ต้นทางาน
5.2) กาหนดค่าเริม่ ต้นให้กับตวั แปร
5.3) พมิ พห์ ัวรายงาน (ถา้ มีรายงาน)
5.4) รับข้อมูลเขา้ ทีละเรคอรด์
5.5) ตรวจสอบข้อมูลว่าเป็นชดุ สุดทา้ ยหรือไม่
5.5.1 ถ้าเป็นข้อมลู ชดุ สดุ ทา้ ย ให้ไปทางานขอ้ 5.11
5.5.2 ถ้าไม่ใชข่ อ้ มลู ชุดสุดทา้ ย ให้ทางานขอ้ ตอ่ มา (ข้อ 5.6)
10
5.6) คานวณผลลพั ธ์
5.7) เปรียบเทียบผลลพั ธ์ (ถา้ ม)ี
5.8) เพ่มิ คา่ ตัวแปรสะสม (ถา้ มี)
5.9) พมิ พ์คา่ ผลลพั ธท์ ลี ะเรคอร์ด
5.10) ยอ้ นกลบั ไปทางานข้อ 5.4
5.11) พิมพส์ รปุ (ถา้ มี)
5.12) จบการทางาน
ทั้งน้ีการวิเคราะห์งานเพ่อื แก้ปญั หาแต่ละอย่างอาจมีบางข้ันตอนแตกต่างกันไป ดงั น้ันคาแนะนาข้างต้น
จึงเป็นเพียงแนวทางของการหาขั้นตอนวิธกี ารทางานของโปรแกรมเท่านนั้ ซง่ึ เวลาใช้งานจริงผู้วิเคราะห์งานต้อง
ประยุกตใ์ หเ้ ข้ากบั ปัญหาทต่ี ้องการแก้ไขตอ่ ไป
อ้างอิง https://sites.google.com/site/programmingm42/hlak-5-khx-ni-kar-wikheraah-payha
11
สัญลักษณ์ Flowchart คือ รูปภาพที่ใช้แทนความหมายการทางานในลักษณะต่างๆ ภายในผังงาน
(Flowchart) ประกอบไปด้วย การเริ่มต้น (Start), การจบ (End), การกระทา (Process), การนาเข้าข้อมูล
(Input), การแสดงผลข้อมูล (Output), การตัดสินใจ (Decision), คาอธิบาย (Annotation), จุดเช่ือมต่อ
(Connector), ทศิ ทางการทางาน (Direction Flow)
สัญลักษณ์เหลา่ น้ีเม่ือถูกนามาเช่ือมต่อกัน จะกลายเปน็ "ผังงาน (Flowchart)" ท่ีแสดงลาดับข้ันตอนการ
ทางานเพ่อื
1. เปน็ เคร่อื งมือในการจัดลาดับความคดิ
2. เห็นลาดับขั้นตอนการทางานที่ชดั เจน
ตวั อย่าง ผงั งานการลาปว่ ย
อา้ งองิ http://share.olanlab.com/th/it/blog/view/211
12
ซโู ดโค้ด (Pseudocode)
เป็นคาอธิบายขั้นตอนการทางานของโปรแกรม โดยใช้ถ้อยคาผสมระหว่างภาษาองั กฤษและภาษา
การเขียนโปรแกรมแบบโครงสร้าง จะชว่ ยให้ผ้เู ขยี นโปรแกรมสามารถพัฒนาข้ันตอนต่าง ๆ ให้เปน็ โปรแกรมไดง้ า่ ย
ขึน้ ส่วนใหญ่มักใช้คาเฉพาะ (Reserve Word) ท่ีมีในภาษาการเขียนโปรแกรมและมักเขียนด้วยตัวอักษรตัวใหญ่
ซโู ดโคด้ ที่ดี จะตอ้ งมคี วามชัดเจน ส้ัน และได้ใจความ ข้อมูลตา่ ง ๆ ที่ใช้จะถกู เขยี นอยู่ในรปู ของตัวแปร
รูปแบบ
Algorithm <ชือ่ ของอลั กอรทิ มึ >
1……………………………….
2……………………………….
…………………………………
END
การเขียนซูโดโค้ด สาหรับให้คอมพิวเตอร์หาค่าเฉลี่ยจากข้อมูลท่ีรับเข้าทางแป้นพิมพ์ ถ้าใส่ค่าศูนย์แสดงว่าหยุด
ป้อนขอ้ มลู เขียนได้ดังนี้
ตัวอยา่ งท่ี 1 Algorithm การหาค่าเฉล่ยี
1. เริม่ ต้น
2. ตวั นบั = 0
. 3. ผลรวม = 0
. 4. รับค่าทางแป้นพมิ พ์เก็บไว้ในตัวแปร (ขอ้ มลู )
. 5. ถ้า ขอ้ มลู มากกว่า 0
. เพ่มิ คา่ ตัวนบั ขึ้นหนึ่งคา่
. ผลรวม = ผลรวม + ค่าข้อมูล
. ย้อนกลับไปทาขั้นตอนท่ี 3
. ถา้ ไม่มากกวา่ ไปทาข้นั ตอนท่ี 5
. 6. คา่ เฉล่ยี = ผลรวมหารดว้ ยตวั นับ
. 7. แสดงคา่ เฉลยี่ ทางจอภาพ (ทศนิยมสองตาแหน่ง)
จบAlgorithm Average_Sum
1. START
2. count =0
3. sum = 0
13
4. INPUT (value)
5. IF value > 0 THEN
count = count +1
sum = sum + value
GOTO 3
ELSE GOTO 5
6. average = sum / count
7. OUTPUT (average)
END ตวั อยา่ งที่ 2 การเขยี นซูโดโคด้ คานวณหาพื้นทส่ี ามเหลย่ี ม หรือเขียนเป็นภาษาอังกฤษไดด้ งั นี้
ตวั อย่างที่ 2 Algorithm การหาพ้ืนท่ีสามเหล่ียม
1. เริ่มต้น
2. รับคา่ ความยาวของฐานมาเกบ็ ในตัวแปร X
3. รับคา่ ความยาวของสงู มาเก็บในตวั แปร Y
4. คานวณหาพ้นื ที่ ARRAY = ( X*Y ) / 2
5. แสดงผลพื้นท่ี
จบ Algorithm Average_Sum
1. START
2. READ X
3. READ Y
4. Compute ARRAY = ( X*Y ) / 2
5. Print ARRAY
END
อ้างอิง https://programpasac.weebly.com/35953641365036043650358836573604.html
14
แบบทดสอบ หนว่ ยที่ 2
การวิเคราะหง์ าน ผังงาน รหัสเทยี ม
คา้ สง่ั : ใหน้ ักเรยี นวเิ คราะหป์ ญั หาและเขียน Flowchart โจทย์ดังต่อไปนี้
1. รับคะแนนสอบของนักเรียน 1 คน ทางแป้นพิมพ์ โดยรับคะแนนสอบคร้ังที่ 1 , คร้งั ท่ี 2 , คร้งั ท่ี 3 หาคะแนน
รวม แลว้ แสดงผลลัพทท์ างจอภาพ
2. หาพน้ื ที่ของสี่เหลี่ยมคางหมู โดยรับ ด้าน ทางแปน้ พิมพ์ แลว้ แสดงผลลัพทท์ างจอภาพ
3. คานวณหาค่าไฟฟ้า จากสูตร ค่าไฟฟ้า = จานวนหน่วยที่ใช้ * ราคาต่อหน่วย โดยค่าไฟในปัจจุบัน หน่วยละ
2.50 บาท
4. คานวณหาพ้นื ที่ส่เี หล่ยี มดา้ นไมเ่ ทา่
5. คานวณหาปรมิ าตรทรงกระบอก
6. คานวณหาค่าแรงของพนกั งาน 10 คนจากสูตร คา่ แรง = จานวนชวั่ โมงที่ทางาน * อตั ราค่าแรง
7. หาคา่ เฉลีย่ ของตัวเลข 5 จานวน แลว้ แสดงผลลัพธท์ างจอภาพ
8. หาพื้นท่ีสี่เหล่ียมใดๆ แลว้ แสดงผลลัพธ์ที่ไดท้ างจอภาพ
9. หาพื้นท่ผี วิ ทรงกระบอก แล้วแสดงผลลพั ธท์ ่ีได้ทางจอภาพ
10. คานวณภาษีของพนักงาน 1 คน โดยภาษีคานวณจาก 10 % ของค่าแรง และค่าแรงได้มาจากสตู ร ค่าแรง =
จานวนชัว่ โมงทท่ี างาน * อตั ราคา่ แรง
11. คานวณหาเกรดเฉลย่ี รวมของนกั เรียน โดยให้รับขอ้ มูล ช่อื วิชา , เกรด จานวน 10 วิชา แล้วแสดงผลลพั ธ์ ทาง
จอภาพ
12. รับตวั เลข 10 ตวั ทางแปน้ พมิ พ์ แล้วหาผลรวมและค่าเฉลย่ี ของตัวเลขทงั้ หมด
13. รับข้อมูลตวั เลข 1 ตัวทางแปน้ พืิมพ์ แล้วใหแ้ สดงขอ้ ความน้ันเปน็ จานวนคู่ หรอื จานวน คี่
14. หาผลบวกของตัวเลข 5 , 10 , 10 ,…, 100
15. หาผลรวมของตวั เลข 1 -100 เฉพาะทเี่ ปน็ เลขคู่
16. หาผลรวมของตวั เลข 1 -100 ที่ 7 หารลงตัว
17. หาพื้นท่ีวงกลมและเสน้ รอบวงของวงกลมที่มีรัศมี 3 หนว่ ย
18. เปล่ียนอุณหภูมิ จาก องศาเซลเซียส เป็นฟาเรนต์ไฮท์ โดยป้อนอณุ หภมู ิเป็นองศาเซลเซียสทางแป้นพิมพ์ แล้ว
แสดงผลลพั ธท์ างจอภาพ
19. คานวณหาคะแนนรวมและหาร้อยละของคะแนนสอบวิชาคอมพิวเตอร์ ของนักเรียน 5 คน โดยมีการทดสอบ
4 คืร้ัง แตล่ ะคร้ังมคี ะแนนเตม็ 25 , 25 ,25 ,25 ตามลาดับ
20. เปลีย่ น พ.ศ ให้เปน็ ค.ศ และ จ.ส โดยให้รบั พ.ศ. ทางแป้นพมิ พ์
21. คานวณหาผลรวมของเลขยกกาลัง 2 ของตวั เลข 1 -10
15
22. คานวณหาพื้นทีข่ องสเ่ี หลยี่ มขนมเปยี กปูน
23. เปล่ียนหน่วยความสูงของนักเรียน 10 คน โดยรับค่าความสูง เป็นเซ็นติเมตร แล้วเปืลียนหน่วยให้เป็น คืบ
พร้อมทั้งหาความสูงเฉลีย่ ของนกั เรยี น เปน็ คืบ
24. รับข้อมูลพื้นที่นา ของชาวนา 1 คน โดยรับ จานวนไร่ , จานวนงาน , จานวน ตารางวา แล้วเปลี่ยนหน่วยให้
เป็น เอเคอร์ แสดงผลลพั ธท์ างจอภาพ
25. คานวณหาราคาขายของสินค้า 10 ชนิด โดยราคาขาย คานวณจากราคาทุน + 20% แล้วแสดงผลลัพธ์ของ
ราคาขายสินค้าแต่ละชนดิ ทางจอภาพ
26. คานวณหาพืน้ ที่ของส่ีเหล่ียมรูปวา่ ว
27. คานวณหาสว่ นลดในการซ้อื สนิ ค้า 3 ชน้ิ โดยส่วนลดไดม้ าจาก ผลรวมของราคาสินคา้ ท้งั หมด – 10 %
16
หนว่ ยท่ี 3
ข้ันตอนการแกไ้ ขปญั หา (Algorithm)
การแก้ปญั หาดว้ ยอลั กอริทึม (Algorithm)
ท่ีมาของคาว่าอัลกอริทึม (Algorithm) คือ คาที่ตั้งให้เป็นเกียรติแก่ อแลน เดอะ กอริทึม ทิวริง (Alan
The Gorithm Turing) ผูค้ ้นพบว่าการพิสจู น์ทางคณิตศาสตร์หรือปญั หาทางตรรกะ สามารถหาคาตอบได้ด้วยชุด
ของขนั้ ตอนวิธที ถี่ กู ตอ้ ง
ประโยชน์
ประโยชนข์ องอัลกอริทึม (Algorithm) คือ ทาให้ไม่สับสนกับวิธีดาเนินงาน เพราะทกุ อย่างจะถูกจัดเรียง
เป็นขั้นตอนมีวิธีการและทางเลือกไว้ เม่ือนามาใช้จะทาให้การทางานสาเร็จอย่างรวดเร็ว ทาให้ปัญหาลดลงหรือ
สามารถค้นหาต้นเหตุของปัญหาได้อย่างรวดเร็ว เน่ืองจากกระบวนการถูกแยกแยะกิจกรรม ขั้นตอน และ
ความสัมพันธ์ ออกมาใหเ้ ห็นอย่างชดั เจน
รูปแบบการเขียนอลั กอริทึม
การเขยี นอลั กอริทมึ (Algorithm)มี 3 รูปแบบคอื
1. ลกั ษณะการบรรยาย (Narrative Description)
2. การเขยี นผงั งาน (Flowchart) คอื การใชร้ ปู ภาพสญั ลักษณ์ แทนขน้ั ตอนการเขยี นโปรแกรม
3. รหัสจาลองที่เรียกว่า การเขียนซูโดโค้ด (Pseudo Code) คือการเขียนคาอธิบายขั้นตอนการทางาน
ของโปรแกรม โดยใช้ถ้อยคาผสมระหวา่ งภาษาองั กฤษและภาษาการเขียนโปรแกรมแบบโครงสร้าง
ตัวอย่างการแกป้ ญั หาด้วยอลั กอรทิ ึม (Algorithm) แบบบรรยาย
1. ตม้ ไขเ่ พ่อื ใหส้ กุ แบบยางมะตูม
อุปกรณ์อินพุตคอื สวทิ ช์
วธิ ีการประมวลผล คือ ถ้ามสี ญั ญาณนาเข้าให้หนว่ งเวลา 4 นาที แล้วส่งสัญญาณออก ซา้ กนั 3 คร้งั
อปุ กรณเ์ อา้ ตพ์ ุตคอื ลาโพงแบบเปียโซ
เร่ิมตน้
ถา้ มีสญั ญาณการกดสวิทช์
หน่วงเวลา 4 นาที
ทาเสียงเตือน
หน่วงเวลา 0.5 วินาที
17
ทาเสยี งเตอื น
หนว่ งเวลา 0.5 วนิ าที
ทาเสียงเตอื น
2. เครอ่ื งไลข่ โมย
อปุ กรณอ์ ินพตุ คอื โมดลู ตรวจจบั ความเคลอ่ื นไหว
วิธีการประมวลผล คือ ถ้ามีสัญญาณการเคลื่อนไหวดิจติ อล รออีก 1 นาที ถา้ ยังมสี ัญญาณการเคล่ือนไหวดิจติ อล
อยูอ่ ีก ใหส้ ง่ สญั ญาณดิจติ อลออก เปดิ รีเลย์เปน็ เวลา 30 วนิ าที
อปุ กรณ์เอ้าตพ์ ตุ คอื รเี ลย์
เริ่มตน้
ถา้ มีสญั ญานการเคลอ่ื นไหว
รอ 1 นาที
ถ้ามสี ญั ญาณการเคล่ือนไหว
ส่งสัญญาณออก เปิดรีเลย์
หนว่ งเวลา 30 วนิ าที
ส่งสญั ญาณออก ปดิ รเี ลย์
จบการทางาน
อ้างองิ https://skjproject.wordpress.com/หลกั การพัฒนาโปรแกรม/กระบวนการแกป้ ญั หา--algorithm/
18
แบบทดสอบ หน่วยท่ี 3
ข้นั ตอนการแก้ไขปัญหา (Algorithm)
คา้ ส่งั : จงเลอื กค้าตอบที่ถกู ต้องท่สี ดุ เพียงคา้ ตอบเดยี ว โดยทา้ เครอื่ งหมาย X หน้า ก. ข. ค. ง.
1. ข้อใดคือความหมายของ Algorithm
ก. การแก้ปญั หาทางตรรกะ ข. การพสิ จู นท์ างคณติ ศาสตร์
ค. รปู แบบการเขยี นโปรแกรม ง. ขน้ั ตอนการทางานของโปรแกรม
2. บุคคลในขอ้ ใด สัมพันธ์กับคาว่า อัลกอริทมึ (Algorithm)
ก. Ken Thompson ข. Marth Richards
ค. Dennis M. Ritchie ง. Alan The Gorithm Turing
3. ผใู้ ดคน้ พบวา่ การพสิ จู นท์ างคณติ ศาสตรห์ รอื ปัญหาทางตรรกะ สามารถหาคาตอบได้ดว้ ยชุดของข้นั ตอนวิธที ี่
ถกู ต้อง
ก. Ken Thompson ข. Marth Richards
ค. Dennis M. Ritchie ง. Alan The Gorithm Turing
4. ขอ้ ใดคอื ประโยชนข์ องอัลกอริทมึ (Algorithm)
ก. ใช้สัญลกั ษณ์แทนการแก้ปญั หา
ข. มีความชัดเจน สั้น และไดใ้ จความ
ค. มีการทางานตามเง่อื นไขทผ่ี ู้ใชก้ าหนด
ง. การแยกแยะกจิ กรรม ทาให้การแก้ไขปญั หาเป็นไปอยา่ งรวดเรว็
5. ข้อใดไม่ใช่รูปแบบการเขยี นอลั กอริทึม ข. รหัสจาลอง (Pseudo Code)
ก. ฟงั กช์ ั่น(function) ง. การบรรยาย (Narrative Description)
ค. การเขยี นผงั งาน (Flowchart)
6. การเขยี นผังงาน (Flowchart) มกี ่ีแบบ ข. 3 แบบ
ก. 2 แบบ ง. 5 แบบ
ค. 4 แบบ
19
7. การใช้รปู ภาพสัญลักษณ์ แทนขั้นตอนการเขยี นโปรแกรมคือขอ้ ใด
ก. ฟังก์ช่ัน(function) ข. รหัสจาลอง (Pseudo Code)
ค. การเขียนผังงาน (Flowchart) ง. การบรรยาย (Narrative Description)
8. ซูโดโคด้ ท่ีดียกเว้นขอ้ ใด ข. สนั้ ได้ใจความ
ก. มีความชัดเจน ง. เขยี นในรูปการเขียนโปรแกรม
ค. เขียนอยู่ในรูปของตัวแปร
9. ผงั งานทีม่ กี ารทาซา้ เรียกอีกช่อื ว่าอะไร ข. Condition Flowchart
ก. Loop Flowchart ง. Pseudo Code Flowchart
ค. Sequemce Flowchart
10. ผังงานแบบมเี ง่ือนไขทางเลอื ก เรยี กอกี ชอื่ ว่าอะไร ข. Condition Flowchart
ก. Loop Flowchart ง. Pseudo Code Flowchart
ค. Sequemce Flowchart
20
แบบทดสอบ หนว่ ยท่ี 3
ข้ันตอนการแก้ไขปัญหา (Algorithm)
1. ง. ขั้นตอนการทางานของโปรแกรม
2. ง. Alan The Gorithm Turing
3. ง. Alan The Gorithm Turing
4. ง. การแยกแยะกจิ กรรม ทาใหก้ ารแกไ้ ขปัญหาเปน็ ไปอยา่ งรวดเร็ว
5. ก. ฟงั กช์ ่นั (function)
6. ข. 3 แบบ
7. ค. การเขียนผังงาน (Flowchart)
8. ง. เขยี นในรูปการเขียนโปรแกรม
9. ก. Loop Flowchart
10. ข. Condition Flowchart
21
หน่วยที่ 4
โครงสร้างภาษาคอมพิวเตอร์
การประกาศควั แปร
แนะนา้ ตัวแปรในภาษา C
ตัวแปรเป็นสถานท่ีสาหรับเก็บข้อมูลในหน่วยความจา โดยมีช่ือของตัวแปรเพื่อใช้อ้างถึงข้อมูล
(Identifier) ตัวแปรถูกใช้เพ่ือเก็บคา่ เราสามารถสร้างตวั แปรไดเ้ ป็นจานวนมากโดยมีช่ือท่ีแตกต่างกนั รปู แบบของ
การประกาศตวั แปรในภาษา C คือ:
type identifier;
type identifier = value;
type เปน็ ประเภทของขอ้ มูลท่ีจะเก็บในตวั แปร identifier เปน็ ท่ีรจู้ ักกนั ในในชื่อของตัวแปร เราใช้ชื่อน้ีเพ่อื อ้างถึง
ค่าท่ีตัวแปรน้ันเก็บอยู่ values เป็นทางเลอื กท่ีคณุ สามารถกาหนดคา่ ให้กับตัวแปรเมื่อมันถูกสร้าง หรือกาหนดใน
ภายหลังได้ มาดูตัวอยา่ ง
int a;
float b;
char c = 'A';
ในตัวอย่างเรามีตัวแปร 3 ตัว ตัวแรกประเภทของมันคือ int และมีช่ือว่า a มันใช้เพ่ือเก็บค่าเลขจานวนเต็ม
(Integer) และเรายังไม่ได้กาหนดคา่ ใดๆ ใหม้ ัน ดังนั้นค่าเริ่มต้นของตัวแปรเมื่อถูกสรา้ งขน้ึ จะเป็น NULL ตัวแปรท่ี
สองมีประเภทเป็น float ตวั แปรน้ีจะถกู ใช้เพือ่ เกบ็ ค่าของจานวนจริง และตัวแปรทสี่ ามมีประเภทเป็น char มันถูก
ใช้เพ่อื เก็บสัญลักษณห์ น่ึงตัวใน ASCII code และเรากาหนด 'A' เป็นค่าเรมิ่ ตน้ ใหก้ ับมนั
ประเภทขอ้ มลู
ในภาษา C มีประเภทข้อมูลชนิดต่างๆ ที่ให้เราสามารถใช้เพ่ือชนิดการกับข้อมูลต่างประเภทกัน เช่น
Boolean, Number, Character และ Object เป็นตน้
22
ตารางแสดงประเภทข้อมูลท้ังหมดในภาษา C
Data type Size Value
-128 to 127
char 1 byte 0 to 255
-128 to 127
unsigned char 1 byte -2,147,483,648 to 2,147,483,647
0 to 4,294,967,295
signed char 1 byte -32,768 to 32,767
0 to 65,535
int 4 byte -2,147,483,648 to 2,147,483,647
0 to 4,294,967,295
unsigned int 4 byte 1.2E-38 to 3.4E+38
2.3E-308 to 1.7E+308
short 2 byte 3.4E-4932 to 1.1E+4932
unsigned short 2 byte 0 to 1
long 4 byte
unsigned long 4 byte
float 4 byte
double 8 byte
long double 10 byte
bool 1 bit
ตวั อยา่ งการประกาศตวั แปร
ตอนนี้เราจะมาเรียนวิธกี ารประกาศและกาหนดค่าเรมิ่ ตน้ ใหก้ บั ตวั แปรกบั ตัวอยา่ งง่ายๆ
#include <stdio.h>
int main()
{
int a = 5;
int b;
b = 10;
int c = a + b;
printf("Value of c is %d", c);
return 0;
}
23
ในตัวอย่าง เราไดส้ ร้างตัวแปรสามตวั คือ a, b และ c ท่มี ชี นิดข้อมลู เปน็ int และเรารวมค่าของ a และ b แล้วเก็บ
ไว้ในตัวแปร c ข้างลา่ งนี้เป็นผลลัพธ์ของโปรแกรม
Value of c is 15
อย่างไรกต็ าม คณุ สามารถประกาศชนดิ ข้อมูลอนื่ ได้ ซึ่งมันไมอ่ ยากเกินไป มาดตู ัวอย่างเพิ่มเติม
#include <stdio.h>
int main()
{
float PI = 3.14;
int r;
scanf("Enter circle radius %d", &r);
double result = 2 * PI * r;
printf("Area is %f", result );
return 0;
}
ในตัวอย่าง แสดงให้คุณเห็นการใช้ตัวแปรประเภทต่างๆ ในภาษา C นั้นมีข้อมูลประเภทต่างๆ ท่ีให้เราสามารถ
จัดการกับข้อมูลที่แตกตา่ งกนั ออกไป เช่น ตัวเลขจานวนเตม็ ตวั เลขจานวนจริง หรอื ขอ้ มูลแบบตัวอักษร ซ่ึงข้อมูล
แต่ละประเภทมีรูปแบบการใช้งานและขนาดของข้อมูลท่ีแตกต่างกัน ดังแสดงในตารางก่อนหน้า ต่อไปเราจะ
อธิบายและแสดงตวั อย่างของการใช้ขอ้ มูลประเภทต่างๆ ในภาษา C สาหรบั เขยี นโปรแกรม
Boolean
Boolean เป็นประเภทข้อมูลท่ีมีได้เพียงสองค่าคือจริง true และเท็จ false ซึ่งเป็นประเภทของตัวแปร
สาหรับเก็บค่าที่เป็นไปได้เพียงสองค่า เช่น กลางวันและกลางคืน สีขาวและสีดา ร้อนและหนาว เป็นต้น ข้อมูล
ประเภทน้ีมักจะใช้สาหรับสร้าง Expression สาหรับเง่ือนไขการทางานของโปรแกรม ในภาษา C ค่าของ
Boolean น้ันใช้ 1 หรือ true สาหรบั ค่าที่เปน็ จริงและ 0 หรอื false สาหรับค่าที่เป็นเทจ็ มาดตู ัวอย่างการใชง้ าน
#include <stdio.h>
#include <stdbool.h>
int main ()
{
bool gender = 1;
bool open = 0;
24
if (gender)
{
printf("This is the boy.\n");
}
else
{
printf("This is the girl.\n");
}
if (open)
{
printf("The door is open.\n");
}
else
{
printf("The door is not open.\n");
}
return 0;
}
ในตัวอย่าง เป็นการใช้งานตัวแปรประเภท Boolean ในภาษา C ในตัวแปร gender เราได้กาหนดตัวแปรให้
หมายถึงเพศ ถ้าในตัวแปรนน้ั มคี ่าเป็นจรงิ จะหมายถึงเป็นผู้ชาย และถ้ามคี ่าเป็นเทจ็ จะหมายถึงเป็นผู้หญิง และตัว
แปร open ใช้สาหรับเก็บสถานะการเปิดและปิดของประตู เม่ือตัวแปรมีค่าเป็นจริงจะหมายถึงประตูถูกเปิดอยู่
และเมอ่ื คา่ ในตวั แปรเป็นเท็จก็หมายความว่าประตูน้ันไม่ไดเ้ ปิด
This is the boy.
The door is not open.
ในคอมไพเลอรข์ องภาษา C ในปัจจุบันนั้น ข้อมูลประเภท bool นน้ั ถูกนาออกแล้ว ดังนั้นเพ่ือใช้ข้อมูลประเภทน้ี
เราต้องทาเข้าไลบรารี่จาก stdbool.h สาหรับการใช้งาน และคอมไพลเลอร์ของคุณสนับสนุนเวอร์ชัน C99 ด้วย
อย่างไรก็ตามมีหลายวิธีที่จะ Implement ขอ้ มูลประเภท bool ถ้าหากคุณใช้บ่อยๆ ในโปรแกรม หรือสามารถใช้
ข้อมลู ประเภท Integer แทนได้
25
Char ตวั อกั ษร
Char เป็นประเภทข้อมูลท่ีใช้สาหรับเก็บตัวอักษรจานวนหนึ่งตัวอักษรใน ASCII ภาษา C นั้นยังไม่ได้
สนับสนุนการเก็บข้อมูลแบบ String แต่คุณสามารถทาแบบนั้นได้ โดยการใช้ Char array เพื่อเก็บตัวอักษรท่ีต่อ
กนั หลายตัว มาดูตวั อย่างการใชง้ านตวั แปรประเภท char ในภาษา C
#include <stdio.h>
int main()
{
char n = 'A';
printf("%c\n", n);
printf("%d\n", n);
char *name = "marcuscode";
printf("%s", name);
char extension[] = ".com";
printf("%s", extension);
return 0;
}
ในตัวอย่าง เป็นการประกาศตัวแปรประเภท char โดยการเก็บตัวอักษร 'A' ตัวอักษรทุกตัวนั้นมีรหัส ASCII ของ
มันในฐาน 10 ในภาษา C นั้นข้อมูลประเภท Char และ Integer สามารถแปลงค่าได้โดยวิธี implicit และ
Explicit type casting ยกตัวอย่างเช่น เม่ือเราต้องการค่าที่หมายถึง A และสามารถใช้ 65 แทนได้ดังตัวอย่าง
ข้างล่าง
char a = 65; // A
int b = 'A'; // 65
เราสามารถเก็บตัวอักษรที่มากกว่าหนึง่ ตัวอักษรได้ โดยเราเรียกว่าอาเรย์ หรือ Array of char ซ่ึงสามารถสรา้ งได้
ทั้งในรูปแบบของอาเรย์ปกติและพอยน์เตอร์ นี่เป็นผลลัพธ์การทางานของโปรแกรมในการใช้งานข้อมูลประเภท
Char และ Char อาเรย์
A
65
marcuscode.com
26
Integer ตวั เลขจ้านวนเตม็
Integer เป็นประเภทข้อมูลแบบจานวนเต็ม ซึ่งข้อมูลแบบ Integer นั้นจะประกอบไปด้วยหลายขนาด
เช่น short int และ long ซ่ึงจะเก็บขอ้ มูลในระยะที่แตกต่างกัน เรามักจะใช้ตัวแปรประเภท Integer สาหรับเก็บ
ข้อมูลที่นับได้ เช่น จานวนของผลไมใ้ นตระกร้า จานวนของคนในห้อง จานวนของรถท่ีว่งิ บนทอ้ งถนน เปน็ ต้น มาดู
ตัวอย่างการใช้งานตัวแปรประเภท Integer ในภาษา C
#include <stdio.h>
int main()
{
int apple = 3;
int orange = 2;
int total = apple + orange;
printf("%d apples and %d oranges\n", apple, orange);
printf("I have %d fruits in total", total);
return 0;
}
ในตัวอย่าง เป็นการใช้งานตัวแปรประเภท Integer สาหรับเก็บจานวนของผลไม้แต่ละชนิด และหาผลรวมของ
ผลไม้ทั้งสองในตัวแปร total ต่อไปเราจะพูดเกี่ยวกับค่ามากสุดและค่าน้อยสุดของข้อมูลประเภท Integer ใน
ภาษา C ข้างล่างน้ีเป็นตัวอย่างของโปรแกรม
#include <stdio.h>
#include <limits.h>
int main()
{
printf("Maximum value of int: %d\n", INT_MAX);
printf("Minimum value of int: %d\n", INT_MIN);
int a = INT_MAX;
printf("%d\n", a);
a = a + 1;
printf("%d\n", a);
return 0;
}
27
ในตัวอย่าง เป็นโปรแกรมในการแสดงค่ามากสุดและค่าน้อยสุดของข้อมูลประเภท Integer โดยใช้ค่าคงที่
INT_MAX และ INT_MIN ซึ่งเป็นค่าที่กาหนดโดย Marco ท่ีอยู่ในไลบรารี่ limits.h ของภาษา C และเราทดสอบ
การทางานของโปรแกรมโดยการกาหนดค่ามากสุดให้กับตัวแปร a และเพ่ิมคา่ ของตัวแปรขนึ้ ไป 1 ผลลพั ธ์ที่ได้คือ
คา่ ในตวั แปรน้นั เกดิ Overflow และเปน็ ทนี่ อ้ ยทสี่ ดุ ของ Integer ซ่ึงจะได้ผลลัพธต์ ามข้างล่าง
Maximum value of int: 2147483647
Minimum value of int: -2147483648
2147483647
-2147483648
Floating-point numbers ตวั เลขจา้ นวนจรงิ
Floating-point number เป็นประเภทข้อมูลสาหรับเก็บตัวเลขจานวนจริง ในภาษา C จะมีอยู่สอง
ประเภทคอื float และ double สิ่งทแ่ี ตกต่างกันคอื ขนาดของพ้ืนทีท่ ี่ใช้ในการจัดเก็บ และข้อมูลประเภท double
นน้ั จะเก็บจานวนของทศนิยมได้มากกวา่ ข้อมลู ประเภทน้ีจะใช้เกบ็ ขอ้ มูลทีม่ ีคา่ เป็นเศษสว่ นหรือตวั เลขท่ีมีเลขหลัง
จุดทศนิยม ยกตัวอย่างเช่น ข้อมูลการคานวณทางวทิ ยาศาสตร์ เป็นตน้
#include <stdio.h>
int main()
{
float pi = 3.14f;
float half = 3 / 2.0f;
float half2 = 3 / 2;
printf("Pi: %f\n", pi);
printf("Half of 3: %f\n", half);
printf("Half of 3: %f\n", half2);
double gravity = 9.807;
double earth_mass = 5.972E24;
double meter = 1E-3;
printf("Earth gravity: %lf m/s^2\n", gravity);
printf("Earth mass: %lf kg\n", earth_mass);
printf("1 centimeter: %lf meter\n", meter);
return 0;
}
28
ในตวั อย่าง เป็นการใช้งานตัวแปรสาหรับเกบ็ ข้อมูลในรปู แบบของทศนิยมทั้งตวั แปรประเภท float และ double
ในส่วนแรกเราได้ประกาศตัวแปร float จานวนสามตัวและกาหนดค่าให้กับตัวแปร ค่าของข้อมูลประเภท float
นั้นจะลงทา้ ยด้วย f หรือ F เสมอ
float half = 3 / 2.0f;
float half2 = 3 / 2;
ต่อมาเป็นการทดสอบการหารตัวเลขในตัวแปร half และ half2 เพื่อให้คุณเข้าใจและเห็นความแตกต่างของส่ิงท่ี
เกิดขึ้น การคูณหรือการหารตัวเลขในภาษา C น้ันจะได้ผลลัพธ์เป็น Integer ถ้าหากตัวเลขทั้งสองตัวนั้นเป็น
ประเภท Integer เหมือนในตวั แปร half2 ถา้ หากมีตัวแปรอย่างน้อยหน่ึงตวั แปรทีเ่ ปน็ float หรอื double จะได้
ข้อมลู เปน็ float หรอื double น่ีจึงเป็นส่ิงท่ีต้องควรระวงั ในการเขยี นโปรแกรม
double gravity = 9.807;
double earth_mass = 5.972E24;
double meter = 1E-3;
สามตัวแปรตอ่ มาเป็นการประกาศตัวแปรประเภท double สาหรับตัวแปรทั้งสองประเภทนัน้ สามารถประกาศใน
รูปแบบสัญกรณ์วิทยาศาสตร์ได้ เชน่ ในตัวอย่างในตัวแปร earth_mass เป็นการกาหนดค่าแบบย่อซึ่งมีค่าเท่ากับ
5.972 x 10^24 และในตวั แปร meter นน้ั มีค่าเท่ากับ 1 x 10^-3
Pi: 3.140000
Half of 3: 1.500000
Half of 3: 1.000000
Earth gravity: 9.807000 m/s^2
Earth mass: 5972000000000000300000000.000000 kg
1 centimeter: 0.001000 meter
น่ีเป็นผลลัพธ์ของโปรแกรมในการทางานกับประเภทข้อมูลแบบทศนิยมในภาษา C ด้วยตัวแปรแบบ float และ
double
ในบทน้ี คุณได้เรียนรู้เกี่ยวกับการประกาศและใช้งานตัวแปรในภาษา C และได้รู้จักประเภทข้อมูลชนิด
ต่างๆ ซึง่ ใช้ในการเก็บขอ้ มลู ทแี่ ตกตา่ งกันในการเขียนโปรแกรม
อ้างองิ http://marcuscode.com/lang/c/variables-and-types
29
Input-output กับประเภทขอ้ มูล
การรับค่าและการแสดงผลโดยการใช้ฟังก์ชนั ของภาษา C โดยปกตใิ นการเขียนโปรแกรม เรามักจะมีการ
รบั ค่าและการแสดงผลจากผู้ใช้ ในการรับค่าโดยทั่วไปแล้วจะเป็นการรับค่าจากคีย์บอร์ดและการแสดงผลจะเป็น
ทางหนา้ จอคอมพิวเตอร์
ในภาษา C มีฟังก์ชันให้เราสามารถรับค่าและแสดงผลได้ โดยจะมีรูปแบบในการรับค่าและแสดงผลของ
ขอ้ มลู ขนึ้ กับประเภทของขอ้ มูล นี่เป็นข้อมูลส่วนมากทเ่ี ราจะพบในการทางาน โดยจะเป็น specifier ท่ีจะใช้ในการ
รบั ขอ้ มลู แต่ละแบบ
specifier Description Usage
d Integer ใชก้ ับตัวเลขจานวนเต็ม
f Floating, double ใช้กบั ตวั เลขจานวนจริง
c Character ใช้กบั ตัวอกั ษรหนง่ึ ตัวอกั ษร
s String of characters ใชก้ ับสตรงิ หรอื ตวั อกั ษรหลายตัว
p Pointer ใช้กับค่าท่อี ยขู่ องหนว่ ยความจา
% % เคร่ืองหมายทจี่ ะตามโดย specifier ตัวอนื่ ๆ
ฟงั กช์ นั printf
ในการแสดงผลในภาษา C ฟังก์ชนั ที่ใช้คอื ฟังก์ชัน printf ซง่ึ เปน็ ฟังก์ชนั ท่ีสามารถแสดงขอ้ มลู ประเภทต่าง
ออกทางหน้าจอภาพได้ โดยมันมรี ปู แบบการใชง้ านดังนี้
printf("string pattern", value1, value2, ...);
ในการใช้ฟังก์ชัน อาร์กิวเมนต์ตัวแรกคือรูปแบบการแสดงผล และอาร์กิวเมนต์ตัวต่อไปเป็นข้อมูลที่ตรงกับ
specifier ที่เรากาหนดไวต้ ามลาดับ มาดูตัวอยา่ งการใชง้ านจริง
printf("Hello, my name is Mateo\n");
int age = 20;
printf("I\'m %d year old\n", age);
printf("I have %f USD and %d cents\n", 10.5, 4);
จากตวั อยา่ งเป็นการใช้ฟงั กช์ ัน printf เพ่ือการแสดงผลแบบต่างๆ อันแรกเปน็ การแสดงผลขอ้ ความโดยท่ี
ไม่มี specifier อันท่ีสองเราต้องการแสดงอายุท่ีเป็น Integer เราจึงใช้ %d เพ่ือแทนการแสดงผลของมัน อัน
สดุ ทา้ ยแสดงให้เหน็ ถึงการแสดงหลาย คา่ โดยเราตอ้ งกาหนด specifier ให้ตรงกับคา่ ของเรา
และน่ีเป็นตัวอยา่ งผลลัพธ์ของโปรแกรม
30
Hello, my name is Mateo
I'm 20 years old
I have 4.5 USD and 4 cents
ฟงั ก์ชนั scanf
ในการรับค่านั้นเราจะใช้ฟังก์ชัน scanf ในการรับค่า โดยการรับค่าเรามักจะหมายถึงการรับค่าจาก
คยี บ์ อร์ด โดยรูปแบบการใชง้ านของฟังกช์ ันเปน็ ดังนี้
scanf("%specifier1 %specifier2 ...", variable1, variable2, ...);
ฟังก์ชัน scanf นั้นมีรูปแบบที่คล้ายกันกับฟังก์ชัน printf โดยอาร์กิวเมนต์ในฟังก์ตัวแรกเป็นสตริงของ specifier
input ทีเ่ ราตอ้ งการรบั และเปน็ ลาดบั ของตวั แปรท่ตี รงกบั specifier ท่ีเราได้กาหนดไว้ในอารก์ วิ เมนต์ตวั แรก และ
ใสต่ ัวแปรให้ตรงกบั ลาดบั ของ specifier ที่กาหนด
ตอ่ ไปมาดตู วั อย่าง ของการรับคา่ โดยการใชฟ้ ังกช์ นั scanf
int a;
float b;
scanf("%d%f", &a, &b);
printf("value of a is %d\n", a);
printf("value of b is %f\n", b);
ในตัวอย่าง เราได้มีตัวแปรสองตัวคือ a และ b และมีประเภทของตัวแปรเป็น integer และ floating ตามลาดับ
ดังนั้นใน specifier input เราจึงใส่ %d สาหรับตัวแปร a และ %f สาหรับตัวแปร b อาร์กิวเมนต์ตัวตอ่ ไปเราจะ
ใส่ลาดับของตวั แปร โดยลาดบั ของตวั แปรจะแตกตา่ งจากฟังก์ชนั printf โดยจะนาหน้าด้วยเคร่ืองหมาย & ซึ่งมัน
หมายถึงทีอ่ ยู่ของตัวแปร ถา้ ในกรณีทต่ี ัวแปรเปน็ อาเรยข์ องตวั อักษรนน้ั เราไม่ต้องใส่
และนี่เปน็ ตวั อย่างของโปรแกรมเม่ือใส่คา่ เปน็ 5 และ 10.5 ตามลาดบั
5 10.5
value of a is 5
value of b is 10.500000
Escape characters
Escape characters เป็นตัวอักษรพิเศษในภาษา C ที่จะต้องใช้สัญลักษณ์เครื่องหมาย \ นาหน้าเสมอ
เพ่ือไม่ให้เกิดข้อผิดพลาดในการคอมไพล์โปรแกรม เพราะว่าตัวอักษรน้ีเป็นสัญลักษณ์ที่ตรงกันกับโครงสร้างของ
ภาษา นีเ่ ป็นรายการของตวั อักษรพเิ ศษในภาษา C
31
Escape character Character represented
a Alarm
\b
\n Backspace
\r Newline
\t Carriage Return
\v Horizontal Tab
\\ Vertical Tab
\' Backslash
\" Single quotation mark
\? Double quotation mark
Question mark
ต่อไปมาดูตัวอย่างการใช้งานของ Escape characters ในภาษา C ซ่ึงเราจะเก็บข้อความที่มีตัวอักษรเหล่าน้ีไว้
ภายในตวั แปร char และตวั แปร char array
#include <stdio.h>
int main ()
{
char tab = '\t';
char a = 'A';
char text[] = "His name is \"Mateo\".\n";
char text2[] =
"You can visit Mateo's website by asking him for address.\n";
printf("%c%c\n", tab, a);
printf("%s", text);
printf("%s", text2);
return 0;
}
ในตวั อย่าง เป็นการใช้งาน Escape characters ในการเขียนโปรแกรม ในสองตัวแปรแรก tab และ a น้ันเปน็ ตัว
แปรแบบ char ตัวแปรแรกเป็นตัวแปรท่ีเป็นตัวอักษรพิเศษซ่ึงหมายถึง tab และตัวแปรที่สองเป็นค่าปกติของ
char ที่ไม่ใช่ตัวอักษรพิเศษ
32
ต่อมาในตัวแปร text และ text2 เป็นตัวแปรแบบ char array หรือตัวแปรที่เก็บข้อมูลของ char ได้มากกว่า 1
ตวั อักษร สาหรับการกาหนดค่าให้กับตัวแปรเราจึงใช้ \" สาหรับเคร่ืองหมาย " และ \' สาหรับเครือ่ งหมาย ' ส่วน
\n น้นั เป็นตวั อักษรพิเศษทหี่ มายถงึ การข้ึนบรรทัดใหมซ่ ึ่งเราจะใชบ้ ่อยในบทเรยี นน้ี
A
His name is "Mateo".
You can visit Mateo's website by asking him for address.
นเี่ ป็นผลลัพธ์การทางานของโปรแกรมในการใช้งาน Escape characters ในภาษา C
ในบทน้ี คุณได้เรียนรู้เก่ียวกับการรับค่าและการแสดงผลในภาษา C เบ้ืองต้น เพ่ือให้สามารถสร้าง
โปรแกรมที่มีการติดต่อกับผู้ใช้ได้ อย่างไรก็ตาม Input-output นัน้ สามารถเป็นได้ในทางอ่นื ๆ เช่น การรับค่าจาก
เสยี ง กลอ้ งถ่ายรปู หรืออาจจะเป็นการทางานกบั ไฟล์ หรือแม้กระท่ังกับ Network สาหรับบทน้ี เราพูดถึงการรับ
คา่ ทางคีย์บอรด์ และการแสดงผลทางหนา้ จอ Console
อ้างองิ http://marcuscode.com/lang/c/input-output
33
อาเรย์ในภาษา C
อาเรย์ คือตัวแปรที่เก็บข้อมูลเป็นชุดข้อมูล โดยข้อมูลของอาเรย์จะเก็บในรูปแบบของลาดับข้อมูล โดย
ข้อมูลนนั้ จะตอ้ งเป็นประเภทเดียวกัน ในการประกาศอาเรย์ในภาษา C มันมรี ูปแบบคอื :
type name[size];
โดย type คือประเภทของตัวแปรของอาเรย์ที่เราจะสร้าง name เป็นช่ือของตัวแปรอาเรย์ และ size เป็นขนาด
ของอาเรย์ การใช้อาเรย์ทาใหเ้ ราสามารถจดั การข้อมูลได้ง่ายข้ึน กว่าการใช้ตวั แปรธรรมดา มาดูตวั อย่างน้ี
int n1 = 5;
int n2 = 10;
int n3 = 20;
int n4 = 30;
int n5 = 50;
ในตัวอย่างดา้ นบน เรามีตวั แปร 5 ตัวที่เกบ็ ข้อมูลประเภท integer ไว้ นนั่ ดูเหมือนจะงา่ ยเพราะมแี ค่ 5 ตัวถ้ามันมี
เปน็ จานวนมาก การใช้อาเรย์จะชว่ ยให้เราสะดวกและแก้ปัญหานี้ได้ จากตัวอย่างข้างบนถ้านามาสร้างเป็นตัวแปร
อาเรยจ์ ะได้แบบน้ี
int n[5] = {5, 10, 20, 30, 50};
การประกาศอาเรย์
การประกาศอาเรย์นั้นคล้ายกับการประกาศตัวแปร เพราะว่าอาเรย์ก็เป็นตัวแปรประเภทหนึ่ง ดังน้ันใน
การทจ่ี ะใช้งานอาเรย์ เราจาเป็นทจี่ ะตอ้ งประกาศมันก่อน
int n[5];
char name[20];
double m[10];
ในตัวอยา่ งเราได้ทาการประกาศอาเรย์ โดยท่ียังไม่ได้กาหนดค่า โดยการประกาศใช้คล้ายกับตวั แปร โดย
กาหนดประเภทของอาเรย์ ชื่อของอาเรย์ และสิ่งที่เพ่ิมเข้ามาคือขนาดของอาเรย์ ซึ่งเป็นขนาดสูงสุดของอาเรย์ที่
บรรจุได้ ในตัวแปรอาเรย์เมื่อมันถูกประกาศ เช่น int n[5] จะเป็นการประกาศตัวแปรประเภท integer มา 5 ตัว
โดยในอาเรย์เราจะใช้ index ในการบอกตาแหน่ง เช่น n[0], n[1] ไปจนถึง n[4] น่ันคือ index ของอาเรย์จะเริ่ม
จาก 0 ถึง size-1 เสมอ
ตอ่ ไปเราจะประกาศและกาหนดคา่ ให้กบั อาเรยไ์ ปพร้อมกัน
int n[5] = {5, 10, 20, 30, 50};
char name[] = {'a', 'e', 'i', 'o', 'u'};
double m[10];
34
m[0] = 1.5;
m[1] = 4.3;
m[9] = 50.32;
ในตัวอย่างเราได้ประกาศและกาหนดค่าให้กับอาเรย์ ในตัวแปรอาเรย์ n เรากาหนดค่าให้ท้ังหมด 5 ค่า
เพราะวา่ เรากาหนด size ของอาเรย์เป็น [5] สาหรบั ในตัวแปร name เราสามารถกาหนดค่าใหก้ ับตัวแปรอาเรย์ได้
โดยไม่ตอ้ งบอก size ของอาเรย์ โดยภาษา C จะคานวณให้เราอัตโนมัติ ส่วนตัวแปร m เราได้กาหนดค่าให้กับตัว
แปรโดยการใชอ้ าเรย์ index
การอ่านคา่ ในอาเรย์
หลังจากท่ีได้สร้างอาเรย์มาแล้ว เราจาเปน็ ต้องเข้าถึงค่าของอาเรย์ เพ่ืออ่านค่าหรอื แกไ้ ขค่าของมนั โดยการเข้าถึง
ค่าของอาเรยจ์ ะต้องผ่าน index มาดูตัวอย่าง
int n[5] = {5, 10, 20, 30, 50};
จากการประกาศอาเรยด์ ้านบน เราจะใช้ index 0 ถึง 4 ในการเข้าถึงค่าตามลาดับ โดย 0 เปน็ อาเรยต์ วั แรก ดงั น้ัน
ถา้ เราตอ้ งการเขา้ ถงึ ค่า 20 จึงใช้ n[2] ซ่ึงคือตาแหนง่ ขอ้ มูลที่ 20 อยู่ มาดูตัวอยา่ งเพม่ิ เตมิ
#include <stdio.h>
int main()
{
int n[8] = {5, 10, 15, 20, 25, 30, 35, 40};
printf("n[2] = %d\n", n[2]);
printf("n[3] = %d\n", n[3]);
n[2] = 99;
printf("n[2] = %d\n", n[2]);
return 0;
}
ในตัวอย่างเราได้สร้างตวั แปรอาเรย์ที่มขี นาดเป็น 8 และกาหนดค่าเร่ิมต้นให้กับมัน ในตอนแรก เป็นการแสดงค่า
ของ n[2] และ n[3] คุณจะสงั เกตวุ ่าค่าตรงกับท่ีประกาศไวต้ อนแรก ต่อมาเราได้กาหนดค่าใหก้ ับ n[2] ใหม่และดู
อีกครง้ั คา่ จะเปลีย่ นไป และทคี่ อื ผลลพั ธ์ของโปรแกรม
n[2] = 15
n[3] = 20
n[2] = 99
35
การใชค้ า้ ส่ัง for loop กับอาเรย์
เน่ืองจากอาเรย์เป็นลาดับของตัวแปรและใช้ index ในการเข้าถึงข้อมูลมันจึงได้รับความนิยมในการใช้กับ for
loop เพื่อทจี่ ะเขา้ ถึงคา่ ในอาเรย์
#include <stdio.h>
int main()
{
int n[8] = {5, 10, 15, 20, 25, 30, 35, 40};
int i;
for (i = 0; i < 8; i++)
{
printf("%d, ", n[i]);
}
printf("\n");
for (i = 7; i >= 0; i--)
{
printf("%d, ", n[i]);
}
return 0;
}
ในตัวอย่างเราได้ใช้ for loop ในการอ่านค่าจากอาเรย์ โดยใช้ตัวแปร i เป็น index ของอาเรย์ อันแรกเป็นการ
อ่านค่าของอาเรย์แบบปกติ และแบบท่ีสองเราได้อ่านจากตาแหน่งสุดท้ายมายังตาแหน่งแรก นี่เป็นผลลัพธ์ของ
โปรแกรม
5, 10, 15, 20, 25, 30, 35, 40,
40, 35, 30, 25, 20, 15, 10, 5,
การใช้ for loop กบั อาเรย์มีประโยชนเ์ ป็นอย่างมาก เราสามารถที่จะใช้อ่านข้อมูลและใส่ข้อมูลก็ได้ ต่อไปมาลอง
ว่าถ้าเราต้องการประกาศอาเรย์ 1000 ตาแหน่งและกาหนดค่า มันคงไม่ดแี น่ถ้าเราต้องใส่คา่ ทลี ะอนั ดังน้ันเราจะ
ใช้ for loop ช่วย
#include <stdio.h>
int main()
{
int x[1000];
36
int i;
for (i = 0; i < 1000; i++)
{
x[i] = (i + 1) * 7;
}
return 0;
}
ในตัวอย่างเราได้ประกาศตัวแปรอาเรย์ x ท่มี ีขนาด 1000 และใช้ for loop ในการกาหนดค่าให้กับอาเรย์ โดยมัน
จะไดผ้ ลลพั ธ์เหมอื นกบั
int x[1000] = {7, 14, 21, 28, 35, 42, ... , 7000};
ในตอนนคี้ ณุ จะเห็นวา่ การใช้ for มีประโยนชก์ ับอาเรยเ์ ปน็ อย่างมาก
อาเรย์ 2 มิติ
ในอาเรย์ท่ีคุณได้เรียนไปก่อนหน้า น้ันเรียกว่าอาเรย์ 1 มิติ ในภาษา C นั้นยังมีอาเรย์มากกว่า 1 มิติ ให้เราได้ใช้
งาน โดยท่ีใช้บ่อยก็คือ อาเรย์ 2 มิติ โดยอาเรย์สองมิติ ให้คุณจินตนาการว่ามันคือตาราง ซึง่ กค็ ืออาเรย์ของอาเรย์
1 มติ นิ ัน่ เอง มาดูตัวอย่าง
int a[3][4] = {
{35, 6, 1},
{4, 5, 16},
{9, 7, 92}
};
char b[5][10];
ในการอ่านค่าอาเรย์นน้ั เหมือนกันกับการอา่ นค่าอาเรย์ 1 มิติ แตเ่ ราต้องใช้ index สองตัว คณุ คงจะเคยเรียนเรื่อง
matrix มาแล้ว เราใช้การเข้าถึงแบบน้ัน แต่ว่าจาไว้ว่า index ของอาเรย์จะเร่ิมจาก 0 เสมอ เหมื่อนท่ีได้บอกไป
ก่อนหน้าน้ี เช่น เลข 7 ในตัวแปรอาเรย์ a จะอยู่ท่ีตาแหน่ง a[2][1] และเราก็ยังคงสามารถใช้ for loop ในการ
อ่านคา่ ทัง้ หมดของอาเรยไ์ ด้
#include <stdio.h>
int main()
{
int a[3][3] =
{
37
{35, 6, 1},
{4, 5, 16},
{9, 7, 92}
};
int i, j;
for (i = 0; i <3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d, ", a[i][j]);
}
printf("\n");
}
return 0;
}
ในตวั อยา่ งเราได้ใช้ for loop ในการอา่ นคา่ ของอาเรย์ และจะไดผ้ ลลัพธด์ ังนี้
35, 6, 1,
4, 5, 16,
9, 7, 92,
อาเรยห์ ลายมิติ
ในภาษา C ยังมีอาเรย์ที่มากกว่า 2 มิติ คือ อาเรย์ 3 มิติ อาเรย์ 4 มิติ และมากว่านั้น แต่โดยส่วนมากแล้วเราไม่
ค่อยที่จะไดใ้ ช้มัน
double t[4][5][2];
int m[1][2][3][4];
อา้ งองิ http://marcuscode.com/lang/c/arrays
38
พอนยเ์ ตอร์
คือตัวแปรที่เก็บค่าของท่ีอยู่ของข้อมูลของตัวแปร การใช้พอนย์เตอร์จะทาให้เราสามารถเข้าถึงข้อมูลได้
โดยตรงโดยใช้ที่อยู่ของหน่วยความจา แทนที่จะใช้ชื่อของตัวแปรท่ีเราได้ใช้ในบทก่อนหน้านี้ พอนย์เตอร์มี
ประโยนชส์ าหรับ low-level programming เชน่ การเขียนโปรแกรมในภาษา C
พอนย์เตอร์ ในภาษา C
ในภาษา C เราสามารถเขียนโปรแกรมโดยการใช้พอยน์เตอร์ได้ ซ่ึงเราจะกล่าวว่าพอนย์เตอร์จัดเป็นตัว
แปรชนิดของมันเอง แต่หลักการทางานนั้นคล้ายคลึงกับตัวแปรทั่วไป มีเคร่ืองหมายที่สาคัญท่ีคุณต้องรู้เก่ียวกับ
พอนยเ์ ตอร์
Address-of operator (&)
Dereference operator (*)
Declaration operator (*)
Address-of operator (&)
การใส่สัญลักษณ์ ampersand (&) หน้าตัวแปรนั้นจะทาให้เราได้รับค่าที่อยู่ของตัวแปรในหน่วยความจา
ท่ีอยู่น้ีสามารถได้รับมาได้ในตอนที่โปรแกรมรันเท่านั้น ซึ่งมันจะบอกว่าตัวแปรที่เก็บอยู่ท่ีตาแหน่งไหนของ
หน่วยความจา ยกตวั อยา่ งเชน่
&myVariable;
การใช้คาส่งั นี้ เราจะไดค้ ่าที่อยู่ของตัวแปร myVariable โดยค่าที่อยู่นั้นจะอยู่ในเลขฐานสิบหก เนื่องจากทีอ่ ยู่ของ
หน่วยความจานั้นจาเป็นต้องรนั โปรแกรม โดยปกตแิ ลว้ ท่อี ยู่ของหน่วยความจาจะแสดงในเลขฐาน 16 ในบทเรียน
น้ีเราจะใชฐ้ าน 10 เพือ่ ให้งา่ ยต่อการเข้าใจ
int myVariable = 8;
printf("%d", &myVariable); // 1367
ในตัวอย่างด้านบน โปรแกรมจะแสดง 1367 ออกทางหน้าจอ นั่นหมายความว่าตวั แปร myVariable ถูกเก็บอยู่ท่ี
ตาแหน่ง 1367 ในหน่วยความจา ดังน้ันเราสามารถใช้ค่าที่อยู่นี้ในการถึงค่าของตัวแปร myVariable ได้โดยตรง
โดยปกตเิ ราจะใช้ %x เพื่อแสดงผลค่าท่อี ยู่ในเลขฐาน 16
Dereference operator (*)
ในตัวอย่างก่อนหน้า ที่อยู่ของตัวแปรน้ันสามารถได้มาโดยการใส่เครื่องหมาย ampersand (&) หน้าตัว
แปร ในการเข้าถึงขอ้ มูลของตัวแปรพอนยเ์ ตอร์ เราใช้จะใช้เคร่ืองหมาย star * หน้าตัวแปรพอยน์เตอรเ์ พื่อเข้าถึง
ขอ้ มลู ในทีอ่ ยขู่ องพอยน์เตอร์
39
int myVariable = 8;
int *myPointer = &myVariable; // ประกาศตวั แปรพอนย์เตอร์
printf("%d", *myPointer); // เขา้ ถึงข้อมลู ของตัวแปรพอนยเ์ ตอร์
ในตัวอย่างตัวแปร myPointer ถกู ประกาศโดยใชค้ าส่งั *myPointer ในตรงนโ้ี ปรดอย่าสับสนกับการเข้าถึงข้อมูล
ของตัวแปรทีค่ ุณเห็นในฟงั กช์ ัน printf("%d", *myPointer)ซ่งึ เปน็ การเข้าถึงข้อมูลของตัวแปร myPointer
Declaring pointers
หลังอยากท่ีได้รูจ้ ักพอยน์เตอรแ์ ลว้ ตอ่ ไปจะเป็นการประกาศตัวแปรพอยนเ์ ตอรเ์ พือ่ ใช้งาน ในการประกาศ
ตวั แปรพอนย์เตอร์ เราจะใช้เครื่องหมาย star (*) เช่นเดียวกับการเข้าถึงค่าของตัวแปร ดังน้ันโปรดอย่าสับสนใน
ตรงนี้ มาดูตัวอย่างในการประกาศตัวแปร
#include <stdio.h>
int main()
{
int number = 10;
float money = 34.8;
int *p1 = &number;
float *p2;
p2 = &money;
printf("p1 address = %x\n", p1);
printf("p1 value = %d\n", *p1);
printf("p2 address = %x\n", p2);
printf("p2 value = %f\n", *p2);
return 0;
}
ในตัวอย่างเราได้ประกาศตัวแปร 2 ตัว คือ number ซ่ึงมีประเภทเป็น integer และ money ซึ่งมี
ประเภทเป็น float ต่อมาเราประกาศตัวแปรพอยน์เตอร์ p1 และ p2 สังเกตวุ ่าเราใสเ่ ครื่องหมาย *p1 นาหน้าช่ือ
ของตัวแปร และประเภทของตัวแปรต้องตรงกับตัวแปรทีจ่ ะใชเ้ ก็บตาแหน่งท่ีอยู่ เช่น int *p1 จะใช้เก็บท่ีอยู่ของ
ตวั แปร number หลังจากน้ันเราแสดงค่าท่ีอยู่ของตวั แปรพอยน์เตอร์และค่าทต่ี ัวแปรพอยนน์ ้ันช้ีอยู่ ในการแสดง
คา่ ท่อี ยู่ เราไม่ตอ้ งใชเ้ ครอื่ งหมาย & เพราะ p1 และ p2 เป็นตวั แปรพอยน์เตอรแ์ ล้ว
และนเี่ ปน็ ผลลพั ธ์เม่ือโปรแกรมรัน
40
p1 address = 28ff04
p1 value = 10
p2 address = 28ff00
p2 value = 34.799999
การใช้พอนย์เตอร์กบั อาเรย์
การใช้พอยน์เตอร์กบั อาเรย์น้นั มปี ระโยชน์ เพราะอาเรย์เปน็ การเกบ็ ข้อมูลแบบชุดอนั ดบั และเรียงต่อกนั
#include <stdio.h>
int main()
{
int number[5] = {10, 20, 30, 40, 50};
int *myPointer = &number;
printf("first -> %d\n", *myPointer);
myPointer++;
printf("go next -> %d\n", *myPointer);
myPointer += 3;
printf("go next 3 -> %d\n", *myPointer);
myPointer--;
printf("go back -> %d\n", *myPointer);
return 0;
}
ในตัวอย่าง ในการใช้พอนย์เตอร์กับตัวแปรอาเรย์ จะได้ค่าตัวแหน่งแรกของอาเรย์เสมอ ดังน้ันเราสามารถไปท่ี
ตาแหน่งต่างของอาเรย์ได้ เช่น ไปตาแหนง่ ถดั ไปเราใช้ myPointer++ และตาแหน่งก่อนหน้าเราใช้ myPointer--
ไปตาแหน่งทีต่ อ้ งการเราจะใช้ myPointer += n ดังในตวั อยา่ งจะได้ผลลพั ธ์ดงั นี้
first -> 10
go next -> 20
go next 3 -> 50
go back -> 40
Pointer arithmetics
พอนย์เตอร์เป็นตัวแปร ดังนั้นเราสามารถใช้การดาเนินการทางคณิตศาสตร์กับพอยน์เตอร์เช่นเดียวกับตวั แปรได้
แตส่ าหรบั พอยนเ์ ตอร์แลว้ จะเป็นการทางานกบั ท่ีอยู่ของหนว่ ยความจาแทน ยกตวั อยา่ งเชน่
41
int *p1 = &foo; // 1367;
p1 += 1000; // 2367
p1++; // 2368
// work with arrays
int a[400];
int *p2 = &a;
p2 += 399;
*p2 = 1234;
ในตัวอย่างสมมติเรามีตัวแปรพอยน์เตอร์ p1 เก็บค่าท่ีอยู่ที่ 1367 เราสามารถไปท่ีตาแหน่งท่ีอยู่ 2367 ใน
หน่วยความจาได้โดยบวก 1000 ให้กับตัวแปร ในตวั อย่างท่ีสองเราใช้กบั อาเรย์ โดยการไปที่ตาแหน่งสุดท้ายของ
อาเรย์และกาหนดค่า 1234 ให้กบั อาเรย์ท่ตี าแหนง่ a[399]
อา้ งองิ http://marcuscode.com/lang/c/pointers
42
แบบทดสอบ หนว่ ยที่ 4
โครงสร้างภาษาคอมพิวเตอร์
คา้ สงั่ : จงเขียนโปรแกรมเพ่ือแปลงค่าองศาเซลเซียสเป็นองศาฟาเรนไฮต์
ให้เขียนโปรแกรมท่ีรับ input เป็นอุณหภูมิในหน่วยองศาเซลเซียส โดยโปรแกรมจะคานวณและแสดง output
เปน็ หน่วยองศาฟาเรนไฮต์ ตามสูตร Fahrenheit = (9/5)x(Celsius) + 32
ตวั อยา่ ง
input a temperature in degree Celsius : 28
28 degrees Celsius is equivalent to 82.4 degrees Fahrenheit
43
เฉลยแบบทดสอบ หน่วยท่ี 4
โครงสร้างภาษาคอมพิวเตอร์
#include<stdio.h>
int main()
{
int celsius;
printf("Input a temperature in degree Celsius: ");
scanf("%d",&celsius);
printf("%d degrees Celsius is equivalent to %.1f degrees
Fahrenheit",celsius,(9.0/5)*celsius+32);
}
44
หนว่ ยที่ 5
การใช้กระบวนการเขยี นโปรแกรม
ตัวด้าเนินการและนิพจน์
ในความเป็นจรงิ ตวั ดาเนนิ การในภาษา C มมี ากมายหลายตวั ทเี่ ดยี ว แตส่ าหรับในท่นี ี้จะขอกลา่ วถงึ ตัว
ดาเนินการทสี่ าคัญๆ ดังต่อไปน้ี
1. ตวั ดาเนินการทางคณิตศาสตร์ (Arithmetic Operator)
2. ตัวดาเนินการยนู ารี (U nary Operator)
3. ตัวดาเนนิ การเปรยี บเทียบและตรรกะ (Comparison and Logical Operators)
4. ตัวดาเนนิ การระดับบิต (Bit wise Operators)
5. ตัวดาเนินการกาหนดค่า (Assignment Operators)
6. ตวั ดาเนินการเง่ือนไข (Conditional Operators)
7. ตัวดาเนนิ การบอกขนาดชนดิ ข้อมูล (Size of Operators)
ตวั เนินการทางคณิตศาสตร์ (Arithmetic Operators)
ตวั ดาเนนิ การทางคณติ ศาสาตร์ มี 5 ตัว คอื
+ การบวก (addition)
- การลบ (subtraction)
* การคูณ (multiplication)
/ การหาร (division)
% การหารเอาเศษ (modulus)
45
ตัวอย่าง : สมมุติว่า A และ B เปน็ ตวั แปรชนิดตัวเลขจานวนเต็ม มีค่า A=10 , B=3 เม่อื นาตัวแปร
ท้งั สองมาผ่านตัวดาเนนิ การทางคณิตศาสตร์ จะได้ผลดังน้ี คือ
นิพจน์ ผลลพั ธ์
A+B 13
A-B+1 8
A*B 30
A/B 3
A%B 1
ตวั ดา้ เนินการยนู ารี (U nary Operators)
ตวั ดาเนินการยูนารี คือ ตวั ดาเนนิ การท่ีนามาใช้กบั ตัวถูกดาเนนิ การชนิดใดๆ ในการเพม่ิ คา่ ใหมข่ ึ้นมา ชึ่งอาจจะ
เปน็ ตัวถูกดาเนนิ การแบบค่าคงท่ี เลขจานวนเตม็ เลขจานวนจริง ตวั แปร และนพิ จนไ์ ด้
ตัวดาเนินการเพ่ิมค่า ใช้เครอ่ื งหมาย ++
ตวั ดาเนินการลดคา่ ใช้เครอื่ งหมาย --
ตวั อย่าง : ตวั ดาเนนิ การ นพิ จน์ ความหมาย
++ (prefix) ++a เพ่มิ คา่ ที่ละหนึ่งให้กับ a ก่อนแล้วจึงนาค่าใหม่ของ a ในนพิ จนน์ ้ีไปใช้
++ (prefix) a++ นาค่าปัจจุบนั ของ a ในนพิ จน์นไ้ี ปใช้งานกอ่ นแลว้ ค่อยเพ่ิมคา่ a อีกหน่งึ
-- (prefix) --b ลดค่าลงอีกหนงึ่ ให้กบั b ก่อน แลวั จงึ นาคา่ ใหม่ของ b ในนพิ จนน์ ้ีไปใช้
-- (prefix) b-- นาคา่ ค่าปัจจุบันของ b ในนิพจน์นีไ้ ปใช้งานก่อนแลว้ คอ่ ยลดค่า b ลง หนึง่
หมายเหตุ : ++i, i++ หมายถงึ i = i +1
--i, i-- หมายถงึ i = i - 1
ตวั ดา้ เนนิ การเปรียบเทียบและตรรกะ (Comparison and Logical Operators)มี 6 ตัว คือ
ตวั ดา้ เนินการ ความหมาย
< นอ้ ยกวา่
<= น้อยกว่าหรอื เทา่ กับ
> มากกวา่
>= มากกวา่ หรือเท่ากับ
== เท่ากบั
!= ไมเ่ ท่ากับ