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

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

Chapter 5 คำสั่งควบคุมการทำซ้ำ

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


งานนำเสนอเรื่อง: "Chapter 5 คำสั่งควบคุมการทำซ้ำ"— ใบสำเนางานนำเสนอ:

1 Chapter 5 คำสั่งควบคุมการทำซ้ำ
PROGRAMMING II

2 ค่าของนิพจน์ไม่ใช่ศูนย์
while statements คำสั่งที่ทำให้เกิดการทำซ้ำในขณะที่เงื่อนไขเป็นจริง while (นิพจน์) คำสั่ง; while (นิพจน์) { คำสั่ง1; คำสั่ง2; คำสั่งn; } ค่าของนิพจน์ไม่ใช่ศูนย์ จริง คำสั่ง เท็จ เท็จ ค่าของนิพจน์ไม่ใช่ศูนย์ จริง บล็อคของคำสั่ง

3 Example Start C != ‘n’ End Get C Print C n y ‘a’<=C <= ‘z’

4 #include <stdio.h>
#define NEWLINE '\n' void main ( ) { char c; scanf("%c", &c); //get first characters while (c != NEWLINE) { if ('a' <= c && c <= 'z') printf("%c", c); getchar(); scanf("%c", &c); } // End of while loop }

5 ตัวอย่าง จงเขียนโปรแกรมเพื่อทำการนับจำนวนหลักของเลขจำนวนเต็มที่ป้อน
วิเคราะห์ ผลลัพธ์ จำนวนหลัก (digits) ข้อมูลนำเข้า เลขจำนวนเต็ม 1 จำนวน (number) วิธีประมวล รับข้อมูล จำนวนหลักของเลขจำนวนเต็มใดๆ จะเท่ากับจำนวนรอบของการ หารด้วย 10 จนกระทั้งตัวตั้งของการหารเป็น 0 แสดงผล

6 ตัวอย่าง (ต่อ) #include <stdio.h> void main ( ) {
int digits = 0, number; printf(“Enter any integer number : ”); scanf(“%d”, &number); getchar(); while (number > 0) { number /= 10; digits += 1; } // end of while printf(“No. of digits of your input is %d\n”, digits);’ }

7 ค่าของนิพจน์ไม่ใช่ศูนย์ ค่าของนิพจน์ไม่ใช่ศูนย์
do - while statements คำสั่งที่ทำให้เกิดการทำซ้ำถ้าเงื่อนไขยังคงเป็นจริง do คำสั่ง; while (นิพจน์); do { คำสั่ง1; คำสั่ง2; คำสั่งn; } while (นิพจน์); จริง คำสั่ง เท็จ ค่าของนิพจน์ไม่ใช่ศูนย์ จริง เท็จ ค่าของนิพจน์ไม่ใช่ศูนย์ บล็อคของคำสั่ง

8 ตัวอย่าง จงเขียนโปรแกรมเพื่อทำการนับจำนวนหลักของเลขจำนวน เต็มที่ป้อน จนกว่าไม่ต้องการทำต่อ วิเคราะห์ ผลลัพธ์ จำนวนหลัก (digits) ข้อมูลนำเข้า เลขจำนวนเต็ม 1 จำนวน (number) ทำงานต่อหรือไม่ (ans) วิธีประมวล รับข้อมูล จำนวนหลักของเลขจำนวนเต็มใดๆ จะเท่ากับจำนวนรอบของการหาร ด้วย 10 จนกระทั้งตัวตั้งของการหารเป็น 0 แสดงผล ถามความต้องการทำงานต่อหรือไม่?

