slide4 การใช้คำสั่ง for

Report
scanf(“%d”,&a);
a = (2+3)*4/5;
b= a*5/100;
if(a<0)
……..
printf(“hello”);
printf(“%d”,a);
โครงสร้างควบคุม
• 1. โครงสร้ างควบคุมแบบวนทางเลือก
1.1
คาสัง่ if
• 2. โครงสร้ างควบคุมแบบวนซา้
2.1
คาสัง่ while
2.2 คาสัง่ do… while
2.3 คาสั่ง for
•
คำสั่ ง for
คำสั่ ง for จะใช้ เงื่อนไขเป็ นตัวควบคุมลูป ลูป while นีจ้ ะเป็ นลูป
แบบ pre-test loop ซึ่งจะทำกำรตรวจสอบเงื่อนไขก่อนทีจ่ ะไปทำคำสั่ ง
ในลูป
for(ค่ าเริ่มต้ น; เงื่อนไข; ค่ าที่เลีี่นน)
{
คาสัง่ ;
}
pre-test loop
pre-test loop
คาสัง่ while
a=1;
while(a<=10)
{
printf(“%d”,a);
a=a+1;
คาสัง่ for
for(a=1;a<=10;a++)
{
printf(“%d”,a);
}
}
ส่วนกาหนดค่า
int main()
{
int a;
ส่วนเงื่อนไข
for(a=1; a<=10; a++)
{
printf(“ a= %d \n”,a);
}
ส่วนปลียนค่า
printf(“End of job”);
}
int count ,sum=0;
float average;
for(count=1; count<=5; count++)
{
scanf (“%d”,&data);
sum = sum+data;
}
average=sum/5.0;
printf(“%.2f”,average);
for(i=1; i<=12; i++)
{
answer = i * 2;
printf(“%d”,answer);
}
printf(“Bye bye”);
สรุ ล
คาสัง่ for เป็ นคาสัง่ ให้ มีการทางานวนซ ้า
เหมือนคาสัง่ while โดยมีรูปแบบดังนี ้
for(ค่ าเริ่มต้ น; เงื่อนไข; ค่ าที่เลีี่นน)
{
….
….
}
แบบฝึ กหัด
• 1. จงเขียนโปรแกรม รับค่าจานวนเต็ม 1 จานวน แล้วแสดงผล
เป็ นสูตรคูณ โดยใช้ คาสัง่ for
ตัวอน่ าง
Enter number : 5
5*1=5
5 * 2 = 10
5 * 3 = 15
:
:
5*12 = 60
End of job…. Thanks.
แบบฝึ กหัด
• 2. จากข้ อ 1 กาหนดให้ รับเฉพาะค่ า 2-12 เท่ านัน้ (ถ้ าไม่ใช้ 2-12
ต้ องรับเลขใหม่
ตัวอน่ าง
Enter number : 15
Enter number : 5
5*1=5
5 * 2 = 10
5 * 3 = 15
:
:
5*12 = 60
End of job…. thanks.
แบบฝึ กหัด
• 3. จงเขียนโปรแกรมแสดงการหาผลบวกของเลข 1 ถึง 100 ออกมาบน
จอภาพ โดยใช้ คาสัง่ for
• 4. จงเขียนโปรแกรมเปลี่ยนค่าองศาเซลเซียส ให้ เป็ นองศาฟาเรนไฮท์
จาก 0 ถึง 20 องศา โดยให้ เพิ่มค่าองศาเซลเซียสขึ ้นครัง้ ละ 1 ให้ แสดง
เป็ นค่าองศาเซลเซียสและองศาฟาเรนไฮท์ ทุกครัง้ ดังนี ้(โดยใช้ คาสัง่
for)
Celsius Fahrenheit (F = C/5*9+32)
0
32.00
1
33.00
2
35.00
3
37.40 (แสดงถึง 20
68.00)
กฎการใช้คาสัง่ for
• 1. ค่าที่เพิ่มขึ้นในแต่ละรอบของตัวแปรควบคุมนั้นจะเป็ นเท่าไรก็ได้ เช่น
for (x=0; x<=100; x = x + 5)
printf(“%d \n”,x);
หมายความว่า จะพิมพ์ค่า x จาก 5, 10, 15 ไปเรื่ อยๆ จนถึง 100 นัน่
คือ ค่าของ x เพิ่มขึ้นครั้งละ 5
• 2. ค่าของตัวแปรควบคุมอาจถูกกาหนดให้ลดลงก็ได้ เช่น
for (x=100; x>0; x - - )
printf(“d \n “, x);
หมายความว่า จะพิมพ์ค่า x จาก 100, 99, 98 ลงไปเรื่ อยๆ จนถึง 0
นัน่ คือค่าของ x จะถูกกาหนดให้ลดลงลงรอบละ 1 นัน่ เอง
• 3. ตัวแปรควบคุมอาจเป็ นชนิด character ก็ได้ เช่น
for (ch = ‘a’; ch<‘z’; ch + +)
printf(“asscii = %c decimal = %d”, ch, ch);
หมายความว่า ให้พิมพ์รหัส asscii กับค่า decimal ของตัวอักษร a
ถึง z ออกมาบนหน้าจอ
• 4. ตัวแปรควบคุมสามารถมีได้มากกว่า 1 ตัวแปร เช่น
for (x = 0, y = 0; x + y <= 100; x++, y++)
printf(“%d \n “, x + y);
หมายความว่า ตัวแปร x, y จะทาหน้าที่เป็ นตัวควบคุมการทางาน
ของวงจรทั้ง 2 ตัว โดยจะหยุดการทางานเมื่อ x + y มีค่ามากกว่า 100
และค่า x, y จะเพิ่มขึ้นครั้งละ 1 เสมอ
• 5. ถ้ามีการละส่ วนของ การปรับเปลี่ยนค่า จะทาให้เกิดการทางานเป็ น
วงจรซึ่งค่าของตัวแปรควบคุมจะไม่เปลี่ยนแปลงและจะออกจาก loop
เมื่อเงื่อนไขเป็ นเท็จ เช่น
for (x=0; x != 100; )
{
printf(“ Enter value x = “);
scanf(“%d”, &x);
}
• 6. ถ้าไม่มี การกาหนดค่าเริ่ มต้น เงื่อนไข และ การเปลี่ยนแปลงค่า (ตัว
ควบคุม) จะเป็ นการสัง่ ให้ทางานเป็ น loop โดยไม่รู้จบ เช่น
for ( ; ; )
printf(“Hello \n”);
ซึ่งถ้าต้องการให้จบ ก็ทาได้โดยใช้คาสัง่ break เข้ามาช่วย เช่น
for ( ; ; )
{
scanf(“%d” &x);
if( x == 999)
break;
}
printf(“End of job”);
• 7. คาสัง่ for สามารถมีคาสัง่ for ซ้อนอยูภ่ ายในได้อีก เช่น
for (x=1; x <=3; x + +)
{
printf (“x = %d \n”, x);
for (y=1; y<=5; y+ +)
printf(“y = %d “, y);
}
แบบฝึ กหัด
• เขียนโปรแกรมเพื่อพิมพ์คา่ เลขคู่ จาก 0 ถึง 100 ออกทางจอภาพ

similar documents