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

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

คำสั่งเงื่อนไข (Conditioning Statements) 1 ผู้สอน : ครูพัชรนันท์ กุลวรพิสิษฐ์

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


งานนำเสนอเรื่อง: "คำสั่งเงื่อนไข (Conditioning Statements) 1 ผู้สอน : ครูพัชรนันท์ กุลวรพิสิษฐ์"— ใบสำเนางานนำเสนอ:

1 คำสั่งเงื่อนไข (Conditioning Statements) 1 ผู้สอน : ครูพัชรนันท์ กุลวรพิสิษฐ์

2 2 หัวข้อ...  คำสั่งเงื่อนไขและตัว ดำเนินการ  คำสั่ง if  คำสั่ง if-else  คำสั่ง nested-if  คำสั่ง switch  การประยุกต์ใช้

3  คำสั่งเงื่อนไข ใช้ในการตัดสินใจเมื่อ มีทางเลือก  ชนิดของเงื่อนไข มี 3 ชนิด 1. เงื่อนไขทางเลือกจาก 1 ทาง (if) 3 condition yes statement no condition no yes statement1statement2 statement1 condition statement2... statement3statementn n เงื่อนไขทางเลือกจาก 2 ทาง (if-else) 3. เงื่อนไขทางเลือกจาก n ทาง (nested if, switch)

4  ตัวดำเนินการพื้นฐานในคำสังเงื่อนไข คือ ตัวดำเนินการสัมพันธ์ (Relational Operators) เช่น == (equal)!= (not equal) < (less than), <= (equal & less than) > (greater than), >= (equal & greater than)  ผลจากเงื่อนไข เป็นได้ 2 แบบ คือ ◦ จริง (TRUE: 1) หรือ เท็จ (FALSE: 0) 4 ตัวดำเนินการตรรกะ (Logical operators) && (AND) || (OR) ! (NOT) condition yes statement no ถ้า x = 75 x == 0 ? x != 0 ? x <= 75 ? x > 75 ? (x > 0) && (x<50) ? (x > 0) && (x<90) ? (x 90) ?

5  รูปแบบ if (expression) statement; if (expression) { s1; s2;... } 5 ผลจาก นิพจน์ตรรกะ (Logical Expression) เป็นได้ 2 แบบคือ (TRUE หรือ FALSE) ตัวอย่างเช่น if(x >= 60) printf(“pass”);  ถ้า TRUE จะทำ statement  ถ้า FALSE จะไม่ทำ statement expression yes statement(s) no statement x >= 60 yes no Print “pass”

6 #include void main() {int ID, X; char Name[20]; printf("Enter ID: "); scanf("%d", &ID); printf("Enter Name: "); scanf("%s", &Name); printf("Enter X(0-100): "); scanf("%d", &X); 6 ผลลัพ ธ์ Enter ID): _ AAAAA (Pass) start Input ID, Name, X X >= 60 yes end no Print ID,Name (Pass) เขียนโปรแกรมตรวจสอบเงื่อนไขเพื่อ คัดเลือกผู้ที่สอบผ่านตามเกณฑ์ ( คะแนน X ³ 60 ) เมื่อ Inputs คือ ID, Name, X if (X >= 60) printf( “ %d %s (Pass) \n", ID, Name); } Enter Name: _AAAAA Enter X ( ): _75

7 #include void main() {int X; printf("Enter X: "); scanf("%d", &X); 7 ผลลัพ ธ์ Enter X: _ -4 เขียนโปรแกรมหาค่า Absolute ของ X (|X|) เช่น ถ้า X=-4 จะได้ |X|=4 แนวคิด ทดสอบเงื่อนไข if X < 0 ปรับค่า X = -X) if (X < 0) printf( “ |X| = %d \n", X); } |X| = 4 start Input X X < 0 yes end no Print X X = -X

8  รูปแบบ if (expression) { statement1; … } else { statement2; … } 8 ผลจาก นิพจน์ตรรกะ (Expression) เป็นได้ 2 แบบ คือ (TRUE หรือ FALSE)  ถ้า TRUE จะทำ statement 1 ตัวอย่างเช่น  ถ้า FALSE จะทำ statement 2 expression noyes statement 1statement 2 statement 1statement 2 X >= 80 noyes Anot A if (X>=80) printf (“%d %s A\n”, ID, Name); else printf (“%d %s not A\n”, ID, Name); X = 75 not A

9 #include void main() {int ID; char Name[20], Gender; printf("Enter ID: "); scanf("%d", &ID); printf("Enter Name: "); scanf("%s", &Name); fflush(stdin); // clear keyboard buffer printf("Enter Gender: "); scanf("%c", &Gender); 9 start Input ID, Name,Gender Gender=‘M’ end yes “Male” no “Female” ผลลัพ ธ์ เขียนโปรแกรมตรวจสอบเงื่อนไขเพื่อแบ่ง นักศึกษาออกเป็น 2 กลุ่ม ตามเพศ (Gender) คือ เพศชาย (Male) หรือเพศหญิง (Female) if (Gender == ‘ M ’ ) printf("Male\n"); else printf("Female\n"); } Enter ID): _ Female Enter Name: _ AAAAA Enter Gender: _ F

