ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
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
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.