งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Decision: Multi Selection (if-else-if, switch)

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Decision: Multi Selection (if-else-if, switch)"— ใบสำเนางานนำเสนอ:

1 Decision: Multi Selection (if-else-if, switch)
Programming I 5

2 Multiple Alternative (ทางเลือกแบบหลายทาง)

3 ผังงาน 1 ผังงานตรวจสอบว่าต้อง เสียภาษีร้อยละเท่าไร โดยมีเงื่อนไขดังนี้
ผังงานตรวจสอบว่าต้อง เสียภาษีร้อยละเท่าไร โดยมีเงื่อนไขดังนี้ ถ้าเงินรายได้มากกว่า 50,000 ต้องเสียภาษี 12% ถ้าเงินรายได้เกิน 20,000 แต่ไม่เกิน 50,000 ต้องเสียภาษี 8% ถ้าเงินรายได้น้อยกว่า 20,000 ไม่ต้องเสียภาษี

4 ผังงาน 2 ผังงานแสดงเงื่อนไขการ รับประทานยา โดยแบ่ง ขนาดรับประทานตาม อายุ ดังนี้ อายุมากกว่า 10 ปี รับประทานครั้งละ 2 ช้อนชา อายุ ปี รับประทานครั้งละ 1 ช้อนชา อายุ ปี รับประทานครงละ 1/2 ช้อนชา เด็กแรกเกิด ห้าม รับประทาน

5 คำสั่งควบคุมแบบเลือกทำมากกว่า 2 ทางเลือก
เมื่อมีทางเลือกมากกว่า 2 ทางเลือก ใช้ เงื่อนไขตัดสินใจเพื่อเลือกการทำงาน อย่างใดอย่างหนึ่ง คำสั่งควบคุมการทำงานแบบเลือกทำ มากกว่า 2 ทางเลือก (1) คำสั่ง if-else-if (2) คำสั่ง switch-case

6 คำสั่ง if-else-if เป็นโครงสร้างที่ทำให้เราสามารถใช้ คำสั่ง if–else-if ต่อกันไปเรื่อยๆ ซึ่งจะ ใช้ในการตัดสินใจมากกว่า 2 ทางเลือก ขึ้นไป โดยมีรูปแบบดังตัวอย่างต่อไป

7 รูปแบบคำสั่ง if-else-if (3 ทางเลือก)
if (เงื่อนไข 1){ ชุดคำสั่ง A; } else if (เงื่อนไข 2) { ชุดคำสั่ง B; } else { ชุดคำสั่ง C; }

8 รูปแบบคำสั่ง if-else-if (4 ทางเลือก)
if (เงื่อนไข 1){ ชุดคำสั่ง A; }else if (เงื่อนไข 2){ ชุดคำสั่ง B; }else if (เงื่อนไข 3){ ชุดคำสั่ง C; }else { ชุดคำสั่ง D; }

9 รูปแบบคำสั่ง if-else-if
คำสั่งที่ต้องการให้ทำเมื่อเงื่อนไข 1 เป็น จริง } else if( เงื่อนไขที่ 2) { คำสั่งที่ต้องการให้ทำเมื่อเงื่อนไข 2 เป็น จริง } else if(เงื่อนไขที่ 3) { …. } else { คำสั่งที่ต้องการให้ทำ หากไม่มีเงื่อนไขใด ในข้างบนที่เป็นจริงเลย } จะมี else if กี่ครั้งก็ได้ ขึ้นอยู่กับจำนวนเงื่อนไข หรือทางเลือกที่กำลังพิจารณา

10 ตัวอย่างโจทย์ จงเขียนโปรแกรมรับเลขจำนวนเต็ม 1 จำนวน จากนั้นให้พิจารณาว่าเลข จำนวนเต็มดังกล่าวเป็นเลขจำนวนเต็ม ลบ (Negative) , ศูนย์ (Zero) หรือ จำนวนเต็มบวก (Positive) แล้วแสดง ข้อความทางหน้าจอ เช่น วิเคราะห์โจทย์ Input: ตัวเลข 1 จำนวน Output: ข้อความแสดงชนิดของ ตัวเลขนั้น