10 #include void main() { int X, rem; printf("Enter X: "); scanf("%d", &X); 10 Enter X: _ (Even) start Input x rem = 0 end rem = x%2 yes “Even” no “Odd” ผลลัพ ธ์ เขียนโปรแกรมรับค่า Integer (X) และ ตรวจสอบว่า X เป็นเลขคู่ (Even) หรือเลขคี่ (Odd) แนวคิด : X เป็น Even ถ้า X หารด้วย 2 ลง ตัว rem = X % 2; // remainder of X/2 if (rem == 0) printf("%d (Even)\n", X); else printf("%d (odd)\n", X); }

11  รูปแบบ if (exp1) {statement1; … } else if (exp2) {statement2; … } else if (exp3) {statement3; … }... else if (exp n-1) {statement n-1; … } else statement n; 11 ผลจาก Expression เป็นได้ 2 แบบคือ  ถ้า TRUE จะทำ statement 2 exp1=true statement 1 yes no exp2=true statement 2 yes no... expn-1=true statement n yes no statement n  ถ้า TRUE จะทำ statement 1  ถ้า FALSE จะตรวจสอบ expression 2 ซึ่งได้ผล 2 แบบ คือ statement1 statement2 ... ทดสอบเงื่อนไขต่อไปจนถึง expression n-1 statemen t n-1 statement n  ถ้า TRUE จะทำ statement n-1 หรือ FALSE จะทำ statement n

12  เขียนโปรแกรมตัดเกรด จากคะแนนสอบ (X) ตามเงื่อนไข => grade = ‘A’ => grade = ‘B’ => grade = ‘C’ => grade = ‘D’ x grade = ‘F’ 12 #include void main() {int ID, X; char Name[20], Grade; printf("Enter ID: "); scanf("%d", &ID); printf("Enter Name: "); scanf("%s", &Name); printf("Enter X: "); scanf("%d", &X); if (X >= 80) Grade = 'A'; else if (X >= 70) Grade = 'B'; else if (X >= 60) Grade = 'C'; else if (X >= 50) Grade = 'D'; else Grade = 'F'; printf("Grade = %c\n", Grade); } start Grade = ‘F’ end Input ID, Name,X x >= 80 yes Grade = ‘A’ x >= 50 yes Grade = ‘D’ Grade x >= 70 yes Grade = ‘B’ x >= 60 yes Grade = ‘C’ Enter ID: _ Grade = B ผลลัพ ธ์ Enter Name: _AAAAA Enter X (0-100): _ 75 X=75 Grade=‘B’

13  เขียนโปรแกรมอ่าน Binary Expression (+, -, *, /) เช่น ที่มีรูปแบบข้อมูลเข้า คือ X Op Y  แนวคิด : ทดสอบค่า Op ว่าเป็น +, -, *, หรือ / 13 #include void main() {float X, Y, result=0; char Op; printf("Enter expression: "); scanf("%f %c %f", &X, &Op, &Y); if (Op == ‘ + ’ ) result = X+Y; else if (Op == ‘ - ’ ) result = X-Y'; else if (Op == ‘ * ’ ) result = X*Y; else if (Op = ‘ / ’ ) result = X/Y; // Y > 0 else else printf( “ %c \aUnknown operator\n ”, op); printf("= %.2f\n", result); } start Unknown Op end Input X,Op,Y Op = ‘+’ yes result = X+Y Op = ‘\’ yes result = X/Y result Op = ‘-’ yes result = X-Y Op = ‘*’ yes result = X*Y Enter ID: _ ผลลั พธ์ result=182.8 Op= ‘ + ’

14  รูปแบบ switch (expression) { case value1: statement1; break; 14 exp=1 st1 yes no exp=2 st2 yes no... exp=n st n yes no st st1 exp st2... st3st n n123 หมายเหตุ switch = nested if st1st2st3st n case value2: statement2; break; ผลจาก expression เป็นได้ n แบบคือ  ถ้าค่า expression ตรงกับ value i จะทำ statement i  คำสั่ง break ( มีผลทำให้จบ case ของคำสั่ง switch)  คำสั่ง default ( เป็นกรณีอื่นๆ ที่ไม่มีในเงื่อนไข 1-n )... case value n: statementn; break; default: statement; break; }

