การทดลองที่ 9 Loops (วงวน) การทดลองที่ 9 Loops (วงวน)

Slides:



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

Computer Programming 1 LAB Test 3
คำสั่ง while และ คำสั่ง do..while
การเรียงลำดับข้อมูล(Sorting)
Control Statement for while do-while.
การโปรแกรมควบคุมแบบทำงานซ้ำ
Lecture 9: การวนซ้ำแบบมีโครงสร้างการวนซ้ำซ้อนกัน
การควบคุมทิศทางการทำงาน
LAB # 4 Computer Programming 1 1. พิจารณาโปรแกรมต่อไปนี้
Computer Programming 1 LAB # 6 Function.
LAB # 5 Computer Programming 1 1.
LAB # 4.
คำสั่ง while ควบคุมการทำงานวนซ้ำ กรณีระบบงานมีลักษณะตรวจสอบเงื่อนไขก่อน แล้วเข้าสู่ส่วนลำดับงานคำสั่งที่กำหนดไว้ การเขียนคำสั่ง while ต้องกำหนดนิพจน์แบบตรรกะเป็นเงื่อนไขมีค่าในหน่วยความจำเป็น.
Week 15 C Programming.
คำสั่งเพื่อการกำหนดเงื่อนไข
CE 112 บทที่ 5 การทำซ้ำในภาษา C
Lab 5: คำสั่ง switch - case
Lab 8: คำสั่ง Do-While อ.ณัฐพงศ์ พยัฆคิน.
บรรยายครั้งที่ 3: Queue
บรรยายครั้งที่ 2: Stack
อ.อรวรรณ เชาวลิต For คำสั่งวนซ้ำ อ.อรวรรณ เชาวลิต
คำสั่งวนซ้ำ (Looping)
โครงสร้างควบคุม 1. โครงสร้างควบคุมแบบวนทางเลือก
คำสั่งควบคุมการทำงาน
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
– Web Programming and Web Database
WHILE..DO คำสั่งควบคุมให้ทำงานซ้ำ โดยที่ต้องตรวจสอบเงื่อนไขก่อนที่จะทำ
LOGO Array. ประเภทของ Array - อาเรย์ 1 มิติ (One) - อาเรย์ 2 มิติ (Two) - อาเรย์ 3 มิติ (Three) 2.
While by Accords (IT SMART CLUB 2006) by Accords 1.
คำสั่งควบคุมการทำงาน
สุพจน์ สวัตติวงศ์ gamepad.pigcanfly.com
Flow Control.
Chapter 5 คำสั่งควบคุมการทำซ้ำ
การสร้างฟังก์ชั่นเพื่อพัฒนาโปรแกรม Interactive C
การทำซ้ำด้วยคำสั่ง while
คำสั่ง while และ do…while
การทำซ้ำด้วย คำสั่ง for ง การเขียนได นามิกเว็บเพจ ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดง พิทยาคม.
คำสั่ง for ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
C language W.lilakiatsakun.
Week 10 การเขียนโปรแกรมเบื้องต้น #2
Week 5 การทำซ้ำโดย while loop และ do while loop
Week 7 การเขียนโปรแกรมเบื้องต้น
Week 6 การทำซ้ำโดย for loop
Chapter 5 การทำซ้ำโดย while loop และ do while loop
Week 5 การทำซ้ำโดย while loop และ do while loop
Recursion การเรียกซ้ำ
หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรอบรมครู คอมพิวเตอร์ หลักสูตรที่ ๑ ทักษะการโปรแกรม เบื้องต้น วันที่สาม.
LOOPLOOP. LOOP คืออะไร ? - วงรอบการทำงาน - ทำงานแบบซ้ำๆ ไปเรื่อยๆตามเงื่อนไข เช่น - การแพ๊คของ 50 ชิ้นใส่กล่อง ทำไปเรื่อยๆ จนกว่า ของจะหมด - ตีดอทไปเรื่อยๆ.
อัลกอริทึ่มทำงานวนซ้ำ
บทที่ 5 คำสั่งควบคุม แบบวนซ้ำ รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 5.
อ. วชิระ หล่อประดิษฐ์. ตัว ดำเนินกา ร ศัพท์เฉพาะตัวอย่ าง ผลลัพธ์ ให้ a=3; b=2; Greater thana > b;True
บทที่ 2 การวิเคราะห์อัลกอริทึม
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
การเขียน แบบวนซ้ำ , วนลูป
คำสั่งวนซ้ำ.
การวนทำซ้ำ do การทำงานที่ต้องการวนซ้ำ until ( เงื่อนไขที่ใช้วน ) while ( เงื่อนไขที่ใช้วน ) การทำงานที่ต้องการวนซ้ำ endwhile.
C-Programming บทที่ 8 การทำซ้ำ C Programming.
การทำซ้ำ Pisit Nakjai.
การทำงานแบบวนซ้ำ (Iteration).
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
Computer Programming การเขียนโปรแกรม คอมพิวเตอร์ สัปดาห์ที่ 6 คำสั่งควบคุมการทำงานแบบ เงื่อนไขและคำสั่งควบคุมการ ทำงานแบบวนซ้ำ.
PHP: [5] คำสั่งควบคุม (Control statement)
การวนซ้ำโดยใช้โครงสร้าง for
หลักการโปรแกรม 1 Lecture 9: การทำซ้ำ (for).
โครงสร้างการทำงานแบบวนซ้ำ
การเขียนโปรแกรมแบบวนซ้ำ
การควบคุมการทำงานด้วยภาษา C
บทที่ 3 โครงสร้างภาษาซีเบื้องต้น
ใบสำเนางานนำเสนอ:

การทดลองที่ 9 Loops (วงวน) การทดลองที่ 9 Loops (วงวน)

summer solstice sol --- sun sistere --- still

ทบทวน วงวน while ตรวจสอบก่อนทำ do – while ตรวจสอบหลังจากทำไปแล้ว for ทำซ้ำด้วยจำนวนรอบที่กำหนด

while ตรวจสอบก่อนทำ #include <stdio.h> void main() { int i = 0; Hello #include <stdio.h> void main() { int i = 0; while (i<5) { printf(“Hello\n”); i++; } i i i 1

while ตรวจสอบก่อนทำ #include <stdio.h> void main() { int i = 0; Hello Hello #include <stdio.h> void main() { int i = 0; while (i<5) { printf(“Hello\n”); i++; } i 1 i 1 i 2

while ตรวจสอบก่อนทำ #include <stdio.h> void main() { int i = 0; Hello Hello #include <stdio.h> void main() { int i = 0; while (i<5) { printf(“Hello\n”); i++; } i 2 i 2 i 3

while ตรวจสอบก่อนทำ #include <stdio.h> void main() { int i = 0; Hello Hello #include <stdio.h> void main() { int i = 0; while (i<5) { printf(“Hello\n”); i++; } i 3 i 3 i 4

while ตรวจสอบก่อนทำ #include <stdio.h> void main() { int i = 0; Hello Hello #include <stdio.h> void main() { int i = 0; while (i<5) { printf(“Hello\n”); i++; } i 4 i 4 i 5

while ตรวจสอบก่อนทำ #include <stdio.h> void main() { int i = 0; Hello #include <stdio.h> void main() { int i = 0; while (i<5) { printf(“Hello\n”); i++; } i 5

do – while ตรวจสอบหลังจากทำไปแล้ว Hello #include <stdio.h> void main() { int i = 0; do { printf(“Hello\n”); i++; } while (i < 5); } i i 1 ? i 1

do – while ตรวจสอบหลังจากทำไปแล้ว Hello Hello #include <stdio.h> void main() { int i = 0; do { printf(“Hello\n”); i++; } while (i < 5); } i 1 i 2 ? i 2

do – while ตรวจสอบหลังจากทำไปแล้ว Hello Hello #include <stdio.h> void main() { int i = 0; do { printf(“Hello\n”); i++; } while (i < 5); } i 2 i 3 ? i 3

do – while ตรวจสอบหลังจากทำไปแล้ว Hello Hello #include <stdio.h> void main() { int i = 0; do { printf(“Hello\n”); i++; } while (i < 5); } i 3 i 4 ? i 4