9 #include <stdio.h>
void main ( ) { int digits = 0, number; char ans; do { printf("Enter any integer number : "); scanf("%d", &number); getchar(); while (number > 0) { number /= 10; digits += 1; } printf("No. of digits of your input is %d\n", digits); printf("Do you want to continue (y/Y)?"); digits = 0; scanf("%c", &ans); } while (ans == 'y' || ans == 'Y');

10 for statements คำสั่งที่ทำให้เกิดการทำซ้ำที่ทราบจำนวนรอบ
for (initialization;condition;update) statement; หรือ {statements} initialization condition False True Statement or {statements} update

11 ตัวอย่าง #include<stdio.h> void main(){ int digits, number;
printf("Enter any integer number : "); scanf("%d", &number); getchar(); for(digits = 0; number > 0; digits += 1) number /= 10; printf("No. of digits of your input is %d\n", digits); }

12 for (digits=0; number>0; number /= 10, digits+=1);
for(digits = 0; number > 0; digits += 1) number /= 10; for (digits=0; number>0; number /= 10, digits+=1); digits = 0; for (; number > 0; ) { number /= 10; digits += 1; }

13 คำถามท้ายบท ส่วนของโปรแกรมต่อไปนี้ ให้ผลการทำงานออกมาตรงกับข้อใด
#include <stdio.h> main() { int i=0; do{ printf(“\ni=%d”,++i); }while(i<10); } แสดงตัวเลข ) แสดงตัวเลข 1-10 3) แสดงตัวเลข ) เป็นการวนลูปไม่หยุด

14 2. จากส่วนของโปรแกรมต่อไปนี้ จงหาว่าค่าของตัวแปร a_count, a และ b จะมีค่าเท่ากับเท่าไรเมื่อจบโปรแกรม #include <stdio.h> main() { int a=-10,b=3; float a_count = 0; while(a&&b) { if(a%2) { a_count++; a++; b--; } else printf(“a_count = %.4f\n”,a_count); printf(“a = %d\n”,a); printf(“b = %d\n”,b); a_count = , a = -2, b = 0 a_count = , a = -3, b = 0 a_count = , a = -4, b = 0 a_count = , a = -3, b = 0

15 3. จากส่วนของโปรแกรมที่มีการวนลูปด้วยคำสั่ง while ต่อไปนี้ จงหาว่าผลลัพธ์จะออกมาเป็นดังข้อ ใด #include <stdio.h> main() { int i=0, j=5; while(j>1) { if((i%j)==0) { printf(“\n”); j--; i=0; } printf(“$”); i++; $$$$ $$$ $$ $ $$$$$

16 4. ส่วนของโปรแกรมใดในข้อต่อไปนี้เป็นการแสดงตัวเลข 1 ถึง 5 ออกทางหน้าจอ 1) n=1; while(n!=5) printf(“%d”,n); 2) n=0; printf(“%d”,n+1); 3) n=0; while(n++!=5) 4) n=0; while(++n!=5)

17 5. จงแสดงผลลัพธ์ของโปรแกรมต่อไปนี้ #include <stdio
5. จงแสดงผลลัพธ์ของโปรแกรมต่อไปนี้ #include <stdio.h> main() { int a,b; for(a=1,b=10;a<10,b>5;a++,b--) printf(“%d”,a); } 6. จากโปรแกรมในข้อ 5. จงเขียนโปรแกรมใหม่โดยเปลี่ยนมาใช้คำสั่ง while แทน for 7. จากโปรแกรมในข้อ 3. จงเขียนโปรแกรมใหม่โดยเปลี่ยนมาใช้คำสั่ง for

18 8. จงเขียนโปรแกรมที่มีการวนรับจำนวนเต็มเข้ามาจนกว่าผู้ใช้จะป้อน -999 โดยโปรแกรมจะ คำนวณหาผลบวกของจำนวนทั้งหมดที่รับเข้ามา ตัวอย่างอินพุตของโปรแกรม ตัวอย่างเอาท์พุตของโปรแกรม Enter number : 12 Enter number : 530 Enter number : -142 Enter number : 81 Enter number : -999 Enter number : 12 Enter number : 530 Enter number : -142 Enter number : 81 Enter number : -999 Sum of all numbers = 481


ดาวน์โหลด ppt Chapter 5 คำสั่งควบคุมการทำซ้ำ

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


Ads by Google