15 15 ตัวอย่างการเขียนโปรแกรม “ ร้านเหล้า ไฮเทค ” โดยใช้ฟังก์ชั่น if-else เงื่อนไข ถ้าอายุมากกว่า 18 เช็คเพศ หญิง หรือ ชาย - ถ้าเพศชาย ให้ไป โซนขายเหล้า - ถ้าเพศหญิง ให้ไป โซน ขายไวท์ - ถ้าอายุน้อยกว่า 18 ห้ามเข้า ใช้ If-else สองชั้น

16 16 โปรแกรม #include [stdio.h] // เปลี่ยน [, ] เป็น int main() { char name[50]; // เก็บชื่อ เป็นข้อความจึงต้องประกาศเป็น string (char แบบ หลายช่อง ) char sex; // เก็บเพศ (m/f) เป็นอักษรตัวเดียว ประกศ char ธรรมดาพอ int age; // เก็บอายุ จริงๆแล้วใช้ char ก็ได้ เพราะ char ก็เก็บเลขได้ แต่ นิยม int printf("What's your name : "); // คำถาม gets(name) // รับค่าชื่อ + สกุล ซึ่งมีช่องว่างคั่นอยู่ จึงต้องใช้ gets printf("How old are you : "); scanf("%d",&age); // รับค่าอายุ เป็นตัวเลข printf("Male/Female (m/f) : "); scanf("%c",&sex); // รับค่าเพศ เป็นอักษรตัวเดียว if(age<18) { // ถ้าอายุน้อยกว่า 18 ห้ามเข้า printf("Sorry you can'tenter this website"); } else { // ถ้าอายุไม่น้อยกว่า 18 ให้เช็คเพศ if(sex=='m') { // ถ้าผู้ชาย ไปโซนขายเหล้า printf("Hi Mr.%s welcome to exteen bar. enjoy with our spirits",name); } else { // ถ้าไม่ใช่ ( ก็คือเป็นหญิง ) ไปโซนไวน์ printf("Hello Mrs.%s welcome to exteen bar. enyou with our wine",name); } } scanf(" "); return 0; }

17 17 อันนี้ แบบที่สอง if(age<18) { printf("Sorry, You can't enter this website"); } else if(sex=='m') { printf("Hi Mr.%s welcome to exteen bar. enjoy with our spirits",name); } else { printf("Hello Mrs.%s welcome to exteen bar. enyou with our wine",name); }

