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

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

1 ควบคุมการทำงานด้วยเงื่อนไข Control Statement BC322 ครั้งที่ 3.

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


งานนำเสนอเรื่อง: "1 ควบคุมการทำงานด้วยเงื่อนไข Control Statement BC322 ครั้งที่ 3."— ใบสำเนางานนำเสนอ:

1 1 ควบคุมการทำงานด้วยเงื่อนไข Control Statement BC322 ครั้งที่ 3

2 2 Sequence Statement เป็นการดำเนินการ คำสั่ง (statement) จากบนลง ล่าง ทีละคำสั่ง add grade to total add 1 to count add grade to total add 1 to count total = total + grade; count = count + 1; ผังงาน (flowchart) คำสั่งใน C

3 3 •if..else •switch..case •for •while •do-while Control Statement

4 4 if Statement •if •if … else … •if … else if… •if … else if… else …

5 5  รูปแบบของคำสั่ง if หรื อ if (เงื่อนไข) สิ่งที่ต้องการให้ทำ if (เงื่อนไข) { สิ่งที่ต้องการให้ทำ 1 สิ่งที่ต้องการให้ทำ 2 สิ่งที่ต้องการให้ทำ 3 ………………. }

6 6 โครงสร้างการเลือกแบบ if grade >= 50 N Y if ( grade >= 50 ) printf( “Passed\n” ); คำสั่งใน C ผังงาน (flowchart) write “ Passed ”

7 7 Ex1 #include void main() { int a,b; printf(“Input a :”);scanf(“%d”,&a); printf(“Input b :”);scanf(“%d”,&b); if (a>b) printf(“%5d\n”,a); if (b>a) printf(“%5\nd”,b); }

8 8  รูปแบบของคำสั่ง if..else หรื อ if (เงื่อนไข) สิ่งที่ต้องการให้ทำถ้าเงื่อนไขเป็นจริง; else สิ่งที่ต้องการให้ทำถ้าเงื่อนไขเป็นเท็จ; if (เงื่อนไข) { สิ่งที่ต้องการให้ทำ 1 ถ้าเงื่อนไขเป็นจริง; สิ่งที่ต้องการให้ทำ 2 ถ้าเงื่อนไขเป็นจริง; } else { สิ่งที่ต้องการให้ทำ 1 ถ้าเงื่อนไขเป็นเท็จ; สิ่งที่ต้องการให้ทำ 2 ถ้าเงื่อนไขเป็นเท็จ; }

9 9 โครงสร้างการเลือกแบบ if else grade >= 50 Y if ( grade >= 50 ) printf( “Passed\n”); else printf (“Failed\n); คำสั่งใน C ผังงาน (flowchart) write “ Passed ” write “ Failed ”

10 10 Ex2 #include void main() { int a,b; printf(“Input a :”);scanf(“%d”,&a); printf(“Input b :”);scanf(“%d”,&b); if (a==b) printf(“%d is equal %d”,a,b); else printf(“%d is not equal %d”,a,b); }

11 11 Ex3 จงเขียนคำสั่ง if ในแต่ละข้อ ต่อไปนี้ 1. ถ้า หาร 3 ลงตัว ให้แสดงข้อความว่า “Oh Yes” แต่ถ้าไม่ลงตัว ให้แสดงข้อความว่า “Oh No” 2. ถ้าตัวเลขที่รับเข้ามา (num) เป็นจำนวนคู่ ให้ แสดงข้อความว่า “Even Number” แต่ถ้าเป็น จำนวนคี่ ให้แสดงข้อความว่า “Odd Number”

12 12 ข้อควรระวัง คำสั่ง (State ments) ค่ า x y if ( x == 10 ) x = x + 1; y = y + 1; if ( x == 10 ) { x = x + 1; y = y + 1; } int x = 5, y = 5; อย่าให้การเว้นระยะ ย่อหน้า (indentation) ทำให้เกิดความสับสนได้ ภาษา C จะไม่สนใจ ช่องว่าง (space), แท็บ (tab), การขึ้นบรรทัดใหม่ (newline) if ( x == 10 ); x = x + 1; y = y + 1; การใส่เครื่องหมาย ; หลัง เงื่อนไข (condition) ใน if มีผลทำให้เกิด ความผิดพลาดทางตรรกะ (logic error) ได้ if (x == 10) x = x + 1; y = y + 1;

13 13 Ex4 จงเขียนโปรแกรมรับค่าเลขจำนวนเต็ม 2 จำนวนจากแป้นพิมพ์ จากนั้นให้ตรวจสอบเลขจำนวนเต็มตัวแรกมากกว่าเลข จำนวนเต็มตัวที่สองหรือไม่ • ถ้าใช่ให้หาผลบวกของตัวเลข 2 จำนวนและ แสดงผลออกทางจอภาพ • ถ้าไม่ใช่ให้นำตัวเลขตัวแรกคูณตัวที่สอง Input Enter Number1 : 10 Enter Number2 : 7 Output Result = 17 Input Enter Number1 : 7 Enter Number2 : 10 Output Result = 70

