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

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

การทดลองที่ 9 Loops ( วงวน ). summer solstice sol --- sun sistere --- still.

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


งานนำเสนอเรื่อง: "การทดลองที่ 9 Loops ( วงวน ). summer solstice sol --- sun sistere --- still."— ใบสำเนางานนำเสนอ:

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

2

3

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

5

6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

29 หาผลบวกเลขคู่ #include 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 ถ้าเป็นการหาผลบวกเลขคี่ เปลี่ยนอย่างไร ???

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

31 การรับ input ในวงวน #include 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); } How many numbers ? 5 x = Summary of Number is 150

32 หลักการใช้งาน คำสั่งใน body ของ loops อาจมีคำสั่งเดียวหรือ หลายคำสั่ง ถ้ามีคำสั่งเดียว ไม่จำเป็นต้องมี 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); } for (i = 0; i < 10; i++) { printf(“Hello\n”); } คำสั่งเดียว มี block ก็ได้ มีคำสั่งเดียว ไม่ต้องมี block มีหลายคำสั่ง ต้องมี block

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

50 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

51 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

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

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

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

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

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

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

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

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

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

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

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

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


ดาวน์โหลด ppt การทดลองที่ 9 Loops ( วงวน ). summer solstice sol --- sun sistere --- still.

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


Ads by Google