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

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

หน่วยที่ 4: คำสั่งควบคุม โปรแกรม (Control Flow Command) เอกลักษณ์ สุมนพันธุ์ COMPUTER ENGINEERING

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


งานนำเสนอเรื่อง: "หน่วยที่ 4: คำสั่งควบคุม โปรแกรม (Control Flow Command) เอกลักษณ์ สุมนพันธุ์ COMPUTER ENGINEERING"— ใบสำเนางานนำเสนอ:

1 หน่วยที่ 4: คำสั่งควบคุม โปรแกรม (Control Flow Command) เอกลักษณ์ สุมนพันธุ์ COMPUTER ENGINEERING

2 บทนำ การทำงานของโปรแกรมคอมพิวเตอร์ ประกอบไป ด้วย 3 ลักษณะใหญ่ ได้แก่ 1. การทำงานตามโปรแกรมทีละคำสั่งตามลำดับ ก่อนหลัง (Sequencing) 2. ควบคุมให้โปรแกรมทำงานซ้ำจนกว่าจะเป็นไปตาม เงื่อนไขที่ตั้งไว้ (Iteration) 3. การตรวจสอบเงื่อนไขแล้วเลือกทำตามคำสั่งที่ เลือก (Selection)

3 บทนำ ( ต่อ ) การทำซ้ำและการตรวจสอบเงื่อนไข ภาษาซีมี คำสั่งในหมวดนี้ 3 คำสั่งได้แก่ 1. คำสั่งที่ให้ข้ามไปทำงานโดยไม่มีเงื่อนไข goto, break และ continue 2. คำสั่งให้ข้ามไปทำงานโดยมีเงื่อนไข if และ switch 3. คำสั่งให้ทำงานซ้ำ while, do…while และ for

4 คำสั่ง If if เป็นคำสั่งแบบมีเงื่อนไข (Conditional Statement) ผลการตรวจสอบเงื่อนไข จริง ทำภายใน if{ } แต่ถ้า เท็จทำภายใน else{ } รูปแบบของคำสั่ง if(condition){ statement1; } else{ statement2; }

5 ตัวอย่างการใช้คำสั่ง if Example: scanf(“Enter x and y :”,&x,&y); if(x>y){ printf(“x>y”); } else{ printf(“y>x”); }

6 การใช้ if/else หลาย ทางเลือก สำหรับการตรวจสอบเงื่อนไขมากกว่า 2 ทางเลือก ใช้คำสั่ง if/else ได้ใช้คำสั่ง if/else ซ้อนกันหลาย ระดับ รูปแบบการใช้คำสั่ง if(condition1)statement1; else if(condition2)statement2; else if(condition3)statement3; Else statement4;

7 if/else สามารถเขียนเป็น Flowchart ได้ดังนี้

8 โปรแกรมแปลงหน่วยความยาวฟุต เมตร #include”stdio.h” main(){ float num; int choice; printf(“1. Feet to Meter 2.Meter to Feet\n”); printf(“Enter choice :”); scanf(“%d”,&choice); if(choice==1){ printf(“\n\nEnter number of feet :”); scanf(“%f”,&num); printf(“Meter : %f”,num/3.28); } else{ printf(“\n\nEnter number of meter :”); scanf(“%f”,&num); printf(“Feet : %f”,num*3.28); }

9 การใช้ Logical Operator ในการ ตรวจสอบเงื่อนไข &&(AND) || (OR) ! (NOT) สามารถใช้กับคำสั่ง if ได้ทำให้ทางเลือกการ ทำงานหลากหลายขึ้น เช่น x>0 && x<10 y>=0 && y<=10 z==5 || z==15

10 โปรแกรมการคิดเกรดจาก คะแนน score #include main(){ int score; char grade; printf(“Enter score :”); scanf(“%d”,&score); if(score>=60 && score<=80)grade=‘B’; else if(score>80) grade=‘A’; else grade=‘C’; printf(“Grade is %c”,grade); }

11 คำสั่ง switch  เหมือนกันกับคำสั่ง if/else ซ้อนกันหลายครั้ง แต่ใช้งาน ได้สะดวกกว่า  ประกอบไปด้วยคำสั่งย่อยภายใน case เพื่อเลือก ตัดสินใจทำงานตามนิพจน์ที่ได้ผลลัพธ์ทางลอจิกเป็นค่า จริง รูปแบบของคำสั่ง : switch(variable){ case constant1: statement; break; case constant2: statement; break; ……… default: statement }

