คือผมมีปัญหา ศึกษามาหลายช่องทางละ ไม่สามารถทำได้ จึงขอความอนุเคราะห์จากพี่ๆทางพันทิป ในการเขียนโค้ด โจทย์ที่ผมให้ต่อไปนี้ไม่ใช้โจทย์ที่จะทำ แต่จะนำไปเป็นแนวทางในการเขียน โจทย์ประมาณว่า เราพิมชื่อได้ไม่เกิน 10 ตัว ถ้าเกินรับใหม่ แล้วมีหมายเลขครั้งที่พิมรับค่า นับเฉพาะครั้งที่ผ่าน ถ้าไม่ผ่านให้ขึ้นเป็นหมายเลขเดิม แล้วถ้าพิม end ให้หยุดโปรแกรม Next ถ้าพิมชื่อผ่านไม่เกิน 10 ตัว ให้ป้อนค่าตัวเลข 3ค่า โดยทั้ง3ค่า รับเป็นทศนิยม 2 ตำแหน่ง Next วนลูบพิมชื่อใหม่ตามเงื่อนไข แล้วก็ป้อนค่า ทำอย่างงี้ไปสามรอบ Next จากนั้นให้แสดงชื่อครั้งแรกที่พิม และตัวเลขที่พิมพร้อมชื่อ 3 ค่า แล้วค่าสุดท้าย ให้ นำสามค่ามารวมกัน Next ให้แสดงชื่อครั้งที่สองที่พิม และตัวเลขที่พิมพร้อมชื่อ 3 ค่า แล้วค่าสุดท้าย ให้ นำสามค่ามารวมกัน Next ทำเหมือนเดิมแต่เป็นครั้งที่สาม
ขอบคุณล่วงหน้าครับ
———————————————————————————————————————————
สื่อวีดิทัศน์การสอน เรื่อง :: การตรวจสอบเงื่อนไข คำสั่ง if-else if ::
———————————————————————————————————————————
3. คำสั่งกำหนดเงื่อนไข if-else if
รูปแบบคำสั่ง
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 (แสดงข้อความบนจอภาพ)
การทดสอบการทำงานของโปรแกรมจากเว็บ //repl.it/languages/c คลิกเครื่องหมาย
———————————————————————————————————————————