14 14 Solution Ex4 #include void main() { int num1,num2,result;

15 15  รูปแบบของคำสั่ง Nested if Statement if ( เงื่อนไขที่ 1) คำสั่งชุดที่ 1 ; // กรณีเงื่อนไขที่ 1 เป็นจริง else if ( เงื่อนไขที่ 2) คำสั่งชุดที่ 2; // กรณีเงื่อนไขที่ 2 เป็นจริง... else คำสั่งชุดที่ n;// กรณีที่ นอกเหนือจากเงื่อนไขข้างต้น คำสั่งชุดต่อไป ;

16 16 Enter score: 92 Enter score: 76 Ex5 #include void main() { int score; char grade; clrscr(); printf( "Enter score: " ); scanf( "%d", &score ); if ( score >= 90 ) grade = 'A'; else if ( score >= 80 ) grade = 'B'; else if ( score >= 70 ) grade = 'C'; else if ( score >= 60 ) grade = 'D'; else grade = 'F'; printf( "Grade is %c\n", grade ); }

17 17 Remark !!! • เราสามารถใช้เครื่องหมายวงเล็บ { } กับการใช้ if แบบซ้อน (nested if) ได้ เพื่อความชัดเจน • การจับคู่ if/else ใช้หลักที่ว่า else จะจับคู่กับ if ตัว ก่อนหน้านี้ที่ใกล้ที่สุด

18 18 if ( condition1 ) if ( condition2 ) statement1; else statement2; else statement3; if ( condition1 ) { if ( condition2 ) statement1; else statement2; } else statement3; if ( conditionA ) statementA; else if ( conditionB ) statementB; else statementC; if ( conditionA ) statementA; else { if ( conditionB ) statementB; else statementC; }

19 19 Input :……………………………………. Output :………………………………… Ex6 ร้านขายหนังสือการ์ตูนแห่งหนึ่งกำหนดให้ หนังสือทุกเล่มราคา 50 บาท สำหรับสมาชิกหาก ซื้อหนังสือตั้งแต่ 200 บาทขึ้นไปมีส่วนลด 10% Input Member (Y/N) : Y Amount : 4 Output Price = 200 Discount = 20 Net Price = 180 Input Member (Y/N) : N Amount : 4 Output Price = 200 Discount = 0 Net Price = 200

20 20 Solution Ex6 #include void main() { char mem; int amt; float price,disc,net;

21 21 การเชื่อมหลายเงื่อนไขโดยไม่ จำเป็นต้องใส่วงเล็บ • && (and) เป็นจริงเมื่อทุกเงื่อนไขต้องเป็นจริง ทั้งหมด • || (or) เป็นจริงเมื่อมีบางเงื่อนไขเป็นจริง ตัวอย่าง if (x > 10 && x <= 15) printf(“OK”); if (x > 10 || y > 15) printf(“OK”); x มากกว่า 10 และ x น้อยกว่าหรือเท่ากับ 15 จะทำให้เงื่อนไขเป็นจริง x > 10 หรือ y >15 เป็นจริงเพียงเงื่อนไขเดียว จะทำให้เงื่อนไขเป็นจริง

22 22 Solution Ex6 ( อีกแบบ ) #include Void main() { char mem; int amt; float price,disc,net; printf(“Member (Y/N) :”);scanf(“%c”,&mem); printf(“Amount :”);scanf(“%d”,&amt); price = 50*amt; if (mem == ‘Y’ && price >= 200) disc = 0.1*price; else disc = 0; net=price-disc; printf(“Price = %.2f\n”,price); printf(“Discount = %.2f\n”,disc); printf(“Net = %.2f”,net); }

23 23  คำสั่ง switch… case • ใช้แทนคำสั่ง if…else ได้ • เลือกทำเงื่อนไขใดเงื่อนไขหนึ่ง • เหมาะกับกรณีที่มีทางเลือก มากกว่า 2

24 24 switch(ตัวแปร/นิพจน์) { case ค่า1 : คำสั่งชุดที่1; break; case ค่า 2 : คำสั่งชุดที่2; break; case ค่า 3 : คำสั่งชุดที่; break;... default : คำสั่ง; } รูปแบบคำสั่ง switch..case

25 25 #include int main() { int year; printf(“Enter year : ”); scanf(“%d”, &year); switch (year) { case 1 : printf(“Freshman\n”);break; case 2 : printf(“Sophomore\n”);break; case 3 : printf(“Junior\n”);break; case 4 : printf(“Senior\n”);break; default : printf(“Invalid Year\n”); } return 0; } Ex7 ค่าที่อยู่หลัง switch ต้องเป็นค่าที่นับได้เป็นตัว ๆ เท่านั้น เช่น 0,1,2 หรือ a,b,c