12 ตัวอย่างการใช้งานคำสั่ง switch switch(x){ case 1: printf(“x = 1\n”); break; case 2: printf(“x = 2\n”); break; case 3: printf(“x = 3\n”); break; default: printf(“No Value !”); }

13 คำสั่ง for เป็นคำสั่งสำหรับการทำซ้ำ ใช้ควบคุมการทำงานของโปรแกรมให้มี การทำซ้ำกันหลายๆ ครั้งตามที่กำหนด โครงสร้างของคำสั่งประกอบด้วย 3 ส่วนดังนี้ 1) ส่วนที่กำหนดค่าเริ่มต้น 2) ส่วนตรวจสอบเงื่อนไข 3) ส่วนค่าที่เปลี่ยนไป รูปแบบ for(initialization;condition;increment) statement;

14 แนวทางการเขียนผังงาน คำสั่ง for

15 ตัวอย่าง การใช้งานคำสั่ง for for(x=1;x<=100;x++) printf(“%d”,x); #include “stdio.h” main(){ int I; for(i=1;i<100;i++){ printf(“This is i: %d”,i); printf(“and I squared is %d\n”,i*i); }

16 การกำหนดนิพจน์ใน () ของคำสั่ง for  นิพจน์ภายในวงเล็บ () สามารถกำหนดให้ยืดหยุ่นต่อการใช้งาน  นิพจน์แต่ละส่วนคั่นด้วย ; แต่บางนิพจน์อาจจะไม่ระบุก็ได้เช่น  เมื่อไม่มีส่วนของการระบุนิพจน์สำหรับตรวจสอบเงื่อนไข คอมไพเลอร์จะถือว่าส่วนที่ไม่ระบุนิพจน์มีค่าเป็น 0 ( เท็จ ) ตลอดเวลา for(x=0; ;x=x+5) printf(“%d”,x); for(; ;);

17 การใช้นิพจน์ย่อยในคำสั่ง for โปรแกรมวนรอบแสดงตัวเลขตั้งแต่ 0 ถึง 98 โดย เพิ่มค่าขึ้นครั้งละ 2 กำหนดให้ใช้ตัวแปร 2 ตัว x และ y กำหนดค่าเริ่มต้นเท่ากับ 0 #include “stdio.h” main(){ int x,y; for(x=0,y=0;x+y<100;++x,++y) printf(“%d”,x+y); }

18 ตัวแปรที่สามารถใช้ได้กับ คำสั่ง for  ตัวแปรที่ใช้ในคำสั่ง for สำหรับการวนรอบจะเป็น int หรือ char กรณีที่ใช้ตัวแปร char for(ch=‘A’;ch<=‘Z’;ch++) printf(“ASCII = %c decimal = %d\n”,ch,ch);

19 คำสั่ง while  เป็นคำสั่งการทำงานวนรอบเช่นเดียวกับคำสั่ง for  การทำงานจะเริ่มต้นด้วยการตรวจสอบเงื่อนไขก่อน เมื่อ ตรวจพบว่านิพจน์ที่ทำการตรวจสอบให้ค่าจริงก็จะทำ คำสั่งต่อจากคำสั่ง while แต่ถ้าพบว่าไม่จริงก็จะหยุดรอบ การทำงานแล้วข้ามไปทำคำสั่งต่อไป รูปแบบ while(condition) statement;

20 แนวทางการเขียนผังงาน คำสั่ง while

21 ตัวอย่างการใช้งานคำสั่ง while Example #include “stdio.h” main(){ int i=1; int count=0; while(i<=100){ count+=1; i++; } printf(“Total = %d”,count); }

22 คำสั่ง do/while  ใช้สำหรับควบคุมการทำงานของโปรแกรมให้ทำวนรอบ เหมือนคำสั่ง for และ while และลักษณะการทำงานจะ ตรงกันข้าม  ลักษณะการทำงานจะเริ่มต้นทำตามคำสั่งที่อยู่ใน do แล้วจึงไปตรวจสอบเงื่อนไขหลังคำสั่ง while กรณีที่ผล จากการตรวจสอบเป็นจริง ก็จะกลับไปทำตามคำสั่งที่อยู่ หลัง do แต่ถ้าพบว่าไม่จริงก็จะจบการทำงาน โดยข้ามไป ทำคำสั่งหลังจาก while รูปแบบ do{ statement; }while(condition);