11 ออกแบบโปรแกรม รับตัวเลขจำไว้ใน num พิจารณาว่า num เป็นตัวเลขชนิดใด num
3. แสดงข้อความชนิดข้อมูลที่พิจารณาออก ทางหน้าจอ เต็มบวก (num > 0) เต็มลบ (num < 0) เงื่อนไข ศูนย์ (num == 0)

12 เขียนโปรแกรม if (num>0) cout << “Positive” << endl;
else if (num<0) cout << “Negative” << endl; else if (num==0) cout << “Zero” << endl; จะใช้ else เลยก็ได้เพราะถ้าไม่ใช่จำนวนเต็มบวก ไม่ใช่จำนวนเต็มลบ ต้องเป็นศูนย์ ชัวร์ จะได้ไม่ต้องระบุเงื่อนไข

13 เขียนโปรแกรม if (num>0) cout << “Positive” << endl;
else if (num<0) cout << “Negative” << endl; else cout << “Zero” << endl;

14 ตัวอย่าง โปรแกรมจัดห้องเรียน
กรณีที่เงื่อนไขมีมากกว่า 2 ทางเลือก ต้องใช้ if-else-if มาช่วย ตัวอย่างเช่น การจัดห้องเรียนจากการ พิจารณาคะแนนสอบ คะแนน ห้องเรียน 80-100 King 60-79 2 40-59 3 0-39 4

15 ตัวอย่าง โปรแกรมจัดห้องเรียน
if (score >= 80 && score <=100) cout << “King room”; else if (score >= 60 && score <=79) cout << “Second room”; else if (score >= 40 && score <=59) cout << “Third room”; else cout << “Fourth room”;

16 ตัวอย่าง โปรแกรมจัดห้องเรียน
if (score >= 80) cout << “King room”; else if (score >= 60) cout << “Second room”; else if (score >= 40) cout << “Third room”; else cout << “Froth room”;

17 ตัวอย่าง โปรแกรมจัดห้องเรียน
if (score >= 0) cout << “froth room”; else if (score >= 40) cout << “third room”; else if (score >= 60) cout << “second room”; else cout << “King room”; ระวัง!!! ไม่ถูกต้อง

18 ตัวอย่าง โปรแกรมแปลงตัวเลขเป็นวัน
จงเขียนโปรแกรมรับเลขจำนวนเต็ม 1 จำนวน (1-7) แล้วแสดงวัน โดยมีเงื่อนไขดังนี้ เลข วัน 1 จันทร์ 2 อังคาร 3 พุธ 4 พฤหัส 5 ศุกร์ 6 เสาร์ 7 อาทิตย์

19 ตัวอย่าง โปรแกรมแปลงตัวเลขเป็นวัน
if (num == 1) cout << “Monday”; else if (num == 2) cout << “Tuesday”; else if (num == 3) cout << “Wednesday”; else if (num == 4) cout << “Thursday”; else if (num == 5) cout << “Friday”; else if (num == 6) cout << “Saturday”; else if (num == 7) cout << “Sunday”; else cout << “???”;

20 คำสั่ง switch-case switch (นิพจน์) { case ค่าคงที่1 : คำสั่งA; break; case ค่าคงที่2 : คำสั่งB; break; case ค่าคงที่3 : คำสั่งC; break; default : คำสั่งD; } ใช้ตัดสินใจ จะทำคำสั่งใด คำสั่งหนึ่ง จากหลายๆ ทางเลือก จะเลือกคำสั่ง นั้น ถ้านิพนจ์ ในคำสั่ง switch ตรง กับค่าคงที่ที่ ได้กำหนดไว้ ในคำสั่ง case

