คือผมมีปัญหา ศึกษามาหลายช่องทางละ ไม่สามารถทำได้ จึงขอความอนุเคราะห์จากพี่ๆทางพันทิป ในการเขียนโค้ด โจทย์ที่ผมให้ต่อไปนี้ไม่ใช้โจทย์ที่จะทำ แต่จะนำไปเป็นแนวทางในการเขียน โจทย์ประมาณว่า เราพิมชื่อได้ไม่เกิน 10 ตัว ถ้าเกินรับใหม่ แล้วมีหมายเลขครั้งที่พิมรับค่า นับเฉพาะครั้งที่ผ่าน ถ้าไม่ผ่านให้ขึ้นเป็นหมายเลขเดิม แล้วถ้าพิม end ให้หยุดโปรแกรม Next ถ้าพิมชื่อผ่านไม่เกิน 10 ตัว ให้ป้อนค่าตัวเลข 3ค่า โดยทั้ง3ค่า รับเป็นทศนิยม 2 ตำแหน่ง Next วนลูบพิมชื่อใหม่ตามเงื่อนไข แล้วก็ป้อนค่า ทำอย่างงี้ไปสามรอบ Next จากนั้นให้แสดงชื่อครั้งแรกที่พิม และตัวเลขที่พิมพร้อมชื่อ 3 ค่า แล้วค่าสุดท้าย ให้ นำสามค่ามารวมกัน Next ให้แสดงชื่อครั้งที่สองที่พิม และตัวเลขที่พิมพร้อมชื่อ 3 ค่า แล้วค่าสุดท้าย ให้ นำสามค่ามารวมกัน Next ทำเหมือนเดิมแต่เป็นครั้งที่สาม ขอบคุณล่วงหน้าครับ ——————————————————————————————————————————— สื่อวีดิทัศน์การสอน เรื่อง :: การตรวจสอบเงื่อนไข คำสั่ง if-else if :: ——————————————————————————————————————————— 3. คำสั่งกำหนดเงื่อนไข if-else if คำสั่ง if-else if เป็นคำสั่งที่กำหนดการเลือกกระทำตามเงื่อนไขที่ 1 เมื่อเงื่อนไขเป็นจริง (True) ก็จะทำตามคำสั่งหลังเงื่อนไข หากเป็นเท็จก็จะทำตามคำสั่งหลัง else และจะมีการตรวจสอบเงื่อนไขที่ 2 และเงื่อนไขต่อ ๆ ไปอีก ถ้าเงื่อนไขเป็นจริงก็จะทำงานตามเงื่อนไขที่ได้กำหนดไว้รูปแบบคำสั่ง if (Condition-1) Statement ; else if (Condition-2) Statement; else if (condition-N) Statement; หรือการนำเอาเครื่องหมาย { } มาช่วยในการทำงานแบบหลายคำสั่ง if (Condition-1) { Statement; Statement; } else if (Condition-2) { Statement; Statement; } else if (Condition-N) { Statement; Statement; } else Statement; ตัวอย่างโปรแกรม คุณครูต้องการทราบเกรดของนักเรียนแต่ละคน ในรายวิชาคอมพิวเตอร์ตามช่วงคะแนนที่ กำหนดให้ เช่น 80 คะแนน จะแสดงข้อความ Your grade is A บนจอภาพ เป็นต้น จึงให้นักเรียน เขียนโปรแกรมเพื่อรับข้อมูลเป็นคะแนนนักเรียนแต่ละคน ดังนี้ “ให้นักเรียนเขียนโปรแกรมโดยแสดงข้อความบนจอภาพว่า Enter your score : รับค่า ตัวแปร score ชนิด Integer ตรวจสอบเงื่อนว่าค่า score อยู่ในช่วง 80 ถึง 100 หรือไม่ ถ้าเป็น จริง ให้แสดงข้อความว่า Your grade is A แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไขต่อไปว่าค่า score อยู่ในช่วง 70 ถึง 79 หรือไม่ ถ้าเป็นจริง ให้แสดงข้อความว่า Your grade is B แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไขต่อไปว่าค่า score อยู่ในช่วง 60 ถึง 69 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า Your grade is C ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 50 ถึง 59 หรือไม่ ถ้าเป็นจริง ให้แสดงข้อความว่า Your grade is D ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 0 ถึง 49 หรือไม่ ถ้าเป็นจริง ให้แสดงข้อความว่า Your grade is E คำสั่ง else และหากเงื่อนไขเป็นเท็จ ให้แสดงข้อความว่า Your score is out of range” ช่วงคะแนนที่กำหนดให้ คะแนนอยู่ในช่วง 80 ถึง 100 ได้เกรด A คะแนนอยู่ในช่วง 70 ถึง 79 ได้เกรด B คะแนนอยู่ในช่วง 60 ถึง 69 ได้เกรด C คะแนนอยู่ในช่วง 50 ถึง 59 ได้เกรด D คะแนนอยู่ในช่วง 0 ถึง 49 ได้เกรด E วิเคราะห์ปัญหา (Analysis) สิ่งที่โจทย์กำหนด :: กำหนดให้ตัวแปร score เก็บข้อมูลคะแนนของนักเรียนแต่ละคน โดยใช้ Format Code ชนิด Integer กำหนดการรับค่าตัวแปร score แบบ %d (เลขจำนวนเต็ม) กำหนดการตรวจสอบเงื่อนว่า ค่า score อยู่ในช่วง 80 ถึง 100 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความ ว่า Your grade is A แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 70 ถึง 79 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า Your grade is B แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไข ต่อไปว่า ค่า score อยู่ในช่วง 60 ถึง 69 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า Your grade is C ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 50 ถึง 59 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า Your grade is D ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 0 ถึง 49 หรือไม่ ถ้าเป็นจริงให้ แสดงข้อความว่า Your grade is E คำสั่ง else และหากเงื่อนไขเป็นเท็จ ให้แสดงข้อความว่า Your score is out of range > 30 แล้วขึ้นบรรทัดใหม่ สิ่งที่โจทย์ต้องการ :: แสดงข้อความ Enter your score : ตามด้วยค่าของตัวแปร score จากการรับข้อมูลเข้ามาในระบบ และแสดงเกรดของนักเรียนแต่ละคนในรายวิชาคอมพิวเตอร์ตามช่วง คะแนนที่กำหนด หากค่า score อยู่ในช่วง 80 ถึง 100 หรือไม่ ถ้าเป็นจริง ให้แสดงข้อความว่า Your grade is A แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไขต่อไปว่าค่า score อยู่ในช่วง 70 ถึง 79 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า Your grade is B แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไขต่อไป ว่าค่า score อยู่ในช่วง 60 ถึง 69 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า Your grade is C ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 50 ถึง 59 หรือไม่ ถ้าเป็นจริง ให้แสดงข้อความว่า Your grade is D ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 0 ถึง 49 หรือไม่ ถ้าเป็นจริง ให้แสดงข้อความว่า Your grade is E และใช้คำสั่ง else หากเงื่อนไขเป็นเท็จ ให้แสดงข้อความว่า Your score is out of range > 30 แล้วขึ้นบรรทัด การแก้ปัญหา (Problem Solving) ตามแนวทางการคิดเชิงคำนวณ โดยการคิดแบบ "ขั้นตอนวิธี" (Algorithm) ดังนี้ Pseudo Code Algorithm if-else if 1. int score 2. Print Enter your score : 3. Input score 4. ((score >= 80) && (score <= 100)) 4.1 Print Your grade is A 5. else if ((score >=70) && (score <= 79)) 5.1 Print Your grade is B 6. else if ((score >=60) && (score <= 69)) 6.1 Print Your grade is C 7. else if ((score >=50) && (score <= 59)) 7.1 Print Your grade is D 8. else if ((score >=0) && (score <= 49)) 8.1 Print Your grade is E 9. else 9.1 Your score is out of range 10. End Flowchart บรรทัดที่ โปรแกรม 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 include <stdio.h>int score; int main( ) { printf(" Enter your score : "); scanf("%d",&score); if ((score >= 80) && (score <= 100)) printf("Your grade is A\n"); else if ((score >=70) && (score <= 79)) printf("Your grade is B \n"); else if ((score >=60) && (score <= 69)) printf("Your grade is C \n"); else if ((score >=50) && (score <= 59)) printf("Your grade is D \n"); else if ((score >=0) && (score <= 49)) printf("Your grade is E \n"); else printf("Your score is out of range \n"); } อธิบายโปรแกรม บรรทัดที่ 1 กำหนดใช้งานไลบรารีชื่อ stdio.h ให้ทำงาน บรรทัดที่ 2 กำหนดตัวแปรชนิด Integer ชื่อ score บรรทัดที่ 3 กำหนดเริ่มต้นโปรแกรมหลัก int main( ) บรรทัดที่ 4 เริ่มชุดโปรแกรมหลักด้วยเครื่องหมาย { บรรทัดที่ 5 แสดงข้อความบนจอภาพ Enter your score : บรรทัดที่ 6 รับค่าตัวแปร score บรรทัดที่ 7 ตรวจสอบเงื่อนว่าค่า score อยู่ในช่วง 80 ถึง 100 หรือไม่ ถ้าเป็นจริงทำ ถ้าไม่จริงไปตรวจสอบเงื่อนไขต่อไปที่บรรทัดที่ 9 บรรทัดที่ 8 แสดงข้อความ Your grade is A แล้วขึ้นบรรทัดใหม่ บรรทัดที่ 9 ตรวจสอบเงื่อนไขต่อว่าค่า score อยู่ในช่วง 70 ถึง 79 หรือไม่ ถ้าเป็นจริงทำ ถ้าไม่จริงไปตรวจสอบเงื่อนไขต่อไปบรรทัดที่ 11 บรรทัดที่ 10 แสดงข้อความ Your grade is B แล้วขึ้นบรรทัดใหม่ บรรทัดที่ 11 ตรวจสอบเงื่อนไขต่อว่าค่า score อยู่ในช่วง 60 ถึง 69 หรือไม่ ถ้าเป็นจริงทำ ถ้าไม่จริงไปตรวจสอบเงื่อนไขต่อไปบรรทัดที่ 13 บรรทัดที่ 12 แสดงข้อความ Your grade is C แล้วขึ้นบรรทัดใหม่ บรรทัดที่ 13 ตรวจสอบเงื่อนไขต่อว่าค่า score อยู่ในช่วง 50 ถึง 59 หรือไม่ ถ้าเป็นจริงทำ ถ้าไม่จริงไปตรวจสอบเงื่อนไขต่อไปที่บรรทัดที่ 15 บรรทัดที่ 14 แสดงข้อความ Your grade is D แล้วขึ้นบรรทัดใหม่ บรรทัดที่ 15 ตรวจสอบเงื่อนไขต่อว่าค่า score อยู่ในช่วง 0 ถึง 49 หรือไม่ ถ้าเป็นจริงทำ ถ้าไม่จริงไปตรวจสอบเงื่อนไขต่อไปที่บรรทัดที่ 17 บรรทัดที่ 16 แสดงข้อความ Your grade is E บรรทัดที่ 17 เขียนคำสั่ง else หากเงื่อนไขเป็นเท็จ ให้ทำหลังคำสั่งนี้ บรรทัดที่ 18 แสดงข้อความ Your score is out of range บรรทัดที่ 19 สิ้นสุดการทำงานของโปรแกรมหลัก int main( ) ด้วยเครื่องหมาย } ผลลัพธ์บนจอภาพ โปรแกรมจะแสดงข้อความ Enter your score : ตามด้วยค่าของตัวแปร score จากการรับข้อมูลเข้ามาในระบบ และแสดงเกรดของนักเรียนแต่ละคนในรายวิชาคอมพิวเตอร์ตามช่วง คะแนนที่กำหนด หากค่า score อยู่ในช่วง 80 ถึง 100 หรือไม่ ถ้าเป็นจริง ให้แสดงข้อความว่า Your grade is A แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไขต่อไปว่าค่า score อยู่ในช่วง 70 ถึง 79 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า Your grade is B แล้วขึ้นบรรทัดใหม่ ตรวจสอบเงื่อนไขต่อไป ว่าค่า score อยู่ในช่วง 60 ถึง 69 หรือไม่ ถ้าเป็นจริงให้แสดงข้อความว่า Your grade is C ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 50 ถึง 59 หรือไม่ ถ้าเป็นจริง ให้แสดงข้อความว่า Your grade is D ตรวจสอบเงื่อนไขต่อไปว่า ค่า score อยู่ในช่วง 0 ถึง 49 หรือไม่ ถ้าเป็นจริง ให้แสดงข้อความว่า Your grade is E และใช้คำสั่ง else หากเงื่อนไขเป็นเท็จ ให้แสดงข้อความว่า Your score is out of range > 30 แล้วขึ้นบรรทัด Enter your score : 80 (ผู้ใช้งานกรอกเลข 80 เข้ามาแล้วกดปุ่ม Enter) Your grade is A (แสดงข้อความบนจอภาพ) การทดสอบการทำงานของโปรแกรมจากเว็บ https://repl.it/languages/c คลิกเครื่องหมาย เพื่อดูผลผลลัพธ์การทำงานของโปรแกรมด้านล่าง (ลิงค์สำรอง https://repl.it/repls/DarkvioletMediumpurpleWeb)——————————————————————————————————————————— |