18 18 บทนี้จะสอนการเช็คเงื่อนไขในอีกลักษณะ เรียกว่า switch...case เช่น สร้างโปรแกรมที่มีเมนู กด 1 ให้ทำอันนึง กด 2 ให้ทำอันนึง กด 0 ให้ ออก เป็นต้น นักเรียนจำทำยังไง ถ้าเราทำแบบที่เคยเรียนกันมา เราก็ต้องรับค่าจาก ผู้ใช้ ว่ากดอะไร แล้วมาเข้า if..else สมมติให้ตัวแปรชื่อ menu เก็บค่าเมนูที่ผู้ใช้เลือก ( สมมติว่ารับค่า จาก scanf ) เวลาเช็คก็ทำงี้ if(menu==1) printf("You choose 1"); else if(menu==2) printf("You choose 2"); else if(menu==0) printf("You want to exit"); else printf("Wrong choosing"); ถ้าเมนูมีมากกว่า 3 อย่าง เราก็เพิ่มส่วน else if ไปเยอะๆ แต่เขียนแบบนี้ บางทีมันยาว เราเลยจะใช้ switch...case ซึ่งมีรูปแบบ แบบนี้ switch( ตัวแปร ) { case ค่า : คำสั่งที่จะให้ทำ ; // case ค่า ตามด้วยโคลอน ( กด shft+ เซมิโคลอน ) break; case ค่า : คำสั่ง ; break; default : คำสั่ง }

19 19 switch(menu) { // ต้องการดูค่าใน menu case 1 : printf("Choose 1"); // ถ้า menu มีค่าเป็น 1 ให้ printf ตรงนี้มากกว่า 1 คำสั่งได้ break; // ใส่ break ก่อนขึ้นเคสต่อไป case 2 : printf("Choose 2 "); break; case 0 : printf("exit"); break; default : printf("Wrong"); // ถ้าไม่ตรงเลย จะมาทำหลัง default ซึ่งไม่ต้องมี break ก็ได้ }

20  เขียนโปรแกรมอ่าน Binary Expression (+, -, *, /) เช่น ที่มีรูปแบบข้อมูลเข้า คือ X Op Y  แนวคิด : ทดสอบค่า Op ว่าเป็น +, -, *, หรือ / โดยใช้ คำสั่ง switch 20 #include void main() {float X, Y, result=0; char Op; printf("Enter expression: "); scanf("%f %c %f", &X, &Op, &Y); switch (Op) { case ‘ + ’ : result = X+Y; break; case ‘ - ’ : result = X-Y'; break; case ‘ * ’ : result = X*Y; break; case ‘ / ’ : result = X/Y; break; // Y > 0 default: printf( “ %c \aUnknown operator\n ”, op); printf("= %.2f\n", result); } Enter ID: _ ผลลั พธ์ start Unknown Op end Input X,Op,Y Op = ‘+’ yes result = X+Y Op = ‘\’ yes result = X/Y result Op = ‘-’ yes result = X-Y Op = ‘*’ yes result = X*Y

21  เขียนโปรแกรมรับค่าวันเป็นตัวเลข (1-7) และพิมพ์ผลเป็นข้อความ (Sun,Mon,Tue,Wed,Thu,Fri,Sat) เช่น D=7 พิมพ์ Sat 21 start Input D D end Print “Mon” 2 Print “Sat” 7 Print “Sun” 1 #include void main() { int D; printf("Enter an integer (1-7): "); scanf("%d", &D); Enter an integer (1-7): _7 Sat ผลลั พธ์ switch(D) { case 1: printf("Sun\n"); break; case 2: printf("Mon\n"); break; case 3: printf("Tue\n"); break; case 4: printf("Wed\n"); break; case 5: printf("Thu\n"); break; case 6: printf("Fri\n"); break; case 7: printf("Sat\n"); break; default: printf( “ \a unknown integer %d\n", D); } }

22  เขียนโปรแกรมสร้างรหัส Soundex Code ที่แปลง รหัสตัวอักษรเป็น รหัสเลขกลุ่ม 6 กลุ่ม 22 #include void main() { char ch; int group; printf("Enter a character: "); scanf("%c", &ch); ch = toupper(ch); switch(ch) { case ‘ A ’ : case ‘ E ’ : case ‘ I ’ : case ‘ O ’ : case ‘ U ’ : case ‘ H ’ : case ‘ W ’ : case ‘ Y ’ : group = 0; break; case ‘ B ’ : case ‘ F ’ : case ‘ P ’ : case ‘ V ’ : group = 1; break; case ‘ C ’ : case ‘ G ’ : case ‘ J ’ : case ‘ K ’ : case ‘ Q ’ : case ‘ S ’ : case ‘ X ’ : case ‘ Z ’ : group = 2; break; case ‘ D ’ : case ‘ T ’ : group = 3; break; case ‘ L ’ : group = 4; break; case ‘ M ’ : case ‘ N ’ : group = 5; break; case ‘ R ’ : group = 6; break; default: group = 9; break; } if (group != -9) printf( “ Soundex code = %d\n ”, group); else printf( “ \a%c is not a character (a-z, A-Z)\n ” ); } 0: A,E, I,O,U,H,W,Y 1: B,F,P,V 2: C,G,J,K,Q,S,X,Z 3: D,T 4: L 5: M,N 6: R

23  เขียนโปรแกรมนับตัวอักษรแต่ละตัวใน Text File 23 #include void main() { char File[500]; int i, n[30]={0}; printf("Enter text File: "); gets(File); while(File[i]!= ‘ \0 ’ ) { switch(File[i]) { case ‘ a ’ : case ‘ A ’ : n[0]++; break; case ‘ b ’ : case ‘ B ’ : n[1]++; break; case ‘ c ’ : case ‘ C ’ : n[2]++;break; case ‘ d ’ : case ‘ D ’ : n[3]++; break; case ‘ e ’ : case ‘ E ’ : n[4]++; break; case ‘ f ’ : case ‘ F ’ : n[5]++; break; case ‘ g ’ : case ‘ G ’ : n[6]++; break; case ‘ h ’ : case ‘ H ’ : n[7]++;break;... case ‘ z ’ : case ‘ Z ’ : n[25]++; break; case ‘ 0 ’ : case ‘ 1 ’ : case ‘ 2 ’ : case ‘ 3 ’ : … case ‘ 9 ’ : n[26]++; break; default: n[27]++; break; } i++; // move to next character for(i=0; i<=25; i++) printf( “ #%c=%d, “, 97+i, n[i]); // ASCII ‘ a ’ = 97 printf( “ \n#0-9=%d, #others=%d ”, n[26], n[27]); } Enter text File: _C Programming #a=1, #b=0, #c=1,#d=0,#e=0, ผลลัพ ธ์ #f=0, #g=2, #h=0,#i=1,#j=0, #k=0, #l=0, #m=2,#n=1,#o=1, #p=1, #q=0, #r=2,#s=0,#t=0, #u=0, #v=0, #w=0,#x=0,#y=0, #z=0, #0-9=0, #others=1

24 24 จิตตั้ง มั่น


ดาวน์โหลด ppt คำสั่งเงื่อนไข (Conditioning Statements) 1 ผู้สอน : ครูพัชรนันท์ กุลวรพิสิษฐ์

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


Ads by Google