21 คำสั่ง switch-case switch (นิพจน์)
นิพจน์จะต้องเป็นชนิดข้อมูลจำนวนเต็ม เช่น short, int, long, char เท่านั้น case ค่าคงที่ ค่าคงที่จะต้องเป็นชนิดข้อมูลดัยวกันกับ นิพจน์ break คือคำสงวน ใช้หยุดทำคำสั่งถัดไป default จะทำคำสั่งหลังจากนี้ก็ต่อเมื่อผลลัพธ์ การเปรียบเทียบไม่ตรงกับ case ใดเลย

22 ตัวอย่าง โปรแกรมสำหรับหาจำนวนวันในเดือนที่ กำหนดโดยใช้ switch-case
ถ้า m มีค่า 4,6,9 หรือ 11 ก็จะมี 30 วัน จะเห็นว่า ถ้าหลัง case ไม่มีคำสั่งอะไร การ ทำงานจะไหลลงมา case ต่อไป จนกว่าจะพบ break จึงจะหลุดจาก switch switch ( m ) { case 4: case 6: case 9: case 11: day = 30; break; }

23 ตัวอย่างการใช้คำสั่ง switch-case
int x; cin>>x switch( x ){ case 1 : cout<<"A"<<endl; case 2 : cout<<"B"<<endl; case 3 : cout<<"C"<<endl; case 4 : cout<<"D"<<endl; default : cout<<"default"<<endl; } x = 2 ผลลัพธ์ B C D default

24 ตัวอย่างการใช้คำสั่ง switch-case
int x; cin>>x switch( x ){ case 1 : cout<<"A"<<endl; break; case 2 : cout<<"B"<<endl; break; case 3 : cout<<"C"<<endl; break; case 4 : cout<<"D"<<endl; break; default : cout<<"default"<<endl; } x = 2 ผลลัพธ์ B

25 ตัวอย่างการใช้คำสั่ง switch-case
int x; cin>>x switch( x ){ case 1 : cout<<"A"<<endl; break; case 2 : cout<<"B"<<endl; break; case 3 : cout<<"C"<<endl; break; case 4 : cout<<"D"<<endl; break; default : cout<<"default"<<endl; } x = 9 ผลลัพธ์ default

26 จากตัวอย่างโปรแกรมแปลงตัวเลขเป็นวัน
จงเขียนโปรแกรมรับเลขจำนวนเต็ม 1 จำนวน (1-7) แล้วแสดงวัน โดยมีเงื่อนไขดังนี้ เลข วัน 1 จันทร์ 2 อังคาร 3 พุธ 4 พฤหัส 5 ศุกร์ 6 เสาร์ 7 อาทิตย์

27 ตัวอย่าง โปรแกรมแปลงตัวเลขเป็นวัน
switch ( num ) case 1 : cout << “Monday”; break; case 2 : cout << “Tuesday”; break; case 3 : cout << “Wednesday”; break; case 4 : cout << “Thursday”; break; case 5 : cout << “Friday”; case 6 : cout << “Saturday”; case 7 : cout << “Sunday”; break; default : cout << “???”;

28 ตัวอย่าง โปรแกรมตอบคำถาม

29 กิจกรรม จากส่วนของโปรแกรมต่อไปนี้ จงแปลง ให้อยู่ในรูปแบบของคำสั่ง switch-case if (a == 1) x += 5; else if (a == 2) x += 10; else if (a == 3) x += 16; else if (a == 4) x += 34; else x += 52;

30 กิจกรรม จากส่วนของโปรแกรมต่อไปนี้ หลังจาก ทำงานใน switch-case เสร็จ y มีค่า เท่าไร int x = 3, y = 3; switch (x + 3) { case 6: y = 1; default: y += 1; }

31 กิจกรรม จากส่วนของโปรแกรมต่อไปนี้ จงหา ความผิดพลาดของโปรแกรม และแก้ไข ให้ถูกต้อง if (num > 0){ cout>>num>>endl; cout>>“Positive Number” if else (num < 0) cout>>“Negative Number”; else cout>>“Zero”; }