26 26 Enter a number [1-4]: 8 Enter a number [1-4]: 2 Ex8 #include void main() { int num; clrscr(); printf( "Enter a number [1-4]: "); scanf( "%d", &num ); switch (num) { case 1: printf( "one\n" ); break; case 2: printf( "two\n" ); break; case 3: printf( "three\n" ); break; case 4: printf( "four\n" ); break; default: printf( "out of range\n" ); }

27 27 #include void main() { int num; clrscr(); printf( "Enter a number [1-4]: "); scanf( "%d", &num ); switch ( num ) { case 1:printf( "one\n" ); case 2:printf( "two\n" ); case 3:printf( "three\n" ); case 4:printf( "four\n" ); default:printf( "out of range\n" ); } Enter a number [1-4]: 8 ถ้า ไม่ใส่ คำสั่ง break; หลัง case Ex9 Enter a number [1-4]: 2

28 28 #include void main() { char color; clrscr(); printf( "Enter a color of the Thai flag [R,W,B]: " ); scanf( "%c", &color ); switch (color) { case 'R': case 'r': printf( "Red\n" ); printf( "represents the nation\n" ); break; case 'W': case 'w': printf( "White\n" ); printf( "evokes the religion\n" ); break; case 'B': case 'b': printf( "Blue\n" ); printf( "symbolizes the monarchy\n" ); break; default: printf( "Invalid color\n" ); } Enter a color of the Thai flag [R,W,B]: r Red represents the nation Enter a color of the Thai flag [R,W,B]: B Blue symbolizes the monarchy ชุดคำสั่งที่มีในแต่ละ case ไม่ต้องมีเครื่องหมายปีกกา { } กำกับ Ex10

29 29 จงเขียนโปรแกรมเพื่อตรวจสอบตัวอักษร ที่รับจากแป้นพิมพ์ ถ้าเป็นสระให้พิมพ์ ข้อความบอกว่าเป็นสระ (vowel) แต่ถ้า ไม่ใช่ให้บอกว่าเป็นตัวอักษรปกติ (consonant) ขั้นตอน • รับตัวอักษร 1 ตัว -> ประกาศตัวแปรที่ เป็นตัวอักษร • ตรวจสอบตัวอักษรโดยใช้ switch Ex11

30 30 #include int main() { char ch; printf(“Enter character : ”);scanf(“%c”,&ch); switch (ch) { case ‘a’ : printf(“%c is a vowel\n”,ch);break; case ‘e’ : printf(“%c is a vowel\n”,ch);break; case ‘i’ : printf(“%c is a vowel\n”,ch);break; case ‘o’ : printf(“%c is a vowel\n”,ch);break; case ‘u’ : printf(“%c is a vowel\n”,ch);break; default : printf(“%c is a consonant\n”,ch); } return 0; } Solution Ex11

31 31 ตัวอย่าง #include void main() { clrscr(); printf( "Enter character : " ); scanf( "%c", &ch ); switch(ch) { Solution Ex11 ( อีกแบบ ) ใน switch อาจมีการใช้ case หลาย case ร่วมกัน เพื่อทำให้สะดวกและสั้นขึ้น

32 32 จงเขียนโปรแกรม โดยใช้ if และ switch case เพื่อ รับค่าเลขจำนวนเต็ม และ หาว่าเลขที่รับมานั้นใช้ แทนชื่อวันอะไร ให้แสดง ชื่อวันนั้นออกทางจอภาพ โดยที่ เลข 1 ใช้แทนวันจันทร์ เลข 2 ใช้แทนวันอังคาร เลข 7 ใช้แทนวันอาทิตย์ Ex12 Input Enter number (1-7) : 1 Output Monday !!! Input Enter number (1-7) : 4 Output Thursday !!! Input Enter number (1-7) : 8 Output Invalid number !!!

33 33 #include void main() { int num; printf(“Enter number (1-7) : ”);scanf(“%d”,&num); if (num==1) printf(“Monday !!!\n”); else if (num==2) printf(“Tuesday !!!\n”); else if (num==3) printf(“Wednesday !!!\n”); else if (num==4) printf(“Thursday !!!\n”); else if (num==5) printf(“Friday !!!\n”); else if (num==6) printf(“Saturday !!!\n”) else if (num==7) printf(“Sunday !!!\n”); else printf(“Invalid number\n”); } Solution Ex12( แบบ if…else)

34 34 #include void main() { int num; printf(“Enter number (1-7) : ”);scanf(“%d”,&num); Solution Ex12 ( แบบ switch…case )

35 35 Ex13 จงเปลี่ยนจาก if…else ให้เป็น switch…case if (number == 1) printf(“Have a good breakfast”); else if (number == 2) printf(“Have a nice lunch”); else if ((number == 3)||(number == 4)||(number == 5)) printf(“Have a copious supper”);

36 36 Solution Ex13


ดาวน์โหลด ppt 1 ควบคุมการทำงานด้วยเงื่อนไข Control Statement BC322 ครั้งที่ 3.

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


Ads by Google