do – while ตรวจสอบหลังจากทำไปแล้ว Hello Hello #include <stdio.h> void main() { int i = 0; do { printf(“Hello\n”); i++; } while (i < 5); } i 4 i 5 ? i 5

ทำซ้ำตามจำนวนรอบที่กำหนด for ทำซ้ำตามจำนวนรอบที่กำหนด

วงวนคำสั่ง for #include <stdio.h> void main() { int i; for (i = 0; i < 5; i++) { printf(“Hello\n”); } กำหนดค่าเริ่มต้น ทดสอบ เปลี่ยนแปลงค่า

วงวนคำสั่ง for for (i = 0; i < 5; i++) { printf(“Hello\n”); } i 1 i for (i = 0; i < 5; i++) { printf(“Hello\n”); } Hello true

วงวนคำสั่ง for for (i = 0; i < 5; i++) { printf(“Hello\n”); } i 2 i 1 for (i = 0; i < 5; i++) { printf(“Hello\n”); } Hello Hello true

วงวนคำสั่ง for for (i = 0; i < 5; i++) { printf(“Hello\n”); } i 3 i 2 for (i = 0; i < 5; i++) { printf(“Hello\n”); } Hello Hello true

วงวนคำสั่ง for for (i = 0; i < 5; i++) { printf(“Hello\n”); } i 4 i 3 for (i = 0; i < 5; i++) { printf(“Hello\n”); } Hello Hello true

วงวนคำสั่ง for for (i = 0; i < 5; i++) { printf(“Hello\n”); } i 5 i 4 false for (i = 0; i < 5; i++) { printf(“Hello\n”); } Hello Hello true

การบวกเลข 1 – 10 (while) i sum #include <stdio.h> void main() { int i = 1, sum = 0; while( i <= 10) { sum += i; i++; } printf(“sum of 1 – 10 : %d\n”, sum); i sum 1 0+1 2 0+1+2 3 0+1+2+3 4 0+1+2+3+4 5 0+1+2+3+4+5 6 0+1+2+3+4+5+6 7 0+1+2+3+4+5+6+7 8 0+1+2+3+4+5+6+7+8 9 0+1+2+3+4+5+6+7+8+9 10 0+1+2+3+4+5+6+7+8+9+10 11 sum of 1 – 10 : 55

การบวกเลข 1 – 10 (do - while) #include <stdio.h> void main() { int i = 1, sum = 0; do { sum += i; i++; } while (i <= 10); printf(“sum of 1 – 10 : %d\n”, sum); }

การบวกเลข 1 – 10 (for) #include <stdio.h> void main() { int i, sum = 0; for( i = 1; i <= 10; i++) sum += i; printf(“sum of 1 – 10 : %d\n”, sum); }

ถ้าเป็นการหาผลบวกเลขคี่ เปลี่ยนอย่างไร ??? หาผลบวกเลขคู่ #include <stdio.h> void main() { int i = 2, sum = 0; while( i <= 20) { sum += i; i += 2; } printf(“sum of even number 1 – 20 : %d\n”, sum); sum 0+2 +4 +6 +8 +10 +12 +14 +16 +18 +20 ถ้าเป็นการหาผลบวกเลขคี่ เปลี่ยนอย่างไร ???

หาผลบวกเลขคี่ #include <stdio.h> void main() { int i = 1, sum = 0; while( i <= 20) { sum += i; i += 2; } printf(“sum of odd number 1 – 20 : %d\n”, sum);

การรับ input ในวงวน #include <stdio.h> void main() { int n, i; float sum = 0; printf("How many numbers ? "); scanf("%d", &n); for (i = 1; i <= n; ++i) { printf("x = "); scanf("%f", &x); sum += x; } printf("\nSummary of Number is %f\n", sum); 5 How many numbers ? x = 10 x = 20 x = 30 x = 40 x = 50 Summary of Number is 150

หลักการใช้งาน คำสั่งใน body ของ loops อาจมีคำสั่งเดียวหรือหลายคำสั่ง ถ้ามีคำสั่งเดียว ไม่จำเป็นต้องมี block ถ้ามีหลายคำสั่ง ต้องมี block มีคำสั่งเดียว ไม่ต้องมี block มีหลายคำสั่ง ต้องมี block for (i = 0; i < 10; i++) printf(“Hello\n”); int c = 0; for (i = 0; i < 10; i++) { printf(“Hello\n”); c = c + 1; printf(“c = %d\n”, c); } คำสั่งเดียว มี block ก็ได้ for (i = 0; i < 10; i++) { printf(“Hello\n”); }