32 ตัวอย่างโจทย์ 1 จงเขียนโปรแกรมรับคะแนนในการเล่น เกมส์ของ 2 ฝ่าย คือฝ่าย A และ ฝ่าย B หากฝ่ายใดมีคะแนนมากกว่าจะเป็นผู้ชนะ หากมีคะแนนเท่ากันแสดงว่าเสมอ โดยให้แสดงข้อความ “A win”, “B win” หรือ “Game tied” วิเคราะห์โจทย์ Input คะแนนของ A คะแนนของ B Process เปรียบเทียบคะแนน Output ข้อความ “A win”, “B win” หรือ “Game tied”

33 ออกแบบโปรแกรม (ขั้นตอนวิธี)
1. รับคะแนนของฝ่าย A 2. รับคะแนนของฝ่าย B 3. ถ้าคะแนน A มากกว่า คะแนน B แสดงข้อความ “A win” ถ้าคะแนน B มากกว่า คะแนน A แสดงข้อความ “B win” นอกเหนือ 2 กรณีข้างบน (คะแนน เท่ากัน) แสดงข้อความ “Game tied” 4. จบการทำงาน

34 เขียนโปรแกรม

35 ตัวอย่างโจทย์ 2 จงเขียนโปรแกรมรับเลขจํานวนเต็ม 4 จํานวน แลวพิจารณาว่าตัวเลขเหลานั้น ตรงตามเงื่อนไขใดตอไปนี้ ถาตัวเลขเหลานั้นสามารถจับคูตัวเลขที่ เหมือนกันได 2 คูพอดี ใหแสดงข อความวา “two pairs” ถาตัวเลขไมสามารถจับคูกันได ให แสดงขอความวา “not two pairs” ตัวอย่าง input  output  “two pairs” input  output  “two pairs” input  output  “not two pairs”

36 วิเคราะห์โจทย์ Input เลขจํานวนเต็ม 4 จํานวน
Process เปรียบเทียบจับคู่เลขที่ เหมือนกัน จะมีทั้งหมด 3 กรณี กรณีที่ 1 เลขตัวที่ 1 คู่ 2 และ ตัว ที่ 3 คู่ 4 กรณีที่ 2 เลขตัวที่ 1 คู่ 3 และ ตัว ที่ 2 คู่ 4 กรณีที่ 3 เลขตัวที่ 1 คู่ 4 และ ตัว ที่ 2 คู่ 3 Output ข้อความ “two pairs” หรือ “not two pairs”

37 ออกแบบโปรแกรม (ขั้นตอนวิธี)
1. รับจำนวนเต็มตัวที่ 1 เก็บใน a 2. รับจำนวนเต็มตัวที่ 2 เก็บใน b 3. รับจำนวนเต็มตัวที่ 3 เก็บใน c 4. รับจำนวนเต็มตัวที่ 4 เก็บใน d 3. ถ้า a==b และ c==d แสดงข้อความ “two pairs” ถ้า a==c และ b==d ถ้า a==d และ b==c นอกเหนือ 3 กรณีข้างบน (จับคู่ไม่ได้) แสดงข้อความ “not two pairs” 4. จบการทำงาน

38 เขียนโปรแกรม

39 สรุป คำสั่ง if-else-if และ คำสั่ง switch-case ใช้สำหรับตัดสินใจกรณีที่มีทางเลือก มากกว่า 2 ทางเลือกขึ้นไป คำสั่ง if-else-if สามารถใช้กับช่วงของ ข้อมูลได้ คำสั่ง switch ไม่สามารถใช้กับช่วงของ ข้อมูลได้ ต้องใช้กับค่าคงที่ และต้องเป็น ชนิดจำนวนเต็ม (short, int,long , char) เท่านั้น


ดาวน์โหลด ppt Decision: Multi Selection (if-else-if, switch)

งานนำเสนอที่คล้ายกัน


Ads by Google