23 แนวทางการเขียนผังงาน คำสั่ง do-while

24 ตัวอย่างการใช้คำสั่ง do/while โปรแกรมการบวกเลขตั้งแต่ 1 ถึง 100 โดยใช้ do/while #include “stdio.h” main(){ int i=1,count=0; do{ count+=I; i++; }while(i<=100); printf(“Total = %d”,count); }

25 ตัวอย่างการใช้คำสั่ง do/while โปรแกรมวนรอบแสดงอัตราส่วนของตัวแปร a/b โดย b ต้องไม่เป็น 0 เมื่อกดคีย์ ‘S’ จึงจบการทำงาน do{ printf(“\nEnter two number :”); scanf(“%f %f”,&a,&b); if(b==0.0) printf(“The ratio is undefined !\n”); else{ ratio=a/b; printf(“The ratio is %f\n”,ratio); } printf(“Press to stop, any key to continue.”); }while(getch()!=‘S’); }

26 การวนรอบซ้ำ (Nested Loop)  การแก้ปัญหาโจทย์หรือระบบงานที่ซับซ้อน จะ เกี่ยวข้องกับการใช้ตัวแปรหลายๆตัว  ระบบงานที่ซับซ้อน อาจจะกระทำในลักษณะของ การวนรอบซ้อน เรียกว่า Nested Loop  for, while และ do…while สามารถใช้ในลักษณะ การวนรอบซ้อนได้ตามความต้องการ

27 โปรแกรมวนรอบซ้อน ด้วย คำสั่ง for printf(" x x^2 x^3 x^4 \n"); for(x=1; x<10; x++){ for(y=1; y<5; y++){ num=1; for(z=0; z

28 คำสั่ง break  การทำงานของคำสั่งวนรอบ จะหยุดการทำงานเมื่อ เงื่อนไขที่ตรวจสอบเป็นเท็จ  กรณีที่ต้องการหยุดการวนรอบก่อนครบกำหนด สามารถทำได้โดยใช้คำสั่ง break for(x=0;x<100;x++){ printf(“%d”,x); if(x==10) break; }

29 คำสั่ง continue  ตรงข้ามกับคำสั่ง break เมื่อพบคำสั่ง continue จะกลับไปวนรอบใหม่เพื่อตรวจสอบ เงื่อนไขตามที่กำหนด for(x=0;x<100;x++){ continue; printf(“%d”,x); }

30 โปรแกรมบวกเลข ด้วย คำสั่ง continue do{ printf(“Enter next number “); scanf(“%d”,&i); printf(“ls %d correct ? “,i); ch=getch(); printf(“\n”); if(ch==‘N’) continue; total+=i; }while(i); printf(“Total is %d\n”,total);

31 คำสั่ง goto  goto ใช้สำหรับสั่งให้ข้ามการทำงานไปยังตำแหน่งหรือ ชื่อที่กำหนดโดยไม่มีเงื่อนไข ประกอบด้วยส่วนสำคัญ 2 ส่วน คือ 1. ส่วนของคำสั่ง 2. ส่วนของ Label รูปแบบ goto label;

32 ตัวอย่างการใช้คำสั่ง goto goto step; printf(“This line will not print”); step: printf(“This line will print”); float r=2,pi= ; loop: printf(“R=%f Area=%f\n”,r,pi*r*r); r=r+1; goto loop; } ไม่มีโอกาสประมวลผล

33 บทสรุป คำสั่งตัดสินใจทางเลือก if..else, switch คำสั่งวนรอบ for, while, do..while คำสั่งข้ามไปทำยังตำแหน่งที่ต้องการ goto

34 THE END


ดาวน์โหลด ppt หน่วยที่ 4: คำสั่งควบคุม โปรแกรม (Control Flow Command) เอกลักษณ์ สุมนพันธุ์ COMPUTER ENGINEERING

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


Ads by Google