หน่วยที่ 4: คำสั่งควบคุมโปรแกรม (Control Flow Command)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
อัลกอริทึ่มทำงานวนซ้ำ
Advertisements

ทบทวน & ลุยโจทย์ (Midterm)
ควบคุมการทำงานด้วยเงื่อนไข Control Statement
Control Statement if..else switch..case for while do-while.
คำสั่งในการควบคุมโปรแกรม
Control Statement for while do-while.
บทที่ 3 ตอนที่ 1 คำสั่งเงื่อนไขและการตัดสินใจ(p
Lecture no. 5 Control Statements
Lecture 4: ทางเลือก, เงื่อนไขของทางเลือก
การควบคุมทิศทางการทำงาน
คำสั่ง while ควบคุมการทำงานวนซ้ำ กรณีระบบงานมีลักษณะตรวจสอบเงื่อนไขก่อน แล้วเข้าสู่ส่วนลำดับงานคำสั่งที่กำหนดไว้ การเขียนคำสั่ง while ต้องกำหนดนิพจน์แบบตรรกะเป็นเงื่อนไขมีค่าในหน่วยความจำเป็น.
Week 15 C Programming.
คำสั่งเพื่อการกำหนดเงื่อนไข
CE 112 บทที่ 5 การทำซ้ำในภาษา C
อ.อรวรรณ เชาวลิต For คำสั่งวนซ้ำ อ.อรวรรณ เชาวลิต
โครงสร้างคำสั่งแบบเลือก (Selection)
คำสั่งควบคุมการทำงาน
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
การเขียนผังงานแบบโครงสร้าง
Repetitive Or Iterative
คำสั่งควบคุม (Control Statement)
คำสั่งควบคุมเงื่อนไข และการทำงานเป็นรอบ
คำสั่งควบคุมการทำงาน
Flow Control.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2550 Structure Programming มหาวิทยาลัยเนชั่น.
การเขียนโปรแกรมภาษาซี
Chapter 5 คำสั่งควบคุมการทำซ้ำ
Chapter 4 คำสั่งควบคุมทิศทาง
โครงสร้างควบคุมการทำงาน
ครูรัตติยา บุญเกิด.
ครูรัตติยา บุญเกิด.
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
คำสั่ง while และ do…while
หมวดวิชาคอมพิวเตอร์ โรงเรียนพะเยาพิทยาคม โดย อ.วัชระ การสมพจน์
พื้นฐานการโปรแกรม ต้องทราบการใช้คำสั่ง การควบคุม
การเขียนผังงาน จุดประสงค์ 1.อธิบายความของผังงานได้
คำสั่งควบคุมการทำงานของ ActionScripts
บทที่ 6 การควบคุมโปรแกรม.
Week 3 Flow Control in PHP
การเขียนผังงานแบบทำซ้ำ
Week 5 การทำซ้ำโดย while loop และ do while loop
เสรี ชิโนดม ข้อความสั่งควบคุม เสรี ชิโนดม
Chapter 5 การทำซ้ำโดย while loop และ do while loop
Week 5 การทำซ้ำโดย while loop และ do while loop
คำสั่งควบคุมขั้นตอน Flow control statements
1 Special Operators Special Operators ตัวดำเนินการพิเศษ Increment and decrement operators Conditional Operator.
คำสั่งเงื่อนไข (Condition Statement)
หลักการเขียนโปรแกรม ( )
CHAPTER 4 Control Statements
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรที่ ๑ ทักษะการโปรแกรม เบื้องต้น วันที่สาม.
บทที่ 4 คำสั่งควบคุมแบบมีทางเลือก
PHP การตรวจสอบเงื่อนไข.
อัลกอริทึ่มทำงานวนซ้ำ
อ. วชิระ หล่อประดิษฐ์. ตัว ดำเนินกา ร ศัพท์เฉพาะตัวอย่ าง ผลลัพธ์ ให้ a=3; b=2; Greater thana > b;True
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
บทที่ 7 เงื่อนไขในภาษาซี
การเขียน แบบวนซ้ำ , วนลูป
CONDITION Computer Programming Asst. Prof. Dr. Choopan Rattanapoka.
คำสั่งวนซ้ำ.
บทที่ 6 คำสั่งเงื่อนไข.
การเขียนโปรแกรม (ภาษาซี)
การเปรียบเทียบเงื่อนไข
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
Computer Programming การเขียนโปรแกรม คอมพิวเตอร์ สัปดาห์ที่ 6 คำสั่งควบคุมการทำงานแบบ เงื่อนไขและคำสั่งควบคุมการ ทำงานแบบวนซ้ำ.
รูปแบบของการใช้คำสั่ง for for( ตัวแปร = ค่าเริ่มต้น ; นิพจน์ตรรกะ ; ค่าเพิ่มหรือค่าลด ) { statement(s); } ตัวอย่าง กรณีกำหนดการวนซ้ำเป็นค่าคงที่ For(n=1;n
ผังงานโปรแกรม (Program Flowchart)
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์ สัปดาห์ที่ 5 การเขียนโปรแกรมแบบทางเลือก การเขียนโปรแกรมแบบวนซ้ำ.
PHP: [5] คำสั่งควบคุม (Control statement)
บทที่ 6 การเขียนโปรแกรมแบบมีเงื่อนไข
ใบสำเนางานนำเสนอ:

หน่วยที่ 4: คำสั่งควบคุมโปรแกรม (Control Flow Command) เอกลักษณ์ สุมนพันธุ์ Computer Engineering Ekkalak@rmutl.ac.th

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

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

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

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

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

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

โปรแกรมแปลงหน่วยความยาวฟุต เมตร โปรแกรมแปลงหน่วยความยาวฟุต เมตร #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); }

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

โปรแกรมการคิดเกรดจากคะแนน score #include <stdio.h> 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); }

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

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

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

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

ตัวอย่าง การใช้งานคำสั่ง 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); }

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

การใช้นิพจน์ย่อยในคำสั่ง 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); }

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

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

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

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

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

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

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

ตัวอย่างการใช้คำสั่ง 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 <S> to stop, any key to continue.”); }while(getch()!=‘S’);

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

โปรแกรมวนรอบซ้อน ด้วยคำสั่ง 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<y; z++){ num=num*x; } printf("%9d",num); printf("\n"); ผลลัพธ์จะปรากฎดังนี้ X x^2 x^3 x^4 1 1 1 4 8 16 9 27 81 16 64 256 25 125 625 …. … …. ….. 9 81 729 6561

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

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

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

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

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

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

THE END