output คืออะไร int i; for (i = 0; i < 5; i++) { printf(“Hello\n”); Sawasdee int i; for (i = 0; i < 5; i++) { printf(“Hello\n”); printf(“Sawasdee\n”); }

ทำไมจึงได้ผลลัพธ์นี้ output คืออะไร ทำไมจึงได้ผลลัพธ์นี้ int i; for (i = 0; i < 5; i++) printf(“Hello\n”); printf(“Sawasdee\n”); Hello Sawasdee

? ? หลักการใช้งาน ระวัง อย่าใส่เครื่องหมาย “;” หลังวงเล็บคำสั่ง for for (i = 0; i < 10; i++) ; printf(“Hello\n”); ; ? Hello for (i = 0; i < 10; i++) ; { printf(“Hello\n”); printf(“Sawasdee\n”); } ; Hello Sawasdee ?

หลักการใช้งาน จำนวนรอบและผลลัพธ์การทำงาน ให้ดูค่าเริ่มต้น ค่าสุดท้าย และ ลำดับการทำงาน i = 1 i = 2 i = 3 i = 4 i = 5 i = 6 i = 7 i = 8 i = 9 i = 10 int i = 0; while (i < 10) { i++; printf(“i = %d\n”, i); }

หลักการใช้งาน จำนวนรอบและผลลัพธ์การทำงาน ให้ดูค่าเริ่มต้น ค่าสุดท้าย และ ลำดับการทำงาน i = 0 i = 1 i = 2 i = 3 i = 4 i = 5 i = 6 i = 7 i = 8 i = 9 int i = 0; while (i < 10) { printf(“i = %d\n”, i); i++; }

หลักการใช้งาน ระวังเงื่อนไขที่เป็นจริงตลอด จะทำให้เกิด infinite loops int i = 1; while (i > 0) { printf(“i = %d\n”); i++; }

หลักการใช้งาน ระวังเงื่อนไขที่เป็นจริงตลอด จะทำให้เกิด infinite loops int i = 1; do { printf(“i = %d\n”); i += 2; } while ( i != 10);

หลักการใช้งาน ระวังเงื่อนไขที่เป็นจริงตลอด จะทำให้เกิด infinite loops int i, n = 0; for ( i = 1; i > n; i++ ) { printf(“i = %d\n”, i) }

break เป็นคำสั่งหยุดการทำงานในวงวน และกระโดดออกจากวงวน for () { …. }

break เป็นคำสั่งหยุดการทำงานในวงวน และกระโดดออกจากวงวน int i; for (i = 0; i < 10; i++) { printf(“Korat\n”); if (i > 3) { break; } printf(“Bangkok\n”); Korat Bangkok

break เป็นคำสั่งหยุดการทำงานในวงวน และกระโดดออกจากวงวน int i = 0; while (i < 10) { printf(“Korat\n”); if (i > 3) { break; } printf(“Bangkok\n”); i++; Korat Bangkok

break ผลลัพธ์คืออะไร ? int i = 0; while (i < 10) { printf(“Korat\n”); i++; if (i > 3) { break; } printf(“Bangkok\n”); Korat Bangkok

break บวกเลข 1 ถึงเท่าไร ? int i = 1, sum = 0; while (i <= 10) { sum += i; if (i > 4) { break; } i++; printf(“sum = %d\n”, sum); 0 + 1 + 2 + 3 + 4 +5 sum = 15

break บวกเลข 1 ถึงเท่าไร ? int i = 1, sum = 0; while (i <= 10) { sum += i; i++; if (i > 4) { break; } printf(“sum = %d\n”, sum); 0 + 1 + 2 + 3 + 4 sum = 10

break บวกเลข 2 + 4 + … ? int i = 2, sum = 0; do { sum += i; if (i > 8) { break; } i += 2; } while (i <= 20); printf(“sum = %d\n”, sum); 2 + 4 + 6 + 8 + 10 sum = 30

break บวกเลข 2 + 4 + … ? int i = 2, sum = 0; do { sum += i; i += 2; if (i > 8) { break; } } while (i <= 20); printf(“sum = %d\n”, sum); 2 + 4 + 6 + 8 sum = 20

continue เป็นคำสั่งย้อนกลับไปตรวจสอบเงื่อนไข ถ้าจริง ให้ทำซ้ำ ถ้าเท็จ ออกจากวงวน for () { … continue; }

continue เป็นคำสั่งย้อนกลับไปตรวจสอบเงื่อนไข ถ้าจริง ให้ทำซ้ำ ถ้าเท็จ ออกจากวงวน int i; for (i = 0; i < 5; i++) { printf(“Korat\n”); if (i > 2) { continue; } printf(“Bangkok\n”); i = 0 Korat Bangkok i = 1 Korat Bangkok i = 2 Korat Bangkok i = 3 Korat i = 4 Korat

continue ผลลัพธ์คืออะไร ? int i = 0; while (i < 5) { printf(“Korat\n”); if (i > 2) { continue; } printf(“Bangkok\n”); i++; i = 0 Korat Bangkok i = 1 Korat Bangkok i = 2 Korat Bangkok i = 3 Korat infinite loops

continue ผลลัพธ์คืออะไร ? int i = 0; while (i < 5) { printf(“Korat\n”); i++; if (i > 2) { continue; } printf(“Bangkok\n”); i = 0 Korat i = 1 Bangkok i = 1 Korat i = 2 Bangkok i = 2 Korat i = 3 Korat i = 4 Korat

continue ผลลัพธ์คืออะไร ? int i = 0; do{ printf(“Korat\n”); i++; if (i > 2) { continue; } printf(“Bangkok\n”); } while (i < 5); i = 0 Korat i = 1 Bangkok i = 1 Korat i = 2 Bangkok i = 2 Korat i = 3 Korat i = 4 Korat

continue ผลลัพธ์คืออะไร ? infinite loops int i = 0; do{ printf(“Korat\n”); if (i > 2) { continue; } i++; printf(“Bangkok\n”); } while (i < 5); i = 0 Korat i = 1 Bangkok i = 1 Korat i = 2 Bangkok i = 2 Korat i = 3 Bangkok i = 3 Korat i = 3 Korat i = 3 Korat infinite loops

วงวนซ้อนใน (nested loops) เป็นคำสั่งสร้างวงวน ซ้อนกันสองชั้นขึ้นไป for () { คำสั่งในวงวนชั้นนอก for () { คำสั่งในวงวนชั้นใน }

วงวนซ้อนใน (nested loops) จำนวนรอบของการทำงานในวงวนชั้นใน เท่ากับจำนวนรอบของวงวนชั้นนอก คูณกับจำนวนรอบวงวนชั้นใน for (3 รอบ) { คำสั่งในวงวนชั้นนอก ทำงาน 3 รอบ } for (5 รอบ) { คำสั่งในวงวนชั้นใน ทำงาน 15 รอบ }

ตัวอย่าง int i, j; for (i = 0; i < 3; i++) { 3 รอบ 5 รอบ int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 5; j++) { printf(“Bangkok\n”); } Bangkok ถูกพิมพ์ 15 แถว

ตัวอย่าง int i, j; for (i = 0; i < 2; i++) { printf(“Korat\n”); for (j = 0; j < 3; j++) { printf(“Bangkok\n”); } Korat Bangkok

ตัวอย่าง int i, j; for (i = 0; i < 3; i++) { printf(“Korat\n”); for (j = 0; j < 3; j++) { printf(“Bangkok\n”); } Korat Bangkok

ผลลัพธ์คืออะไร int i = 0; j = 0; while (i<3) { printf(“January”); while(j < 3) { printf(“February”); j++; } i++; January February

ผลลัพธ์คืออะไร int i = 0; j = 0; while (i<3) { printf(“January”); while(j < 3) { printf(“February”); j++; } printf(“March”); i++; January February March

ปฏิบัติการ การทดลองที่ 8 ข้อ 5 – 6 การทดลองที่ 9

ไปทำ lab กันเถอะ