กลุ่ม 44. ตัวอย่างการดำาเนินการทาง
คณิตศาสตร์
ผู้ใช้ต้องการให้เอา 2 บวกกับ 3 แล้วนำาไปคูณด้วย 5
ซึ่งคำาตอบที่ผู้ใช้ต้องการ คือ 25 แต่ถ้าผู้ใช้เขียนนิพจน์
เป็น
2 + 3 * 5
ผลลัพธ์ที่ได้จะเท่ากับ 17 เพราะภาษา C จะคิดตาม
ลำาดับความสำาคัญของตัวดำาเนินการ (Precedence)
ดังนี้ เอา 3 คูณกับ 5 ได้ 15 แล้วนำาไปบวกกับ 2
ได้ 17 ซึ่งเป็นคำาตอบที่ไม่ตรงตามความต้องการ เพราะ
ฉะนั้นผู้ใช้จึงต้องระวังเรื่องนี้อย่างมาก วิธีการแก้ไขก็
สามารถทำาได้โดยการใช้วงเล็บเข้ามาช่วย ซึ่งวงเล็บจะมี
ลำาดับความสำาคัญสูงที่สุด และเมื่อลำาดับความสำาคัญเท่า
กัน ให้ดูในตารางโดยเรียงจากซ้ายไปขวา ซึ่งถ้ามีหลาย
วงเล็บซ้อนกัน ภาษา C จะคิดจากวงเล็บในออกมา ดังนั้น
ถ้าตัวอย่างด้านบนจะเขียนนิพจน์ให้ได้ผลลัพธ์ตาม
ต้องการ จะต้องเขียนดังนี้
12. ตัวดำาเนินการ ++ และ --
ตัวดำาเนินการ ++ จะทำาการเพิ่มค่าของ
ตัวแปรอีก 1 ส่วน -- นั้นจะทำาการลดค่าของ
ตัวแปรลง 1 ซึ่งการสร้างนิพจน์ด้วยตัวดำาเนิน
การ 2 ตัวนี้ จะมี 2 แบบ คือ
13. 1.แบบ POSTFIX
รูปแบบ
[ตัวแปร] [ตัวดำาเนินการ]
ตัวอย่าง
A ++
A –
ขั้นตอนการทำางานของนิพจน์แบบ POSTFIX
1.ให้x=a
2.จากนั้นจะทำาการa=a+1
หรือเมื่อนิพจน์เป็นy=b-- จะมีขั้นตอนการทำาการ ดังนี้
1.ให้y=b
2.จากนั้นจะทำาการ b=b–1
ค่าของaตอนแรก นิพจน์ ผลลัพธ์ของนิพจน์ ค่าของaตอนหลัง
10 a++ 10 11
10 a-- 10 9
14. 2.แบบ PREFIX
รูปแบบ
[ตัวดำาเนินการ] [ตัวแปร]
ตัวอย่าง
++a
--a
ขั้นตอนการทำางานของนิพจน์แบบPrefixเมื่อนิพจน์x=++a
1. จากนั้นจะทำาการ a=a+1
2. ให้x=a
หรือ เมื่อนิพจน์เป็นy=--bจะมีขั้นตอนการทำาการ ดังนี้
1. จากนั้นจะทำาการ b=b-1
2. ให้y=b
ค่าของaตอนแรก นิพจน์ ผลลัพธ์ของนิพจน์ ค่าของaตอนหลัง
10 ++a 11 11
10 --a 9 9
16. คำาสั่งควบคุมแบบวนซำ้า
• การวนซำ้า (LOOP) หมายถึง การ
กำาหนดเงื่อนไขเพื่อให้โปรแกรมทำางานใน
STATEMENT เดิมมากกว่า 1ครั้ง โดย
จำานวนครั้งของการ
ทำางานจะเป็นไปตามเงื่อนไขที่กำาหนดไว้
• คำาสั่งแบบวนซำ้ามี 3ประเภท ดังนี้
– คำาสั่งวนซำ้าแบบ FOR
– คำาสั่งวนซำ้าแบบ WHILE
– คำาสั่งวนซำ้าแบบ DO...WHILE
17. คำำสั่ง
FOR
for เป็นคำำสั่งที่สั่งให้โปแกรมมีกำรทำำงำนซำ้ำ ๆ
วนลูปจนกว่ำเงื่อนไขที่กำำหนดไว้เป็นเท็จ จึงออกจำก
คำำสั่ง for ไปทำำคำำสั่งถัดไป ควรใช้คำำสั่ง for ใน
กรณีที่ทรำบจำำนวนรอบของกำรทำำงำน
รูปแบบกำรใช้คำำสั่ง for
for (expression1; expression2;
expression3)
statement;
หรือ
for (expression1; expression2;
expression3)
{
statement(s);
}
21. กำรทำำซำ้ำแบบ WHILE
while เป็นคำำสั่งให้มีกำรทำำซำ้ำเป็นรอบ ๆ (loop)
ลักษณะกำรทำำงำนทำำนองเดียวกับคำำสั่ง for แต่
ต่ำงกันตรงที่ไม่ทรำบจำำนวนรอบที่แน่นอน แต่ต้อง
มีเงื่อนไขที่เป็นเท็จจึงจะออกจำกคำำสั่ง while ได้มิ
ฉะนั้นจะมีปัญหำที่โปรแกรมทำำงำนแบบวนซำ้ำแบบ
ไม่มีที่สิ้นสุด (endless loop)
กำรทำำซำ้ำแบบ while อำจเขียนผังงำน ดังรูป
23. คำำสั่ง WHILE มีรูปแบบ ดังนี้
while(นิพจน์ทดสอบเงื่อนไข)statement; หรือwhile(นิพจน์ทดสอบเงื่อนไข)
{
คำำสั่งที่1;
คำำสั่งที่2;
...
คำำสั่งสุดท้ำย;
}
โดย whileจะทำำกำรทำำซำ้ำต่อไปเมื่อนิพจน์ทดสอบเงื่อนไขให้ผลลัพธ์เป็นจริงและทำำต่อจนกระทั่งผลลัพธ์ของนิพจน์
ทดสอบเงื่อนไขเป็นเท็จ
24. คำำสั่งทำำซำ้ำหรือวนรอบ DO -
WHILE
do while เป็นคำำสั่งให้มีกำรทำำซำ้ำเป็นรอบ ๆ
(loop) ลักษณะกำรทำำงำนทำำนองเดียวกับคำำสั่ง
while แต่ต่ำงกันตรงที่คำำสั่งนี้จะมีกำรทำำงำนตำมคำำสั่ง
ไป 1 รอบ ก่อนที่จะทดสอบเงื่อนไข ถ้ำเงื่อนไขที่เป็น
จริงจะทำำงำนต่อไป ถ้ำเงื่อนไขเป็นเท็จจึงจะออกจำก
คำำสั่ง do while คำำสั่งนี้ก็เช่นเดียวกันจะต้องกำำหนด
ให้มีโอกำสที่เงื่อนไขเป็นเท็จได้ มิฉะนั้นจะมีปัญหำที่
โปรแกรมทำำงำนแบบวนซำ้ำแบบไม่มีที่สิ้นสุด (endless
loop) กรณีที่เงื่อนไขเป็นเท็จเพียงอย่ำงเดียวจะมีกำร
ทำำงำน 1 รอบ ก่อนออกจำกกำรทำำซำ้ำ
27. ผลลัพธ์ที่ได้จาก
โปรแกรม
คำาอธิบายโปรแกรม
สามารถอธิบายการทำางานของโปรแกรมที่สำาคัญ
ๆ ได้ดังนี้
- บรรทัดที่ 8 คำาสั่ง while (n < 11) เพื่อควบคุมการทำางาน
ของโปรแกรมให้ทำางานซำ้า ๆ กัน โดยการทำางานของคำาสั่ง
while จะตรวจสอบเงื่อนไข n < 11 เป็นจริงหรือเท็จ ถ้า
เป็นจริงจะทำางานตามคำาสั่งที่อยู่ภายใน loop while คือ
บรรทัดที่ 10 และ 11 จากนั้นจะกลับมาตรวจสอบเงื่อนไข
28. - บรรทัดที่ 10 และ 11 เป็นคำาสั่งที่โปรแกรมจะทำางาน
ภายหลังจากตรวจสอบเงื่อนไข while แล้วเป็นจริง นั่น
คือ คำานวณค่าสะสมของตัวแปร sum และ เพิ่มค่า n ที
ละ 1 ตามลำาดับ
- บรรทัดที่ 13 ถึง 18 เป็นคำาสั่งที่โปรแกรมจะทำางานภาย
หลังจากตรวจสอบเงื่อนไข while แล้วเป็นเท็จ คือ ลด
ค่าตัวแปร n ลง 1 แล้วคำานวณค่าเฉลี่ยเก็บไว้ที่ตัวแปร
avg และพิมพ์ค่าตัวแปร n, sum และ avg แสดงที่
จอภาพ พร้อมกับพิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่
โปรแกรม สุดท้ายจะหยุดรอรับค่าใด ๆ จากคีย์บอร์ด
เช่น ถ้ากด enter ก็จะกลับสู่โปรแกรม
30. รายชื่อสมาชิก กลุ่มที่ 4
1.นางสาวปรียาภรณ์ แสงทวี เลขที่
14
2.นางสาวตันหยง สุคนธา เลขที่
26
3.นางสาวทัมรินทร์ ผูกสี เลขที่
27
4.นางสาวรัตติกาล ขำาคม เลขที่
28
5.นางสาวสโรชา มากระนิตย์ เลข
ที่ 33
6.นางสาวจุฑารัตน์ ลิ้มทอว เลขที่
34
ชั้นมัธยมศึกษาปีที่ 6/2
เสนอ
คุณครูทรงศักดิ์ โพธิ์เอี่ยม