หน่วยที่ 5 โปรแกรมแบบวนรอบทำซ้ำ

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
การเขียนคำสั่งควบคุม การทำงานขั้นพื้นฐาน
Advertisements

PHPPHP การเขียนโปรแกรมคอมพิวเตอร์ 1 สาขาวิชาระบบสารสนเทศ คณะเทคโนโลยีการจัดการ.
บทที่ 6 บทที่ 6 คำสั่งแก้ไขปัญหาแบบ เลือก (CONDITION)
บทที่ 5 การควบคุมทิศทางการทำงานของโปรแกรม
การใช้งานโปรแกรม SPSS
Operator of String Data Type
LAB ตัวแปร : Variables ในการเขียนโปรแกรมเราต้องการให้โปรแกรม จดจำค่าต่างๆ ไว้ เช่นเมื่อรับค่าข้อมูลจาก ผู้ใช้ หรือค่าที่ได้จากการคำนวณใดๆ ค่า.
การเขียนโปรแกรม ภาษาซีเบื้องต้น โดย คุณครูปวีณา แนววงศ์
ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม
บทที่ 4 คำสั่งควบคุม โปรแกรม. คำสั่งควบคุมโปรแกรมออกได้เป็น 2 ประเภท คือ คำสั่งแบบกำหนดเงื่อนไข (Conditional Statement) คำสั่งแบบทำงานซ้ำ (Repetitive.
หน่วยการเรียนรู้ที่ 2 หลักการแก้ปัญหาด้วยคอมพิวเตอร์
1. Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
การเขียนโปรแกรมภาษาปาสคาล โดยใช้โครงสร้างหลักทั้ง 3 โครงสร้าง
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
หน่วยที่ 5 การเวียนเกิด
การเขียนผังงานเบื้องต้น (Flow chart)
หน่วยที่ 6 แถวลำดับ (Array)
หลักการโปรแกรม 1 Lecture 8: การทำซ้ำ (while, do-while)
ตัวแปร และชนิด ข้อมูล. ตัวแปร การกำหนดตัวแปรเป็นการใช้ ชื่อตัวแปรแทน ตำแหน่งบนหน่วยความจำ สำหรับเก็บ ข้อมูลระหว่างการ ประมวลผล ซึ่งอาจเป็นข้อมูลนำเข้า.
MEE 231 Computer Programming สัปดาห์ที่ 6 ภาษา C หลักการของโปรแกรม ชนิดของตัวแปร การดำเนินการ คำสั่งการรับค่าตัวแปร และการแสดงผล.
ARRAY & PRINTF สาขางานคอมพิวเตอร์ธุรกิจอาจารย์จิรา ภรณ์ เขตกุฎี
ITERATION (LOOP) สาขางานคอมพิวเตอร์ธุรกิจอาจารย์จิรา ภรณ์ เขตกุฎี
แบบทดสอบ MICROSOFT EXCEL มีข้อมูลในแผ่นงานตั้งแต่แถวที่ 1 ถึงแถว 500 และคอลัมน์ A จนถึงคอลัมน์ M วิธีการเลือกช่วง ข้อมูลวิธีใด อย่างไร ที่อำนวยความสะดวกได้ดีและให้ผลรวดเร็ว.
การเลือกข้อมูลจาก List การกำหนดเงื่อนไขการป้อนข้อมูลด้วย Data Validation การใส่ Comment / แสดง / แก้ไข / ลบ.
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
คำสั่งควบคุมการทำงาน
เกม คณิตคิดเร็ว.
บทที่ 5 การใช้คำสั่ง Select Case , For Next และ Do While
บทที่ 4 การเขียนรหัสเทียม (Pseudo Code)
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การเขียนโปรแกรมแบบวนซ้ำ
บทที่ 5 อินพุตและเอาต์พุต
แนวข้อสอบ Final (จดด่วน)
Chapter 4 ข้อความสั่ง เลือกทำ.
ครูวีรธรรม เทศประสิทธิ์ แผนกวิชาคอมพิวเตอร์ธุรกิจ
การประยุกต์ Logic Gates ภาค 2
BC320 Introduction to Computer Programming
โครงสร้างภาษา C Arduino
หน่วยการเรียนที่ 4 เรื่อง การควบคุมทิศทางการทำงาน
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
Control Statement เงื่อนไขคำสั่งในโปรแกรม ภาษา C
สาระการเรียนรู้ ความหมายของอัลกอริทึม วิธีการเขียนผังงานที่ดี
รายวิชา ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม
คำสั่ง Create , Insert, Delete, Update
การรายงานความคืบหน้าหรือสถานะ
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
กำหนดกรอบระยะเวลาการขึ้นทะเบียนปี2556/57 1. ข้าว
Data storage II Introduction to Computer Science ( )
บทที่ 9 การทำซ้ำ (Loop).
บทที่ 3 Programming By Wathinee duangonnam
Week 5 C Programming.
ผู้ช่วยศาสตราจารย์จุฑาวุฒิ จันทรมาลี
คำสั่งวนรอบ (Loop).
วัฏจักรหิน วัฏจักรหิน : วัดวาอาราม หินงามบ้านเรา
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
Data storage II Introduction to Computer Science ( )
หน่วยที่ 6 อะเรย์ของอักขระ
บทที่ 7 การประมวลผลอาร์เรย์
บทที่ 8 การแก้ไขข้อผิดพลาดโปรแกรม(Debugging)
การเปลี่ยนแปลงประมาณการทางบัญชี และข้อผิดพลาด
งานนำเสนอสำหรับโครงการ นิทรรศการวิทยาศาสตร์
ค่ารูรับแสง - F/Stop ค่ารูรับแสงที่มีค่าตัวเลขต่ำใกล้เคียง 1 มากเท่าไหร่ ค่าของรูรับแสงนั้นก็ยิ่งมีความกว้างมาก เพราะเราเปรียบเทียบค่าความสว่างที่ 1:1.
2 โครงสร้างข้อมูลแบบสแตก (STACK).
Chapter 3 : Array.
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
Decision: Single and Double Selection (if and if-else statement)
กระดาษทำการ (หลักการและภาคปฏิบัติ)
Computer Game Programming
ใบสำเนางานนำเสนอ:

หน่วยที่ 5 โปรแกรมแบบวนรอบทำซ้ำ หน่วยที่ 5 โปรแกรมแบบวนรอบทำซ้ำ  หลักในการวนรอบซ้ำ

หลักในการวนรอบซ้ำ    หลักในการวนรอบซ้ำ หมายถึง คอมพิวเตอร์จะทำงานวนซ้ำในชุดคำสั่งที่ กำหนด และมีการตรวจสอบเงื่อนไขการทำซ้ำเรียกว่าการวนลูป (Loop) ดังนั้นการใช้งานลูปก็คือการวนซ้ำ     สรุป การวนรอบซ้ำเป็นการสั่งให้วนรอบทำงานซ้ำคำสั่งเดิม โดยมีการ กำหนดเงื่อนไขเพื่อให้โปรแกรมวนรอบทำงาน ดังนั้นการวนซ้ำในทาง ภาษาคอมพิวเตอร์ คือ การทำคำสั่งหรือชุดคำสั่งนั้นซ้ำกันหลายๆครั้ง

คำสั่งการวนรอบ  ในภาษา C มีการใช้คำสั่งการวนรอบ หรือ การวนลูป (Loop)  ด้วย while, do-while และ for while คือ วนรอบหากเงื่อนไขเป็นจริง (ตรวจสอบก่อนทำตามคำสั่ง - เช็คก่อนทำ) do-while คือ รอบแรกจะทำก่อนเสมอแล้วจึงวนรอบหากเงื่อนไขเป็นจริง (ทำตาม คำสั่งก่อนจึงตรวจสอบ - ทำก่อนเช็ค) for คือ กำหนดจำนวนรอบที่แน่นอนได้ (การเลือกใช้คำสั่ง for เมื่อทราบจำนวนการ วนรอบที่แน่นอน)

ข้อสังเกตของ while และ do - while นิยมใช้กับการทำงานที่เราไม่รู้จำนวนครั้งที่แน่นอน การวนรอบซ้ำ (loop) รับค่าจนกว่าจะได้ค่าที่ต้องการ  วนรอบซ้ำ (loop) คำนวณค่าจนกว่าผลลัพธ์มีค่าเท่ากับศูนย์  คำสั่งที่อยู่ในการวนรอบ (loop) ต้องส่งผลให้เงื่อนไขที่ตรวจสอบมีโอกาสเป็นเท็จ จึงจะสามารถออกจากการวนรอบ (loop) ได้  คำสั่งที่อยู่ในการวนรอบ (loop) ต้องส่งผลกระทบต่อตัวแปรหรือค่าที่นำมาเป็น เงื่อนไขในการออกจากการวนรอบ (loop)

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

คำสั่ง while วนรอบหากเงื่อนไขเป็นจริง

รูปแบบคำสั่ง * ตรวจสอบเงื่อนไขให้เป็นจริงก่อนแล้วจึงทำ รูปแบบคำสั่ง * ตรวจสอบเงื่อนไขให้เป็นจริงก่อนแล้วจึงทำ while( เงื่อนไข )           {           คำสั่ง 1 ;           คำสั่ง 2 ;           คำสั่งเพิ่มค่าหรือลดค่า ;           }

ตัวอย่างโปรแกรม วนรอบแสดงตัวอักษรจากแป้นพิมพ์ออกจอภาพ ตัวอย่างโปรแกรม วนรอบแสดงตัวอักษรจากแป้นพิมพ์ออกจอภาพ #include <stdio.h>           void main()             {       char  ch;                      ch = getch( );                      while(ch  != 'q')                       {                         printf("\n%c", ch);                         ch = getch( );                       }             }

ตัวอย่างโปรแกรม แสดงตัวเลขค่ารับเข้าระหว่าง 100 ถึง 1 ตัวอย่างโปรแกรม แสดงตัวเลขค่ารับเข้าระหว่าง 100 ถึง 1 #include<stdio.h> int main(void) { system("cls"); int  num; int  lineCount;           printf("Enter an integer between 1 and 100:");           scanf("%d",&num);                     if(num>100)  num=100;                     lineCount= 0;           while(num>0)           {      if(lineCount<10)  lineCount++;                     else                     {         printf("\n");                               lineCount=1;                     }                     printf("%4d",num--);           } getch(); return 0; }

คำสั่ง do-while วนรอบหากเงื่อนไขเป็นจริง รอบแรกจะทำเสมอ คำสั่งวนรอบแบบ do - while จะทำงานตามคำสั่งของ do ก่อนหนึ่งรอบ แล้วจึงเริ่มตรวจสอบเงื่อนไขที่ while เป็นครั้งแรกโดยถ้าเงื่อนไขเป็นจริงจะวน กลับไปทำงานอีกครั้ง แล้วกลับมาตรวจสอบเงื่อนไขใหม่ เป็นอย่างนี้ไปจนกว่าผลการ ตรวจสอบเงื่อนไขจะออกมาเป็นเท็จ ก็จะออกจาก loop ของ do-while สรุปคำสั่ง do -while เป็นอีกรูปแบบหนึ่งของคำสั่งที่ใช้ควบคุมโปรแกรม โดย ให้โปรแกรมจะตรวจสอบเงื่อนไข หลังจากมีการเข้าไปทำในวงรอบ ของการทำซ้ำแล้ว อย่างน้อย 1 รอบ ถ้าเงื่อนไขเป็นจริงก็จะโปรแกรมซ้ำอีกต่อไป จนกระทั่งเงื่อนไขที่ เปรียบเทียบนั้นเป็นเท็จ จึงหยุดการทำซ้ำ 

คำสั่ง do-while วนรอบหากเงื่อนไขเป็นจริง รอบแรกจะทำเสมอ

รูปแบบคำสั่ง * ทำก่อนแล้วจึงตรวจสอบเงื่อนไขเพื่อวนรอบกลับไปทำซ้ำ รูปแบบคำสั่ง * ทำก่อนแล้วจึงตรวจสอบเงื่อนไขเพื่อวนรอบกลับไปทำซ้ำ  do      {              คำสั่งที่ 1;                 คำสั่งที่ 2;                       คำสั่งเพิ่มค่าหรือลดค่า ;         } while (เงื่อนไข);

ตัวอย่างโปรแกรม ดังนี้ ตัวอย่างโปรแกรม ดังนี้  #include <stdio.h>           main()           {   int i;              i=1;                     do                     {        printf("i = %d\n",i);                               i++; //i=i+1                     } while (i<=10);             getch();           }

ตัวอย่างโปรแกรม วนรอบแสดงตัวอักษรจากแป้นพิมพ์ออกจอภาพ ตัวอย่างโปรแกรม วนรอบแสดงตัวอักษรจากแป้นพิมพ์ออกจอภาพ  #include <stdio.h>           void main()             {     char  est;                   do {   est = getch();                         printf("\n%c", est);                         }                        while((est != 'a') && (est != 'b'));             }  // หมายเหตุ ตามแนวคิดทฤษฎี De Morgan's laws นั้น  NOT (a  OR  b) เป็นเหมือนกับ NOT  a  AND  NOT  b.

คำสั่ง for กำหนดจำนวนรอบที่แน่นอนได้ คำสั่ง for เป็นคำสั่งที่ใช้สำหรับการควบคุมทิศทางของโปรแกรมให้ ทำงานแบบวนรอบเช่นเดียวกับคำสั่ง while และ do-while สรุปการทำซ้ำแบบ for หรือ ลูป for จะเป็นการทำให้โปรแกรมทำซ้ำ จนกว่าค่าตัวแปรจะครบตามที่ตั้งไว้ เริ่มแรกโปรแกรมจะกำหนดค่าเริ่มต้น ให้กับตัวแปรเริ่มต้น (initialization) จากนั้นทำ คำสั่ง (statement)         

คำสั่ง for กำหนดจำนวนรอบที่แน่นอนได้

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

เช่น for(a=0;a<5;a++) จะอธิบายได้ คือ ตัวอย่างอธิบาย เช่น for(a=0;a<5;a++) จะอธิบายได้ คือ for (เริ่มต้นของตัวแปร a มีค่า =0 ; เงื่อนไข ถ้า a มีค่าน้อย กว่า 5 ; ค่าของ a จะเพิ่มที่ละ 1) ดังนั้น ถ้า a มีค่าน้อยกว่า 5 เป็นจริง (ใช่) จะทำในการวนรอบ และ ถ้า a มีค่าน้อยกว่า 5 เป็นเท็จ (ไม่ใช่) ออกจากการวนรอบ

ตัวอย่างโปรแกรม เรียงตัวอักษร a ถึงอักษร z ออกมาแสดงทางหน้าจอ #include <stdio.h> void main() {     char kchar ;     for (kchar='a'; kchar<='z'; kchar++)     printf("%c_", kchar); }

ตัวอย่างโปรแกรม เพิ่มค่าจากตัวเลข 0 ที่ละ 2 จนถึง 100 ตัวอย่างโปรแกรม เพิ่มค่าจากตัวเลข 0 ที่ละ 2 จนถึง 100 #include<stdio.h> main() {     int x,y;     for (x=0,y=0; x+y<=100; x++,y++)      printf("X+Y = %d\n", x+y); }

ตัวอย่างโปรแกรม เรียงตัวเลขจากศูนย์ถึงตัวเลขที่รับเข้ามา ตัวอย่างโปรแกรม เรียงตัวเลขจากศูนย์ถึงตัวเลขที่รับเข้ามา #include<stdio.h> int main(void) {           int i;           int limit;           system("cls");           printf("\nPlease enter the limit:");           scanf("%d",&limit);                     for (i=1;i<=limit;i++)                               printf("\t%d\n",i);           getch();           return 0; }

กฎของคำสั่ง for กฎในการใช้คำสั่ง for มีดังนี้ ค่าที่เพิ่มขึ้นในแต่ละรอบของตัวแปรควบคุมนั้นจะเป็นเท่าไรก็ได้ เช่น for (x=0;x<=100;x=x+5) ค่าที่เพิ่มขึ้นของตัวแปรควบคุมถูกกำหนดให้ลดลงได้ ตัวแปรควบคุมอาจเป็นชนิดตัวอักษรได้ (character) เช่น for (ch=‘a’; ch<=‘z’ ; ch++) ตัวแปรควบคุมสามารถมีได้มากกว่า 1 ตัวแปร ถ้าไม่มีส่วนของการเปลี่ยนค่าของตัวแปร ให้เพิ่มการเพิ่มค่าหรือลดค่าลงไปในการวนรอบเพื่อสร้างเงื่อนไขการออกจาก การวนรอบ (loop) ถ้ามีการละเลย (กำหนดค่าเริ่มต้นของตัวแปร ; กำหนดเงื่อนไข ; การเปลี่ยนค่าของตัวแปร) จะเป็นการสั่งให้ทำงานใน วงจร for โดยไม่รู้จบก็ทำได้โดยใช้คำสั่ง break เข้ามาช่วย  เช่น for (;;) {  printf(“This loop will run forever \n”);  break;  } คำสั่ง for สามารถมีคำสั่ง for ซ้อนอยู่ภายใต้ได้

คำสั่งประกอบการควบคุมทิศทางแบบต่างๆ คำสั่งสำหรับการควบคุมทิศทางการทำงานของโปรแกรมในแบบต่างๆ ที่มักจะถูกนำไปใช้ ร่วมกับคำสั่งอื่นๆ  เช่น นำไปใช้เพื่อหยุดการเลือกทำ หรือออกจากการทำงานแบบ วนรอบ ซึ่งคำสั่งเหล่านี้ได้แก่ คำสั่ง break คำสั่ง break  จะเป็นการสั่งให้ออกจาก loop ใดๆในทันที โดยไม่ทำประโยคที่เหลือใน loop  คำสั่ง continue คำสั่ง continue  จะเป็นการสั่งให้กลับไปทำประโยค ต้น  loop ใหม่  โดยที่ส่วนของประโยคที่อยู่หลัง continue จะไม่ถูกทำ

คำสั่งประกอบการควบคุมทิศทางแบบต่างๆ

คำสั่ง break  คำสั่ง break จะเป็นการสั่งให้ออกจาก loop ใดๆในทันที โดยไม่ทำประโยคที่เหลือใน loop     ตัวอย่างโปรแกรม           #include <stdio.h>          void main()             {                       int a =1, s=1 , sum;                           do                             {    sum=s+a;                                  if(a==20) break;                                  a++;     printf("a=%d\n",a);  }   while(a<=50);                       printf("sum=%d",sum);              }

คำสั่ง continue  คำสั่ง continue จะเป็นการสั่งให้กลับไปทำประโยคต้น  loop ใหม่  โดยที่ส่วนของประโยคที่อยู่หลัง continue จะไม่ถูกทำ   ตัวอย่างโปรแกรม       #include <stdio.h>           void main()             {   int a = 13;                  while(a<=100)                   {                        a++;                        if(a%5) // เปรียบเทียบหารเอาเศษลงตัวหรือไม่                         continue;                        printf("%d \n",a);                   }             }