ตอนที่2 - kruchada

Download Report

Transcript ตอนที่2 - kruchada

เรื่ อง คำสั่งควบคุม ตอนที่2
(คำสั่งวนซำ้ )
จัดทำโดย
นางสาวชาดา ศักดิ์บญ
ุ ญารัตน์
http://kruchada.wikispaces.com/




1. คำสั่ง for
2. คำสั่ง while
3. คำสั่ง do-while
4. แบบฝึ กหัด
2
รู ปแบบ
for ( นิพจน์ ท่ ี 1 ; นิพจน์ ท่ ี 2 ; นิพจน์ ท่ ี 3 )
{
คำสั่งวนรอบ;
…….
}
เป็ นคำสั่งที่ใช้ ในกำรควบคุมให้ มีกำรวนรอบ คำสั่งหลำยๆ รอบ
โดยนิพจน์ ท่ ี 1 คือกำรกำหนดค่ ำเริ่มต้ นให้ กับตัวแปรที่ใช้ ในกำรวนรอบ
นิพจน์ ท่ ี 2 เป็ นกำรเปรี ยบเทียบ ก่ อนที่จะวนรอบถ้ ำเงื่อนไขของนิพจน์
เป็ นจริงจะมีกำรทำงำนตำมคำสั่งวนรอบ นิพจน์ ท่ ี 3 เป็ นคำสั่งในกำร
กำหนดค่ ำที่จะเปลี่ยนแปลงไปในแต่ ละรอบ
แบบที่ 1
sum = 0
For i=1 to 10 do
T
sum = sum+i
F
for (i=1; i<=10; i++ )
sum += i;
แบบที่ 2
sum = 0
i=1
i<=10
T
sum = sum+i
i=i+1
for (sum=0,i=1; i<=10; i++ )
sum += i;
F
ตัวอย่ ำง 4_1 เขียนโปรแกรมเพื่อรับข้ อมูลเลขจานวนเต็มจากผู้ใช้ จา นวน 5 ค่า และหาว่า
ค่าเฉลี่ยของเลขที่ป้อนเข้ ามาเป็ นเท่าใด
#include <stdio.h>
int main( ) {
ผลกำรทำงำนของโปรแกรม
int i,number;
Enter number 1 : 10
float average,sum=0.0f;
for (i=0 ; i < 5 ; i++) {
Enter number 2 : 20
printf("Enter number %d : ", i+1);
Enter number 3 : 30
scanf("%d",&number);
Enter number 4 : 40
sum += number;
}
Enter number 5 : 50
average = sum/5;
Average is 30.00
printf("Average is %.2f",average);
}
คำสั่งลูป while
รูปแบบ
while (นิพจน์ เงื่อนไข)
{
คำสั่งที่วนรอบ;
…………
compound statements
………….
}
sum = 0
i = 1
i<=10
T
sum = sum+i
i=i+1
F
sum=0;
i=1;
while (i<=10)
{
sum +=I;
i++;
}
ตัวอย่ ำง 4_2 โปรแกรมเพื่อหาค่าเฉลี่ยของเลขจานวนเต็มบวกที่ผ้ ใู ช้ ป้อนเข้ าสูร่ ะบบ เมื่อใดที่
ผู้ใช้ ป้อนเลขจานวนเต็มลบให้ ถือว่าสิ ้นสุดการป้อนข้ อมูล
#include <stdio.h>
ผลกำรทำงำนของ
while
(number
>=
0)
{
void main( ) {
โปรแกรม
sum
+=
number;
int number,count;
Enter number : 10
count++;
float sum,average;
Enter number : 20
printf("Enter
number
:
");
count = 0;
Enter number : 30
scanf("%d",&number);
sum = 0.0f;
Enter number : -1
}
printf("Enter number : ");
Average is 20.00
average
=
sum/count;
scanf("%d",&number);
printf("Average is %.2f",average);
}

รู ปแบบ
do
statement;
while (นิพจน์ เงื่อนไข);
เช่ น
num = 2;
do
{
num++;
printf(“Now no is %d\n”,num);
} while (num == 10)
sum = 0
i=0
sum = 0;
i = 0;
do
i=i+1
sum=sum+i
T
{ i++;
sum += i;
} while (i<10);
i<10
F
ตัวอย่ ำง 4_3 รับข้ อมูลจานวนเต็มจากผู้ใช้ และหาค่าเฉลี่ยของข้ อมูลที่รับเข้ ามา
จนกว่าผู้ใช้ จะป้อนเลข 9999
#include <stdio.h>
int main( ) {
int num, count=0;
float sum=0.0f,average;
do {
ผลกำรทำงำนของ
printf("Enter number :");
โปรแกรม
scanf("%d",&num);
Enter number : 10
if (num != 9999) {
Enter number : 20
count++;
Enter number : 30
sum += num;
Enter number : 9999
}
} while (num != 9999); Average is 20.00
average = sum/count;
printf("Average is %.2f", average);
}
1. พิมพ์ ค่ำ 10 ลงมำจนถึง 1
2. พิมพ์ เลขคี่ระหว่ ำง 1 ถึง 10
3. พิมพ์ สูตรคูณแม่ 5
4. รับคะแนนสอบของนักเรียน 5 คน แล้ วคำนวณหำคะแนนเฉลี่ย
5. แสดงรูปดอกจันทร์ 3 แถว แถวละ 5 ดอกจันทร์
#include<stdio.h>
int main()
{
int i;
for(i=10;i>=1;--i)
printf("%d\n",i);
}
#include<stdio.h>
int main()
{
int i;
for(i=1;i<=10;i+=2)
printf("%d\n",i);
for(i=2;i<=100;i+=2)
printf("%5d",i);
}
#include<stdio.h>
int main()
{
int i,x;
for(i=1;i<=12;i++){
x=i*5;
printf("5 x %3d =%5d\n",i,x);
}
}
#include<stdio.h>
int main()
{
int i,x,sum,n;
float avg;
sum=0;
printf("Input n: ");scanf("%d",&n);
for(i=1;i<=n;i++){
printf("Input score%d: ",i);scanf("%d",&x);
sum=sum+x;
}
avg=(float)sum/n;
printf("Sum = %d AVG = %.2f",sum,avg);
}
#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<=3;i++)//row
{
for(j=1;j<=5;j++)
printf("* ");
printf("\n");
}
}
1. จงเขียนโปรแกรมแสดงผลลัพธ์ทางจอภาพ แสดงข้อความ “ ชื่อของท่านรัก
ภาษาซี ” เช่น “Samart love C Language” จานวน 5 รอบ โดยใช้รูปแบบ
คาสัง่ for
#include<stdio.h>
int main()
{
int i;
for(i=1;i<6;i++)
{
printf(“samart love c program\n”);
}
}
2. จงเขียนโปรแกรมแสดงผลลัพธ์ทางจอภาพ แสดงข้อความ “ ชื่อของ
ท่านรักภาษาซี ” เช่น “Samart love C Language” จานวน 5 รอบ
โดยใช้รูปแบบคาสัง่ while
3. จงเขียนโปรแกรมแสดงผลลัพธ์ทางจอภาพ แสดงข้อความ “ ชื่อของ
ท่านรักภาษาซี ” เช่น “Samart love C Language” จานวน 5 รอบ
โดยใช้รูปแบบคาสัง่ do…while
4. จงเขียนโปรแกรมแสดงผลลัพธ์ทางจอภาพแสดงเลขจานวนเต็มบวก
1-20
#include<stdio.h>
main()
{
int i;
for(i=1;i<=20;i++)
{
printf(“%3d”,i);
}
}
5. จงเขียนโปรแกรมแสดงผลลัพธ์ทางจอภาพแสดงเลขจานวนเต็มบวก
5-30
6. จงเขียนโปรแกรมแสดงผลลัพธ์ทางจอภาพแสดงเลขจานวนเต็มบวกคูท่ ี่
มีค่าไม่เกิน 100
7. จงเขียนโปรแกรมแสดงผลลัพธ์ทางจอภาพแสดงเลขจานวนเต็ม 6 12
18 24 30 36 42
8. จงเขียนโปรแกรมแสดงผลลัพธ์ทางจอภาพแสดงเลขจานวนเต็ม
8 1 -6 -13 -20
9. จงเขียนโปรแกรมแสดงอนุกรมเลขคณิ ต โดยรับข้อมูลจากแป้ นพิมพ์ 3
จานวน จานวนที่เป็ นจุดเริ่ มต้น(first) จานวนสุ ดท้าย(final) และ
ระยะห่างระหว่างสองจานวนที่อยูต่ ิดกัน เช่น จุดเริ่ มต้น = 5 , จานวน
สุ ดท้าย = 21 และระยะห่างระหว่างสองจานวนที่อยูต่ ิดกัน = 4 จะได้
ผลลัพธ์ เป็ น 5 9 13 17 21
10. จงเขียนโปรแกรมเพื่อรับข้อมูลจากแป้ นพิมพ์ หมายเลขสูตรคูณ
(sutkun) (หมายเลขสูตรคูณ 0-25) โดยแสดงผลลัพธ์ทางจอภาพ
14. จงเขียนโปรแกรมแสดงผลลัพธ์ทางจอภาพ “ * ” โดยใช้รูปแบบคาสัง่
for เพื่อให้ได้ผลลัพธ์แสดงดอกจันทร์ 5 แถว แถวละ 10 ดอกจันทร์ ดัง
ภาพด้านล่าง
* *********
* *********
* *********
* *********
* *********