More Related Content Similar to การเขียนคำสั่งแบบวนซ้ำ ppt Similar to การเขียนคำสั่งแบบวนซ้ำ ppt (6) การเขียนคำสั่งแบบวนซ้ำ ppt2. โปรแกรมแบบวนซำ้า
คำา สั่ง ควบคุม การทำา งาน แบบ
for
คำาสัง For เป็นคำาสั่งควบคุมการทำางานและ
่
กำาหนดการทำางานวนรอบคล้าย ๆ กับคำาสั่ง while
จะมีรูปแบบแตกต่างกับคำาสังควบคุมการทำางานอื่น
่
ๆ
คำาสัง for เป็นเป็นคำาสั่งสั่งควบคุมการทำางาน
่
และกำาหนดการทำางานวนรอบ โดยตั้งค่าก่อน แล้ว
จึงทำาการพิจารณาเงื่อนไข ถ้าเงื่อนไขเป็นจริง ก็
4. การเขียนโดยใช้คำาสัง for จะเห็นได้ว่ามีความ
่
กระชับเขียนได้สั้นกว่าคำาสั่ง while เพราะสามารถ
กำาหนดได้ในครั้งเดียว แต่การทำางานก็จะได้ผล
เหมือนกันกับคำาสั่งwhile
ลักษณะการทำางานก็คอโปรแกรมจะทำาการ
ื
เช็คในส่วนของเงื่อนไข หากเงื่อนไขเป็นจริงก็จะ
เพิ่มค่าของตัวแปรไป 1 และทำาคำาสังในลูป จาก
่
นั้นก็ทำาการตรวจสอบเงื่อนไขอีก หากเงื่อนไขเป็น
จริงก็จะทำางานซำ้า ๆ แบบนีไปเรื่อย ๆ จนกว่า
้
เงื่อนไขเป็นเท็จ การทำางานของโปรแกรมก็จะ
หลุดจากลูป และจบการทำางาน
6. การกำาหนดค่าเริ่มต้นของตัวนับ เงื่อนไขการวน
ซำ้า และ การเปลียนแปลงค่าตัวนับ เป็นนิพจน์ทมี
่
ี่
การทำางานร่วมกันในคำาสั่ง for ดังนี้
การกำาหนดค่าเริ่มต้นของตัวนับ เป็นนิพจน์ที่ใช้
สำาหรับกำาหนดค่าเริ่มต้น ให้กบตัวแปรทีทำาหน้าที่
ั
่
ควบคุมการวนซำ้า และจะประมวลผลเพียงครั้งเดียว
•เงื่อนไขการวนซำ้า เป็นนิพจน์ทใช้สำาหรับประเมินค่า
ี่
คำาสั่ง จะถูกประมวลผลหรือไม่ นั่นคือถ้า เงื่อนไขการ
วนซำ้า มีค่าจริง คำาสั่ง จะถูกประมวลผล และถ้า
เงื่อนไขการวนซำ้า มีค่าเท็จ คำาสั่ง for จะสิ้นสุดลง
•การเปลี่ยนแปลงค่าตัวนับ เป็นนิพจน์ทจะถูก
ี่
ประมวลผลทุกครั้งหลังจาก คำาสั่ง ถูกประมวลผล โดย
การเปลียนแปลงค่าตัวนับ เป็นนิพจน์ใด ๆ ทีสามารถ
่
่
ประเมินค่าได้ เช่น นิพจน์เพิ่มค่า นิพจน์ลดค่า และ
นิพจน์กำาหนดค่า เป็นต้น
9. คำำ สั่ง ควบคุม กำรทำำ งำน แบบ
While
คำำสัง While เป็นคำำสั่งสำำหรับใช้ควบคุม
่
กำรทำำงำนแบบมีเงือนไข อีกแบบหนึ่ง ซึ่งแตกต่ำง
ออกไปจำกกำรใช้งำนคำำสั่ง if และ elseif ก่อน
หน้ำนี้ ซึ่งคำำสั่ง While เป็นคำำสั่งที่จำำเป็นใน
กำรนำำไปใช้เขียนโปรแกรม
คำำสัง While เป็นคำำสั่งสำำหรับใช้ควบคุมกำร
่
ทำำงำนแบบมีเงือนไข ในกำรกำำหนดคำำสั่งให้มี
กำรทำำงำนแบบวนรอบ โดยพิจำรณำเงื่อนไขก่อน
หำกค่ำที่ได้เป็นจริงตำมเงื่อนไข จึงจะประมวลผล
ตำมคำำสั่งที่กำำหนดไว้
11. กำรเขียนโดยใช้คำำสั่ง for จะเห็นได้ว่ำมี
ควำมกระชับเขียนได้สั้นกว่ำคำำสั่ง while เพรำะ
สำมำรถกำำหนดได้ในครั้งเดียว แต่กำรทำำงำนก็จะ
ได้ผลเหมือนกันกับคำำสั่ง while
ลักษณะกำรทำำงำนก็คือโปรแกรมจะทำำกำร
เช็คในส่วนของเงื่อนไข หำกเงื่อนไขเป็นจริงก็จะ
เพิ่มค่ำของตัวแปรไป 1 และทำำคำำสังในลูป จำก
่
นั้นก็ทำำกำรตรวจสอบเงื่อนไขอีก หำกเงื่อนไขเป็น
จริงก็จะทำำงำนซำ้ำ ๆ แบบนีไปเรื่อย ๆ จนกว่ำ
้
เงื่อนไขเป็นเท็จ กำรทำำงำนของโปรแกรมก็จะ
หลุดจำกลูป และจบกำรทำำงำน
13. เงื่อนไขกำรวนซำ้ำ เป็นนิพจน์ใดๆ ทีสำมำรถประเมิน
่
ค่ำได้ โดยจะต้องเขียนไว้ระหว่ำงเครื่องหมำย ( และ )
เสมอเช่นเดียวกับคำำสั่ง if และคำำสัง if – else
่
เมือเริ่มต้นประมวลผลคำำสั่ง while เงื่อนไขกำรวนซำ้ำ
่
จะถูกตรวจสอบค่ำ ถ้ำพบว่ำ เงื่อนไขกำรวนซำ้ำ มีค่ำเป็น
จริง คำำสั่ง ภำยใต้คำำสัง while จะถูกตรวจสอบค่ำเป็นรอบ
่
แรก แล้ว เงื่อนไขกำรวนซำ้ำ จะถูกตรวจสอบค่ำอีกครั้ง
หำกพบว่ำ เงื่อนไขกำรวนซำ้ำ ยังมีค่ำเป็น จริง คำำสัง จะ
่
ถูกตรวจสอบค่ำอีกครั้ง จนกระทัง เงื่อนไขกำรวนซำ้ำ มีค่ำ
่
เป็น เท็จ คำำสั่ง while จึงจะสิ้นสุดลง
กำรตรวจสอบค่ำ เงื่อนไขกำรวนซำ้ำ ของคำำสั่ง
while ในครั้งแรก และพบว่ำมีค่ำเป็น เท็จ คำำสั่ง จะไม่
ประมวลผลเลย
16. หมายเหตุ
• หมายถึง ให้กดปุ่ม Enter บนแป้นพิมพ์
• ^z หมายถึง ให้กดปุ่ม Ctrl - z บนแป้นพิมพ์
•
โปรแกรม InOut1.c แสดงการใช้คำาสั่งของภาษาซี 2 คำา
สั่ง getchar() และ putchar() เพื่อใช้รับข้อมูลนำาเข้าและแสดง
ผลลัพธ์แทนการใช้คำาสั่ง scanf() และ printf()
•
คำาสั่ง getchar() เป็นคำาสั่งไม่มีอาร์กิวเมนต์ และจะรับ
อักขระ 1 ตัวจากแผงแป้นอักขระแล้ว ส่งกลับค่าจำานวนเต็มทีมี
่
ค่าในตารางรหัสแอสกีที่ตรงกับอักขระดังกล่าว
•
ฟังก์ชัน putchar() มีอาร์กิวเมนต์ 1 ตัวเป็นชนิด int และ
แสดงอักขระในตารางรหัสแอสกีทมีค่าตรงกับจำานวนเต็มดัง
ี่
กล่าวจอภาพ
•
สำาหรับ EOF เป็นค่าคงที่ที่นิยามอยู่ในแฟ้มส่วนหัวชื่อ
stdio.h และใช้เป็นอักขระสำาหรับตรวจสอบการสิ้นสุดการ
ป้องกันข้อมูลซึ่งในที่นี้ คือการป้องกัน Ctrl - z
17. •
จากโปรแกรม InOut1.c ตราบใดทีอักขระผู้ใช้ป้อน
่
ไม่ใช้อักขระสินสุดการป้อนข้อมูลเงื่อนไข การวนซำ้า
้
iochar != EOF จะยังมีค่าเป็นจริง และแสดงผลค่าอักขระ
นันออกทางจอภาพก่อนทีจะวนรับอักขระตัวถัดไป และ
้
่
ในรอบทีผู้ใช้ป้อน Ctrl - z เงื่อนไขการวนซำ้า iochar !=
่
EOF จะมีค่าเป็นเท็จ และคำาสั่ง while จะสิ้นสุดการ
ทำางาน
•
ในกรณีทผู้ใช้ป้อน Ctrl-z ในครั้งแรก เงื่อนไขการ
ี่
วนซำ้า iochar != EOF จะมีค่าเป็นเท็จและคำาสัง while จะ
่
สิ้นสุดการทำางานในทันที โดยทีคำาสั่งในบรรทัดที่ 11
่
และ 12 ไม่ถกประมวลผลเลย
ู
18. คำา สั่ง ควบคุม การทำา งาน แบบ
Do...While
คำาสังนีมีลักษณะการทำางานคล้ายกับคำาสัง
่ ้
่
While แต่มีส่วนแตกต่างอยู่เล็ก ๆ น้อย ๆ ที่มี Do
เพิ่มเข้ามา แล้ว Do จะทำาให้แตกต่างจาก While
เดี่ยว ๆ
คำาสัง do while เป็นคำาสั่งที่กำาหนดให้มีการ
่
ทำางานวนรอบ คล้าย ๆ คำาสั่ง While แต่แตกต่าง
กันที่คำาสั่ง do while จะให้ทำาคำาสั่งในลูป do ก่อน
แล้วค่อยพิจารณาเงื่อนไขใน while ถ้าค่าเงื่อนไข
ใน while เป็นจริง จึงจะวนรอบทำาคำาสั่งในลูป do
ต่อไป
20. จากตัวอย่างการโปรแกรม เราได้ทำาการ
เขียนโปรแกรม โดยสร้างตัวแปร $i แล้วให้มีคา
่
เท่ากับ 5 หลังจากนัน ตรงนีละที่จะทำางานต่างจาก
้
้
while เราะจะเจอกับคำาสั่ง do เมื่อเจอคำาสั่ง do
โปรแกรมจะทำาเลยทันที (do แปลว่าทำานี่นา) ซึ่งก็
่
คือแสดงผลค่าตัวแปร i คือ แสดงเลข 5 ออกมา
และขึ้นบรรทัดใหม่ แล้วเมื่อเจอคำาสั่ง $i-- มีความ
หมายว่าลบค่า $i ไป 1 ดังนันตอนนี้ $i=4 แล้ว
้
จากนันโปรแกรมจะเจอคำาสั่ง while ซึ่งจะ
้
ทำาการเช็คค่าในตัวแปร i คือ หากตัวแปร i มีคา
่
มากกว่าหรือเท่ากับ 1 โปรแกรมจะวนลูปทำาคำาสั่ง
ในลูป do อีกครั้ง การทำางานก็เหมือนคำาสั่ง while
ก็คอเช็คจนเงื่อนไขเป็นเท็จจึงจะหลุดลูปและจบ
ื
22. คำำ สัง จะถูกประมวลผลโดยไม่มีเงื่อนไข
่
ใด ๆ ในรอบแรก จำกนันเงื่อ นไขกำรวน
้
ซำ้ำ จะถูกตรวจสอบค่ำ และคำำสั่ง จะถูกประมวล
ผลซำ้ำอีกทุกครั้งที่ เงื่อ นไขกำรวนซำ้ำ มีค่ำ
เป็น จริง และในครั้งแรกที่ เงื่อ นไขกำรวน
ซำ้ำ มีค่ำเป็น เท็จ คำำสั่ง do-while จึงจะสิ้นสุด
ลง
คำำ สัง ภำยใต้คำำสั่ง do-while อำจเป็นคำำ
่
สั่งอย่ำงง่ำยหรือคำำสังเชิงประกอบ
่
23. ย่ำ งที่ 4.2.3 โปรแกรมเลขยกกำำ ลัง
1 //Program: Power.c
2
3 #define BASE 2
4 #include <stdio.h>
5 #include <math.h>
6
7 void main(){
8
9 int count = 0, limit;
8
9 printf("Enter an upper limit: ");
10 scanf("%d", &limit);
11 printf("PowertValuen");
11 do
12 printf("%dt%.2fn", count, pow(BASE, count));
11 while (count++ != limit);
13 }
14
15 getch();
16 }
24. ผลลัพ
ธ์ คือ
Enter an upper limit: 5
Power Value
0 1.00
1 2.00
2 4.00
3 8.00
4 16.00
5 32.00หมำยเหตุ หมำยถึง ให้กดปุ่ม Enter บน
แป้นพิมพ์
25. นิพ จน์ (expression)
นิพจน์ คือ กำรนำำค่ำคงที่ ตัวแปร
และตัวดำำเนินกำรมำเขียนประกอบกัน
เพื่อให้ตัวแปรภำษำสำมำรถเข้ำใจและ
คำำนวณหำผลลัพธ์ได้ตำมที่เรำต้องกำร
26. ตัว อย่ำ งที่ 2.6 ถ้ำต้องกำรหำค่ำจำกสูตร a2+2ab+b2 เมื่อ
a=2, b=3 เรำจะต้องเขียนสูตรดังกล่ำวให้เป็นนิพจน์ดังนี้
• a*a+2 *a *b+b*b ……………………..…………………………… แบบที่ 1
หรือ pow(a,2) + 2 *a *b + pow(b,2)
……………………………… แบบที่ 2
• สำำหรับฟังก์ชัน pow(x,y) เป็นฟังก์ชันที่ใช้หำค่ำตัวเลขที่อยู่ใน
รูปเลขยกกำำลัง
โดยที่ x เป็นเลขฐำนซึ่งจะต้องมีค่ำเป็นเลขจำำนวนเต็มบวก
หรือศูนย์ก็ได้
y เป็นเลขยกกำำลังซึ่งอำจจะเป็นเลขจำำนวนเต็ม
บวกหรือลบก็ได้
ดังนั้น pow(x,y) หมำยถึง xy ส่วน pow(a,2) หมำยถึง a2 และ
pow(b,2) หมำยถึง b2
• ข้อ ควรระวัง ก่อนที่เรำจะใช้ฟังก์ชัน pow(x,y) นีจะต้องใช้
้
คำำสั่ง #include<math.h> อยู่บนส่วนต้นของโปรแกรม เพือนำำ
่
แฟ้ม math.h เข้ำมำไว้ในโปรแกรมภำษำ C ก่อน มิฉะนั้น
27. ตัว อย่ำ งที่ 2.7 แสดงนิพจน์ตัวอย่ำง ซึ่งมีอยูหลำย
่
ชนิดตังต่อไปนี้
• 1) a+b*10+(3*c)*8
/* นิพจน์ทำงคณิตศำสตร์*/
2) (m>=n)&&(x<y) /* นิพจน์เชิงตรรกะและนิพจน์
เชิงเปรียบเทียบควำมสัมพันธ์*/
3) !(k==25)
/* นิพจน์เชิงตรรกะและนิพจน์เชิง
เปรียบเทียบควำมสัมพันธ์*/
4) !(p)
/* นิพจน์เชิงตรรกะ*/
5) (i>10)||(j<5)
/* นิพจน์เชิงตรรกะและนิพจน์เชิง
เปรียบเทียบ*/
6) if (y==z)
/* นิพจน์เงื่อนไข*/
• ตัว อย่ำ งที่ 2.8 แสดงกำรหำค่ำผลลัพธ์
จำกนิพจน์ในภำษำ C
• กำำหนดให้ int x=5, y=8, z=9;