คำสั่งควบคุมการทำงาน
โครงสรางควบคุมการทํางาน แบบเรียงลำดับ (Sequential) แบบทางเลือก (Condition) แบบวนซ้ำ (Iteration) 2
โครงสรางควบคุมการทํางาน แบบเรียงลำดับ (Sequential) แบบทางเลือก (Condition) แบบวนซ้ำ (Iteration) 3
ตรวจสอบเงื่อนไข ตรวจสอบเงื่อนไขแบบสองทางเลือก ตรวจสอบเงื่อนไขแบบหลายทางเลือก ตัวตรวจสอบ ตัวตรวจสอบ ….. ทางเลือก ที่ 1 ทางเลือก ที่ 2 ทางเลือก ที่ 1 ทางเลือก ที่ 2 ทางเลือก ที่ 3 ….. 4
คำสั่ง IF รูปแบบ ตัวอย่าง if (<conditional expression>) { <statement (s)> } ตัวอย่าง if (x>0) printf(“x เป็นจำนวนเต็มบวก”); 5
#include <stdio.h> void main() { float score_in; printf ("Enter score 001-100 : \n"); scanf("%f",&score_in); if ( score_in >= 60) printf("PASS\n"); } 6
คำสั่ง IF-ELSE รูปแบบ if (<conditional expression>) { <statement (s)> } else { } 7
#include <stdio.h> void main() { float score_in; printf ("Enter score 001-100 : \n"); scanf("%f",&score_in); if ( score_in >= 60) printf("PASS\n"); else printf(“Not pass\n"); }
คำสั่ง IF ซ้อน รูปแบบ if (<conditional expression 1>) { <statement (s)> } else { if (<conditional expression 2>) { } รูปแบบ 9
คำสั่ง IF ซ้อน รูปแบบ if (<conditional expression 1>) { <statement (s)> } else if (<conditional expression 2>) { } else { } รูปแบบ 10
ต.ย ของการตรวจสอบเงื่อนไขแบบสองทางเลือก จงเขียนโปรแกรมเพื่อรับจำนวนเต็ม 2 จำนวน หลังจากนั้นทำการเปรียบเทียบ เลขทั้งสองเพื่อหาตัวเลขที่มีค่ามากที่สุด แล้วนำมาแสดงทางจอภาพ #include <stdio.h> void main() { int x,y; //input part printf("Enter x : "); scanf("%d",&x); printf("Enter y : "); scanf("%d",&y); //process and output part if (x>y) { printf("x is greater than y"); } else if (y>x) { printf("y is greater than x"); printf("y is equal to x"); ต.ย ของการตรวจสอบเงื่อนไขแบบสองทางเลือก 11
ต.ย การตรวจสอบเงื่อนไขแบบหลายทางเลือก จงเขียนโปรแกรมเพื่อการตรวจสอบเลขจํานวนใด ๆ วาเปนจํานวนบวก จํานวนลบ หรือจํานวนศูนย #include <stdio.h> void main() { int x; //input part printf("Enter x : "); scanf("%d",&x); //process and output part if (x>0) { printf("x is positive integer"); } else if (x<0) printf("x is negative integer"); } else printf("x is equal to 0"); ต.ย การตรวจสอบเงื่อนไขแบบหลายทางเลือก 12
#include <stdio.h> void main() { float score_in; printf ("Enter score 001-100 : \n"); scanf("%f",&score_in); if ( score_in >= 80 && score_in <= 100) { printf(“Excellent\n"); printf(“Good bye”\n); } else if (score_in >=60 && score_in <= 79) printf(“Good\n"); else if(score_in >=1 && score_in <= 59) printf(“Bad\n”); else printf(“Not in range\n”);
#include <stdio.h> void main() { float score_in; printf ("Enter score 001-100 : \n"); scanf("%f",&score_in); if ( score_in <=59) printf(“Bad\n”); else if (score_in <=79) printf(“Good\n"); else if(score_in <= 100) printf(“Excellent\n”); else printf(“Not in range\n”); }
ต.ย การตรวจสอบเงื่อนไขแบบหลายทางเลือก จงเขียนอัลกอลึทึมเพื่อตัดเกรด โดยใส่ให้ผู้ใช้ใส่คะแนน โดยมีเงื่อนไข การให้เกรดดังนี้ คะแนน 80 ขึ้นไปได้เกรด “A” คะแนน 70 ขึ้นไปได้เกรด “B” คะแนน 60 ขึ้นไปได้เกรด “C” คะแนน 50 ขึ้นไปได้เกรด “D” ต่ำกว่า 50 ลงไปได้เกรด “F” แล้วแสดงผลเกรดบนหน้าจอ #include <stdio.h> void main() { int score; char grade; clrscr(); printf("Enter Score : "); scanf("%d",&score); ต.ย การตรวจสอบเงื่อนไขแบบหลายทางเลือก 15
Algorithm : ต.ย การตรวจสอบเงื่อนไขแบบหลายทางเลือก if (score < 50) grade = 'F'; else if (score < 60) grade = 'D'; else if (score < 70) grade = 'C'; else if (score < 80) grade = 'B'; else if (score <= 100) grade = 'A'; printf("you get %c",grade); } Algorithm : ต.ย การตรวจสอบเงื่อนไขแบบหลายทางเลือก 16
#include <stdio.h> void main() { int ch; float area; //Menu printf(" MENU\n " "1. Circle Area Calculator\n" "2. Rectangular Area Calculator\n" "++++++++++++++++++++++++\n" ); printf("Enter choice : "); scanf("%d",&ch); 17
18 //process and output part if (ch == 1) { float radius; printf("\nEnter circle 's radius : "); scanf("%f",&radius); area = 3.14*radius*radius; //printf("This circle 's area is %f",3.14*radius*radius); printf("This circle 's area is %f",area); } else { if (ch == 2) { float width,length; printf("\nEnter rectangular 's width : "); scanf("%f",&width); printf("\nEnter rectangular 's length : "); scanf("%f",&length); printf("This rectangular 's area is %f",width*length); } else printf("\nPlese try again!!! you enter wrong choice"); } 18
คำสั่ง SWITCH รูปแบบ const-expr จะต้องเป็น int หรือ char เท่านั้น switch (expression) { case const-expr1 : <statement>; break; case const-expr2 : <statement>; …. …… default : <statement>; } รูปแบบ const-expr จะต้องเป็น int หรือ char เท่านั้น 19
default : printf(“this number is greater than 2”); } int n = 1; switch (n) { case 1 : printf(“one”); break; case 2 : printf(“two”); default : printf(“this number is greater than 2”); } 20
โครงสรางควบคุมการทํางาน แบบเรียงลำดับ (Sequential) แบบทางเลือก (Condition) แบบวนซ้ำ (Iteration) 21
แบบวนซ้ำ (Iteration) ลักษณะการตรวจสอบเงื่อนไข คำสั่ง FOR ทำกิจกรรมก่อนการตรวจสอบเงื่อนไขการวน คำสั่ง DO …. WHILE ทำกิจกรรมหลังการตรวจสอบเงื่อนไขการวน คำสั่ง WHILE คำสั่ง FOR 22
ส่วนประกอบสำคัญ ค่าเริ่มต้น เพื่อเข้า Loop (Expression1) 23
คำสั่ง DO-WHILE รูปแบบ ตัวอย่าง expression1; do { <statement (s)> expression3; } while (expression2); รูปแบบ ตัวอย่าง i=1; do { <statement (s)> i++; } while (i<5) ; 24
จงเขียนโปรแกรมเพื่อหาคา 23 จงเขียนโปรแกรมเพื่อหาคา 23 #include <stdio.h> void main() { int sum = 1,i=1; do { sum *= 2; ++i; } while (i<=3); printf("The value of 2^3 is %d",sum); } ใช้คำสั่ง DO-WHILE 25
จงเขียนอัลกอลึทึมเพื่อหาคา XN เมื่อ N เปนจํานวนเต็มบวกใด ๆ #include <stdio.h> void main() { int sum = 1,i=1,x,n; printf("Enter x : "); scanf("%d",&x); printf("Enter n : "); scanf("%d",&n); if (n != 0) { do { sum *= x; ++i; }while (i<=n); } printf("The value of x^n is %d",sum); ใช้คำสั่ง DO-WHILE 26
คำสั่ง WHILE รูปแบบ ตัวอย่าง expression1; while (expression2) { <statement (s)> expression3; } ตัวอย่าง i=1; while (i<5) { <statement (s)> i++; } 27
จงเขียนโปรแกรมเพื่อหาคา 23 จงเขียนโปรแกรมเพื่อหาคา 23 #include <stdio.h> void main() { int sum = 1,i=1; while (i<=3) { sum *= 2; ++i; } printf("The value of 2^3 is %d",sum); ใช้คำสั่ง WHILE 28
จงเขียนอัลกอลึทึมเพื่อหาคา XN เมื่อ N เปนจํานวนเต็มบวกใด ๆ #include <stdio.h> void main() { int sum = 1,i=1,x,n; printf("Enter x : "); scanf("%d",&x); printf("Enter n : "); scanf("%d",&n); if (n != 0) { while (i<=n){ sum *= x; ++i; } printf("The value of x^n is %d",sum); ใช้คำสั่ง WHILE 29
คำสั่ง FOR รูปแบบ ตัวอย่าง for (expression1; expression2; expression3) { <statement (s)> } ตัวอย่าง for (i=1;i<5;i++) { <statement (s)> } 30
จงเขียนโปรแกรมเพื่อหาคา 23 จงเขียนโปรแกรมเพื่อหาคา 23 #include <stdio.h> void main() { for (int i=1,sum=1;i<=3;++i) sum *= 2; } printf("The value of 2^3 is %d",sum); ใช้คำสั่ง FOR 31
#include <stdio.h> void main() { int sum = 1; for (int i=1;i<=3;++i) { sum *= 2; } printf("The value of 2^3 is %d",sum); #include <stdio.h> void main() { int sum,i; sum = 1; for ( i=1;i<=3;++i) { sum *= 2; } printf("The value of 2^3 is %d",sum);
จงเขียนอัลกอลึทึมเพื่อหาคา XN เมื่อ N เปนจํานวนเต็มบวกใด ๆ #include <stdio.h> void main() { int sum = 1,x,n; printf("Enter x : "); scanf("%d",&x); printf("Enter n : "); scanf("%d",&n); if (n != 0) { for (int i=1;i<=3;++i) { sum *= x; } printf("The value of x^n is %d",sum); ใช้คำสั่ง FOR 33
#include <stdio.h> void main() { int sum,x,n; sum = 1; printf("Enter x : "); scanf("%d",&x); printf("Enter n : "); scanf("%d",&n); if (n != 0) { for (int i=1;i<=n;++i) { sum *= x; } printf("The value of x^n is %d",sum); #include <stdio.h> void main() { int sum,x,n,i; sum = 1; printf("Enter x : "); scanf("%d",&x); printf("Enter n : "); scanf("%d",&n); if (n != 0) { for (i=1;i<=n;++i) { sum *= x; } printf("The value of x^n is %d",sum);
ข้อควรระวังของ FOR for (; ;) { } จะเกิด infinite loop 35
แบบฝึกหัด
จงเขียนโปรแกรมเพื่อทำการตรวจสอบว่าตัวเลขที่รับมาเป็นเลขคู่ หรือเลขคี่ #include <stdio.h> void main() { int x; printf("Enter x : "); scanf("%d",&x); if (x%2 == 1) { printf("x is odd number"); } else { if (x%2 == 0) { printf("x is even number"); } 37
จงเขียนโปรแกรมเพื่อทำการตรวจสอบว่าอักษรที่รับมาเป็นสระ หรือพยัญชนะ #include <stdio.h> #include <ctype.h> void main() { char ch; printf("Enter x : "); scanf("%c",&ch); ch = tolower(ch); if ((ch == 'a')||(ch == 'e')||(ch == 'i')||(ch == 'o')||(ch == 'u')) printf("This character is vowel"); else printf("This character is consonant"); } 38
จงเขียนโปรแกรมเพื่อทำการบวกเลขตั้งแต่ 1 ถึงค่าที่รับเข้ามา #include <stdio.h> void main() { int n,i=1,sum=0; printf(“Enter n”); scanf(“%d”,&n); do { sum += i; ++i; } while (i<=n); printf(“sum is = %d\n”,sum); } ใช้คำสั่ง DO-WHILE 39
จงเขียนโปรแกรมเพื่อทำการบวกเลขตั้งแต่ 1 ถึงค่าที่รับเข้ามา #include <stdio.h> void main() { int n,i=1,sum=0; printf(“Enter n”); scanf(“%d”,&n); while (i<=n) { sum += i; ++i; } printf(“sum is = %d\n”,sum); ใช้คำสั่ง WHILE 40
จงเขียนโปรแกรมเพื่อทำการบวกเลขตั้งแต่ 1 ถึงค่าที่รับเข้ามา #include <stdio.h> void main() { int n; printf(“Enter n”); scanf(“%d”,&n); for (int i=1,sum=0;i<=n; ++i) sum += i; printf(“sum is = %d\n”,sum); } ใช้คำสั่ง FOR 41
#include <stdio.h> void main() { int n,sum; sum = 0; printf("Enter n : "); scanf("%d",&n); for (int i=1;i<=n;++i) sum += i; printf("sum is = %d\n",sum); } #include <stdio.h> void main() { int n,sum,i; sum = 0; printf("Enter n : "); scanf("%d",&n); for (i=1;i<=n;++i) sum += i; printf("sum is = %d\n",sum); }
จงเขียนโปรแกรมเพื่อแสดงตารางสูตรคูณของ 2 2 x 1 = 2 2 x 2 = 4 …. 2 x 12 = 24 #include <stdio.h> void main() { int i=1; do { printf("2 X %d = %d\n",i,i*2); ++i; } while (i<=12); } ใช้คำสั่ง DO-WHILE 43
จงเขียนโปรแกรมเพื่อแสดงตารางสูตรคูณของ 2 2 x 1 = 2 2 x 2 = 4 …. 2 x 12 = 24 #include <stdio.h> void main() { int i=1; while (i<=12){ printf("2 X %d = %d\n",i,i*2); ++i; } ใช้คำสั่ง WHILE 44
จงเขียนโปรแกรมเพื่อแสดงตารางสูตรคูณของ 2 2 x 1 = 2 2 x 2 = 4 …. 2 x 12 = 24 #include <stdio.h> void main() { for(int i=1;i<=12;++i) printf("2 X %d = %d\n",i,i*2); } ใช้คำสั่ง FOR 45
#include <stdio.h> void main() { for(int i=1;i<=5;++i) 2 3 4 5 #include <stdio.h> void main() { for(int i=1;i<=5;++i) printf("%d",i); } #include <stdio.h> void main() { for(int i=1;i<=5;++i) printf("%d\n",i); } ใช้คำสั่ง FOR 46
#include <stdio.h> void main() { for(int i=1;i<=5;++i) { +1 ++2 +++3 ++++4 +++++5 #include <stdio.h> void main() { for(int i=1;i<=5;++i) { for(int j=1;j<=i;++j) printf("+"); printf("%d\n",i); } ใช้คำสั่ง FOR 47
#include <stdio.h> void main() { for(int i=5;i>=1;--i) { 5 5 5 5 5 4 4 4 4 3 3 3 2 2 1 #include <stdio.h> void main() { for(int i=5;i>=1;--i) { for(int j=1;j<=i;++j) printf("%d",i); printf("\n"); } ใช้คำสั่ง FOR 48