More Related Content Similar to อัลกอริทึมและการวิเคราะห์ปัญหา Similar to อัลกอริทึมและการวิเคราะห์ปัญหา (20) อัลกอริทึมและการวิเคราะห์ปัญหา2. นิยามอัลกอริธึม
อัลกอริธึม (Algorithm) หมายถึง ลาดับขั้นตอนวิธีในการทางานของ
โปรแกรมเพื่อแก้ปัญหาใดปัญหาหนึ่ง ซึ่งถ้าปฏิบติตามขั้นตอนอย่าง
ั
ถูกต้องแล้ว จะต้องสามารถช่วยแก้ปัญหาหรื อประมวลผลตามความ
ต้องการได้สาเร็ จ
ในการเขียนอธิ บายอัลกอริ ธึมนั้น เราสามารถคิดอัลกอริ ธึมเพื่อมา
แก้ปัญหาได้หลายแบบ
2
3. ตัวอย่าง
การต้ มไข่ ไก่
วัตถุดิบ : ไข่ไก่ ผลลัพธ์ : ไข่ตมสุ ก
้
Algorithm 1 Algorithm 2
ต้มน้ าให้เดือด - ต้มน้ าให้เดือด
ใส่ ไข่
- ใส่ ไข่
- รอ 5 นาที
รอ 10 นาที
- ดับไฟ / ปิ ดเตา
ดับไฟ / ปิ ดเตา
ปอกไข่
4. Algotithm 1 Vs Algotithm 2
ผลที่ได้เหมือนกันคือ ไข่ตม
้
ผลลัพธ์อลกอริ ธึม 1 สามารถทานได้เลย ส่ วนอัลกอริ ธึม 2 ต้อง
ั
ปอกก่อนทาน
สรุ ปคือ เราได้ผลลัพธ์ตามที่โจทย์ตองการคือ ไข่ตม
้ ้
5. Algotithm 3
การต้มไข่ไก่ทาน
วัตถุดิบ : ไข่ไก่ ผลลัพธ์ : ไข่ตมสุ ก
้
Algorithm
ต้มน้ าให้เดือด
รอ 10 นาที What’s up?
ดับไฟ / ปิ ดเตา
ปอกไข่
6. Algotithm 3
การต้มไข่ไก่ทาน
วัตถุดิบ : ไข่ไก่ ผลลัพธ์ : ไข่ตมสุ ก
้
Algorithm
ต้มน้ าให้เดือด Algorithm นีจะไม่ ได้ ไข่ ต้ม
้
รอ 10 นาที
เพราะ....
ดับไฟ / ปิ ดเตา
ปอกไข่
7. การวิเคราะห์ปัญหา
กระบวนการทางานของคอมพิวเตอร์
Input Process Output
องค์ประกอบของงาน
Input , Process , Output
การพิจารณา
ขั้นตอนการทางานเป็ นการนาเข้า ป้ อนเข้าระบบ ถือเป็ น Input
ขั้นตอนเกี่ยวกับการกระทา(กริ ยา) ถือเป็ น Process
ขั้นตอนการนาข้อมูลออกจากระบบ แสดงผล ถือเป็ น Output
7
8. Example
เราลองนาขั้นตอนการต้มไข่มาวิเคราะห์
ต้มน้ าให้เดือด => การกระทา(Process)
ใส่ ไข่ => การป้ อนข้อมูล(Input)
รอ 10 นาที => การกระทา(Process)
ดับไฟ => การกระทา(Process)
ปอกไข่ => การกระทา(Process)
ไข่ตมสุ ก
้ => ผลลัพธ์ (Output)
9. การวิเคราะห์ ปัญหา
ข้อมูลที่นาเข้าสู่ ระบบคอมพิวเตอร์
การวิเคราะห์ปัญหา ประกอบด้วยอะไรบ้าง
วิเคราะห์ผลลัพธ์ วิเคราะห์ Process
(Output) Input เขียนขั้นตอนการแก้ปัญหา
9
10. การวิเคราะห์ ปัญหา
ตัวอย่ าง ต้ องการคานวณหาพืนทีของสามเหลียมรูปหนึ่ง
้ ่ ่
1. วิเคราะห์ ผลลัพธ์ พื้นที่สามเหลี่ยม
กาหนดวัตถุประสงค์ การคานวณหาพื้นที่สามเหลี่ยม
รูปแบบผลลัพธ์
ความยาวฐาน = ………………
ความสูง = ………………
พื้นที่สามเหลี่ยม = ……………
2.กาหนดข้ อมูลเข้ า
1. ความยาวฐาน
2. ความสูง
10
11. การวิเคราะห์ ปัญหา
3. ขั้นตอนการประมวลผล
1.ป้ อนความยาวฐาน
2.ป้ อนความสูง
3.คานวณพื้นที่สามเหลี่ยม จากสู ตร
พื้นที่สามเหลี่ยม = 1
ความยาวฐาน ความสู ง
2
11
12. ตัวอย่ าง อัลกอริธึมเพือทาการบวกราคาโดยใช้ เครื่องคิดเลข
่
1. เปิ ดเครื่ องคิดเลข
2. พิมพ์ยอดเงิน
3. กดเครื่ องหมาย (+)
4. กลับไปที่ขอ 2 ทาจนกระทังราคาทั้งหมดถูกพิมพ์เข้าเครื่ องและกด
้ ่
เครื่ องหมาย =
5. เขียนยอดรวมราคา
6. ปิ ดเครื่ องคิดเลข
12
14. ตัวอย่าง 4
การโยนเหรี ยญเสี่ ยงทายเพื่อตัดสิ นใจว่าจะกินขนมปั งหรื อผลไม้ โดยมี
เงื่อนไขว่า ถ้าออกหัวกินขนมปั ง ถ้าออกก้อยกินผลไม้
วัตถุดิบ : ผลการโยน ผลลัพธ์ : กินอะไร(ผลไม้/ขนมปั ง)
1. โยนเหรี ยญ => การกระทา
2. ดูเหรี ยญ => รับข้อมูล
3. ถ้าออกหัว => ไปขั้นตอนที่ 5
4. ถ้าออกก้อย => ไปขั้นตอนที่ 6
5. กินขนมปั ง => ไปขั้นตอนที่ 7
6. กินผลไม้ => ไปขั้นตอนที่ 7
7. หยุด
15. การออกแบบอัลกอริธึม
ในการเขียนอธิบายอัลกอริ ธึมนั้น เราสามารถคิดอัลกอริ ธึมเพื่อมา
็
แก้ปัญหาได้หลายแบบ ซึ่งในแต่ละแบบเครื่ องคอมพิวเตอร์กจะใช้ใน
หน่วยความจา และเวลาในการประมวลผลไม่เท่ากัน ดังนั้น การจะ
เปรี ยบเทียบว่าโปรแกรมคอมพิวเตอร์ใครเก่งกว่ากันนั้นจึงใช้การ
เปรี ยบเทียบและประสิ ทธิภาพของอัลกอริ ธึมนันเอง
่
อัลกอริ ธึมของใครใช้เวลาในการประมวลผลและหน่วยความจาน้อย
กว่า ถือว่าอัลกอริ ธึมนั้นฉลาดกว่า
15
16. ประสิ ทธิภาพของอัลกอริธึม
จะพิจารณาอยู่ 2 ส่ วนหลักๆ ดังนี้
หน่ วยความจา(memory)ที่จะต้องใช้ในการประมวลผล
เวลา(time)ที่ใช้ในการประมวลผล
16
18. อัลกอริ ธึมที่ดีจะประกอบด้วยคุณสมบัติต่างๆดังนี้
อัลกอริ ธึมที่ดีตองมีความถูกต้อง (correctness)
้
อัลกอริ ธึมที่ดีตองง่ายต่อการอ่าน(readability)
้
อัลกอริ ธึมที่ดีตองสามารถปรับปรุ งได้ง่ายต่ออนาคต(ease of
้
modification)
อัลกอริ ธึมที่ดีสามารถนากลับมาใช้ใหม่ได้(Reusability)
อัลกอริ ธึมที่ดีตองมีประสิ ทธิ ภาพ (efficiency)
้
18
19. การควบคุมการทางานของโปรแกรม (Program Control Flow)
การควบคุมการทางานของโปรแกรม เป็ นเครื่ องมือที่ผพฒนาโปรแกรมใช้
ู้ ั
ในการแสดงลาดับการทางานของโปรแกรมหรื อใช้อธิบายอัลกอริ ธึม ให้เป็ น
่
ระบบและง่ายต่อความเข้าใจ โดยโครงสร้างอาจจะอยูในรู ปแบบดังนี้คือ
1. ผังงาน (Flowchart) ซึ่งเป็ น Flow Diagram ชนิดหนึ่งสาหรับใช้
อธิบายขั้นตอนการทางานของโปรแกรมในลักษณะรู ปภาพ
2. ชุ ดคาสั่ งเทียม (Pseudocode) จะมีสญลักษณ์คล้ายกับภาษาอังกฤษ
ั
ก้ ากึ่งระหว่างภาษาอังกฤษกับภาษาคอมพิวเตอร์ใช้ในการอธิบาย
ลักษณะโครงสร้างข้อมูล และการทางานของอัลกอริ ธึมที่เราเขียนขึ้น
20. Flow Chart และ Pseudo Code
Algorithm Summation
1. Sum = 0
2. Input (value1)
3. Input (value2)
4. Input (value3)
5. Sum = value1 + value2 + value3
6. Output (sum)
End .
การเขียนอัลกอริ ธึมการบวกเลข 3 ตัว ในรู ปแบบ Pseudo Code
20
27. วิธีการเขียนผังงานที่ดี
1. ใช้สญลักษณ์ตามที่กาหนดไว้
ั
2. ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรื อจาก
ซ้ายไปขวา
3. คาอธิ บายในภาพสัญลักษณ์ผงงานควรสั้นกะทัดรัด และเข้าใจง่าย
ั
4. ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า - ออก
่
5. ไม่ควรโยงเส้นเชื่อมผังงานที่อยูไกลมาก ๆ ควรใช้สัญลักษณ์
จุดเชื่อมต่อแทน
6. ผังงานควรมีการทดสอบความถูกต้องของการทางานก่อนนาไป
เขียนโปรแกรมจริ ง
28. โครงสร้ างพืนฐานที่ใช้ ในการเขียนโปรแกรม
้
1. โครงสร้ างแบบลาดับ (Sequence Structure)
2. โครงสร้ างแบบเลือก (Selection Structure)
3. โครงสร้ างแบบทาซ้าหรือวนรอบ (Repetition or
Looping Structure)
28
29. 1. โครงสร้ างแบบลาดับ (Sequence Structure)
ทางานตามลาดับ
ทางานจากบนลงล่าง (จุดเริมต้นถึงสินสุด)
่ ้
มีจุดเริมต้นจุดเดียว – จุดสินสุดจุดเดียว
่ ้
อาจเรียกใช้โมดูลอื่นได้
29
31. ตัวอย่ าง โปรแกรมรับข้ อมูลจานวนสิ นค้ าและราคาสิ นค้ า
START
ราคา = 0 Input Process Output
? ? ?
รับจานวนสินค้า และราคา
ราคา = จานวนชิ้น*ราคา
พิมพ์ราคา
STOP
31
32. ตัวอย่ าง โปรแกรมรับข้ อมูลจานวนสิ นค้ าและราคาสิ นค้ า
อัลกอริธึม รหัสเทียม (Pseudo Code)
1. เริ่มต้ นทางาน Begin
2. กาหนดค่ า จานวนเงินทีชาระ่ Price = 0
(Price) เท่ ากับศูนย์ Read Amt, Cost
3. รับข้ อมูล จานวนสิ นค้ า (Amt)
และ ราคา (Cost)
4. คานวณจานวนเงินทีชาระ จาก
่ Price = Amt x Cost
Price = Amt x Cost
5. แสดงผล จานวนที่ต้องชาระ Write Price
6. จบการทางาน End
32
34. ตัวอย่ าง โปรแกรมคานวณพืนทีสามเหลียม
้ ่ ่
อัลกอริธึม รหัสเทียม (Pseudo Code)
1. เริ่มต้ นทางาน Begin
2. กาหนดค่ า พืนที่สามเหลียม
้ ่
(Area) = 0
3. รับข้ อมูล ความสู ง(Height) และ
ฐาน (Base)
4. คานวณพืนที่สามเหลียม จาก
้ ่
Area = Height x Base
5. แสดงผล พืนที่สามเหลียม
้ ่
6. จบการทางาน End
34
38. 2. โครงสร้ างแบบเลือก (Selection Structure)
มีเงือนไขทีตองตัดสินใจเลือกการทางาน
่ ่ ้
ผลลัพธ์ของเงือนไขคือ จริง หรือ เท็จ เท่านัน
่ ้
38
39. 2.1 Flowchart แบบหนึ่งทางเลือก
แบบ 1 ทางเลือก หรือ โครงสร้ าง IF….THEN
เป็ นโครงสร้างที่ทดสอบเงื่อนไข แล้วเลือกว่าจะทาหรื อไม่ทา ก่อนที่จะ
ไปทางานอื่นต่อไป
ใช่
เงื่อนไข งานที่ตองทา
้
ไม่ใช่
งานต่อไป
40. 2.1 Flowchart แบบหนึ่งทางเลือก
- แบบ 1 ทางเลือก หรือ โครงสร้ าง IF….THEN จะทางานเมื่อ
เงื่อนไขเป็ นจริง
เท็จ/FALSE จริง/TRUE
เงือนไข
่
รหัสเทียม คาสัง่ A
IF ……………
THEN …(คำสังA)…
่
40
41. 2.1 Flowchart แบบหนึ่งทางเลือก
ตัวอย่าง โครงสร้าง IF….THEN
แม่ถามว่าหิ วข้าวหรื อไม่ ถ้าหิ วก็ให้กิน ถ้าไม่หิวไม่ตองกิน แล้วจึง
้
เดินงานไปโรงเรี ยน (งานต่อไป)
ใช่
หิวใช่ไหม? กินข้าว
ไม่ใช่
เดินทางมาเรี ยน
41
44. ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ
อัลกอริธึม รหัสเทียม (Pseudo Code)
1. เริ่มต้ นทางาน Begin
2. รับค่ า คะแนนสอบ(Score) Read Score
3. ถ้ าคะแนนสอบตั้งแต่ 50 IF Score >= 50
คะแนนขึนไป ให้ พมพ์ทาง
้ ิ THEN Write ‘You pass’
หน้ าจอว่ า ‘You pass’
4. จบการทางาน End
44
45. ตัวอย่ าง รับค่ าอายุนักศึกษา ถ้ าอายุนักศึกษาน้ อยกว่ า 20 ปี
ให้ แสดงคาว่ า ‚you are so young‛
จงเขียน Algorithm, Pseudo code, Flowchart
45
47. 2.2 Flowchart แบบสองทางเลือก
แบบ 2 ทางเลือก หรือ โครงสร้ าง IF…THEN...ELSE
เท็จ/FALSE จริง/TRUE
เงือนไข
่
คาสัง่ A คาสัง่ B
รหัสเทียม
IF ……………..
THEN …..(คำสังB)…..
่
ELSE ..…(คำสังA)...…
่
END IF 47
48. ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ
เงือนไข
่
-ถ้าได้คะแนนสอบ 50 คะแนนขึนไป ้
ให้พิมพ์ข้อความว่า ‘Pass’
- ถ้าได้คะแนนตากว่า 50 คะแนน ให้
่
พิมพ์ข้อความว่า ‘Fail’
- ตัวแปร Grade เก็บค่าผลลัพธ์
48
50. ตัวอย่ าง โปรแกรมแสดงผลการสอบทางหน้ าจอ
อัลกอริธึม รหัสเทียม (Pseudo Code)
1. เริ่มต้ นทางาน Begin
2. รับค่ า คะแนนสอบ (Score) Read Score
3. ถ้ าคะแนนสอบตั้งแต่ 50 คะแนน
IF Score >= 50
ขึนไป ให้ ทานิพจน์
้
Grade=‘Pass’ ถ้ าน้ อยกว่ า 50 THEN Grade = ‘Pass’
คะแนน ให้ ทานิพจน์ ELSE Grade = ‘Fail’
Grade=‘Fail’ END IF
4. แสดงผล เกรด (Grade) Write Grade
5. จบการทางาน End
50
51. ตัวอย่ าง ให้รับค่า A,B ถ้า A>B ให้หาค่าผลต่าง แต่ถาไม่ใช่ให้หา
้
ค่าผลรวม
จงเขียน Algorithm, Pseudo code, Flowchart
51
52. 2.2 Flowchart แบบหลายทางเลือก
แบบหลายทางเลือก หรือ โครงสร้ าง ELSE…IF
เริ่ มต้น
ใช่
รหัสเทียม
IF …เงื่อนไข 1….. เงื่อนไข 1 คาสั่งเมื่อเป็ นจริ ง
THEN …คำสั่ งเมื่อเป็ นจริ ง.. ไม่ใช่
ELSE IF …เงื่อนไข 2….. ใช่
THEN …คำสั่ งเมื่อเป็ นจริ ง.. เงื่อนไข 2 คาสั่งเมื่อเป็ นจริ ง
…. ไม่ใช่
…. เงื่อนไข 3
ELSE …เมื่อไม่เข้าเงื่อนไขใดๆ
จบงาน
52
53. ตัวอย่ าง โปรแกรมประมวลผลการเรียน
เงือนไข
่
-คะแนนสอบสูงกว่า 80 คะแนน ได้เกรด A
-คะแนนสอบ 70-79 คะแนนขึนไป ได้เกรด B
้
-คะแนนสอบ 60-69 คะแนนขึนไป ได้เกรด C
้
-คะแนนสอบ 50-59 คะแนนขึนไป ได้เกรด D
้
-คะแนนสอบตากว่า 50 คะแนน ได้เกรด F
่
53
54. START
ตัวอย่าง Read Score
Y N
Score>=80
Grade = ‘A’ Y N
Score>=70
Y N
Grade = ‘B’ Score>=60
Grade = ‘C’ Y N
Score>=50
Grade = ‘D’ Grade = ‘F’
Write Grade STOP 54
55. Start
Read Score
Y
Score >= 80 Grade = ‘A’
หรือ N
Y
Score >= 70 Grade = ‘B’
N
Y
Score >= 60 Grade = ‘C’
N
Y
Score >= 50 Grade = ‘D’
N
Grade = ‘F’
Write Grade
BC320 Introduction to Computer
Stop
Programming 55
56. ตัวอย่าง โปรแกรมประมวลผลการเรียน
อัลกอริธึม รหัสเทียม (Pseudo Code)
1. เริ่มต้ นทางาน Begin
2. รับค่ า คะแนนสอบ (Score) READ Score
3. เปรียบเทียบคะแนนสอบ>=80 ถ้ าเป็ นจริง ให้ IF Score >= 80
ทานิพจน์ Grade=‘A’ ถ้ าเป็ นเท็จ ให้ THEN Grade = ‘A’
เปรียบเทียบคะแนนสอบ >=70 ถ้ าเป็ นจริง ให้ ELSE IF Score >=70
ทานิพจน์ Grade=‘B’ ถ้ าเป็ นเท็จ ให้ THEN Grade = ‘B’
เปรียบเทียบคะแนนสอบ >=60 ถ้ าเป็ นจริง ให้ ELSE IF Score >=60
ทานิพจน์ Grade=‘C’ ถ้ าเป็ นเท็จ ให้ THEN Grade = ‘C’
เปรียบเทียบคะแนนสอบ >=50 ถ้ าเป็ นจริง ให้ ELSE IF Score >=50
ทานิพจน์ Grade=‘D’ ถ้ าเป็ นเท็จ ให้ ให้ ทา THEN Grade = ‘D’
นิพจน์ Grade=‘F’ ELSE Grade = ‘F’
4. แสดงผล เกรด (Grade) WRITE Grade
5. จบการทางาน End
56
57. ตัวอย่ าง คานวณหายอดเงินที่ลูกค้าต้องชาระ โดยตรวจสอบ
จากราคาสิ นค้า
- ถ้าซื้ อสิ นค้า 0-100 บาท ได้ส่วนลด 5 บาท
- ถ้าซื้ อสิ นค้า 101-200 บาท ได้ส่วนลด 10 บาท
- ถ้าซื้ อสิ นค้าเกิน 200 บาท ได้ส่วนลด 20 บาท
โดยแสดงผลลัพธ์เป็ นยอดเงินที่ลูกค้าต้องชาระ
57
58. ตัวอย่ างคานวณหายอดเงินที่ลูกค้าต้องชาระ โดยตรวจสอบจากราคา
สิ นค้า
อัลกอริธึม รหัสเทียม (Pseudo Code)
1. เริ่มต้ นทางาน Begin
2. รับค่ า ราคาสิ นค้ า (price)
3. เปรียบเทียบราคาสิ นค้ า<=100 ถ้ าเป็ น
จริง ให้ ทานิพจน์ price=price-5 ถ้ า
เป็ นเท็จ ให้ เปรียบเทียบราคาสิ นค้ า
<=200 ถ้ าเป็ นจริง ให้ ทานิพจน์
price=price-10 ถ้ าเป็ นเท็จ ให้ ทา
นิพจน์ price=price-20
4. แสดงผล ราคาสิ นค้ า (price) End
5. จบการทางาน
Flowchart ?
58
59. 3. โครงสร้ างแบบทาซ้าหรือวนรอบ (Repetition or Looping Structure)
1. การวนซ้าแบบทดสอบเงื่อนไขก่ อน
2. การวนซ้าแบบทดสอบเงื่อนไขทีหลัง
3. การวนซ้าแบบวนซ้าแน่ นอน
59
60. 3. โครงสร้ างแบบทาซ้าหรือวนรอบ (Repetition or Looping Structure)
3.1 การวนซ้าแบบทดสอบเงื่อนไขก่อน หรือ While
ลูปแบบ While ในการทางานครั้งแรกจะตรวจสอบเงื่อนไขก่ อนทุกครั้ง
ก่อนจะเข้ าลูปการทางาน แต่ เมื่อพบว่ าเงื่อนไขเป็ นเท็จจะออกจากลูป
ทันที
While จริ ง กลุ่มคาสังที่
่
(เงื่อนไข)
ต้องทาซ้ า
เท็จ
ออกจากวนรอบ(ลูป)
60
61. WHILE Loop
มีเงือนไขในการหยุดการทางาน
่
ตรวจเงือนไขก่ อนการทางานทุกครั้ง ถ้ าใช่ ตามที่เงือนไข
่ ่
ต้ องการ จะให้ ทางานต่ อไป
อาจไม่ ได้ ทาเลยแม้ แต่ ครั้งเดียว
61
62. 3.2 Flowchart แบบวนลูป ชนิด While
ตัวอย่ าง จงเขียนผังงานแสดงการทางานของการแสดงค่ าตัวเลขจานวนเต็มบวก
โดยเริ่มต้ นตั้งแต่ เลข 1-5
วิเคราะห์
เงือนไขในการหยุด
่ แสดงตัวเลขมากกว่ า 5
ผลลัพธ์ คือ ค่ าตัวเลข <=5 แสดงตัวเลขจานวนเต็มบวก
ข้ อมูลเข้ า คือ กาหนดค่ าเริ่มต้ นของตัวเลขจานวนเต็มบวก ใช้ ตัวแปรเป็ น number
การประมวลผล คือ
ตรวจสอบค่ าตัวเลข <=5
พิมพ์ค่า
วนรอบจนกว่ าเงือนไขจะเป็ นเท็จ
่
62
63. ตัวอย่าง แสดงการทางานของ START
การแสดงค่ าตัวเลข
ตั้งแต่ เลข 1 ถึงเลข 5 โดยใช้ number = 1
While NO
While number <= 5
YES
Print number
number = number+1
END
64. ตัวอย่ าง โปรแกรมแสดงเลข 1-5
อัลกอริธึม รหัสเทียม (Pseudo Code)
1. เริ่มต้ นทางาน Begin
2. กาหนดค่ าเริ่มต้ นตัวเลข Number = 1
Number=1
While Number <= 5
3. ถ้ า Number ยังน้ อยกว่ าหรือ
เท่ ากับ 5 ให้ พมพ์ค่าของ
ิ {
Number และให้ เพิมค่ า Number
่ Write Number
ครั้งละ 1 ค่ า แต่ ถ้าเป็ นเท็จให้ ออก Number=Number+1
จากการทางาน }
4. จบการทางาน End
64
65. 3.1 Flowchart แบบวนลูป ชนิด While Loop
START
ตัวอย่าง โปรแกรมบวกเลข 1 ถึง 5
Sum = 1+2+3+4+5 number = 1 , Sum=0
NO
While number <= 5
เงือนไขในการหยุด ?
่ YES
Sum = Sum+number
number = number+1
Print Sum
END
66. ตัวอย่ าง โปรแกรมแสดงผลบวกเลข 1-5
อัลกอริธึม รหัสเทียม (Pseudo Code)
1. เริ่มต้ นทางาน Begin
2. กาหนดค่ าเริ่มต้ นตัวเลข
Number=1 และผลรวม Sum=0
3. ถ้ า Number ยังน้ อยกว่ าหรือ
เท่ ากับ 5 ให้ บวกค่ าของ Number
เก็บไว้ ที่ Sum วนรอบจนกว่ า
เงือนไขเป็ นเท็จให้ ออกจากการ
่
ทางาน
4. แสดงผลการบวก End
5. จบการทางาน
66
67. 3.2 Flowchart แบบวนลูป ชนิด Do-While
3.2 การวนซ้าแบบทดสอบเงื่อนไขทีหลัง หรือ ชนิด Do-While
ลูปแบบ Do-While การทางานครั้งแรกจะไม่ มีการตรวจสอบเงื่อนไข
แต่ จะเข้ าไปทางานในลูปอย่ างน้ อย 1 ครั้ง แล้วจึงไปตรวจสอบ
เงื่อนไข
กลุ่มคาสั่ งทีต้องการวนซ้า
่
Do-While Yes
เงือนไข
่
No
68. DO WHILE
มีเงือนไขในการหยุดการทางาน
่
ได้ ทางานอย่ างน้ อย 1 ครั้ง
หลังจากนั้นในแต่ ละครั้งจะมีตรวจสอบเงือนไข
่
ถ้ าเงือนไขเป็ นจริงก็จะวนรอบทางานต่ อ
่
ถ้ าเป็ นเท็จจะออกจากลูป
68
69. 3.2 Flowchart แบบวนลูป ชนิด Do-While
ตัวอย่ าง จงเขียนผังงานแสดงการทางานของการแสดงค่ าตัวเลขจานวนเต็มบวก
โดยเริ่มต้ นตั้งแต่ เลข 1-5 เมื่อหยุดแสดงผลค่ าตัวเลขแล้ วให้ แสดงข้ อความ “I Love URU”
วิเคราะห์
เงือนไขในการหยุด
่ แสดงตัวเลขมากกว่ า 5
ผลลัพธ์ คือ ค่ าตัวเลข <= 5 แสดงตัวเลขจานวนเต็มบวก
ค่ าตัวเลข > 5 แสดงข้ อความ “I Love URU”
ข้ อมูลเข้ า คือ กาหนดค่ าเริ่มต้ นของตัวเลขจานวนเต็มบวก ใช้ ตัวแปรเป็ น number
การประมวลผล คือ
พิมพ์ค่าตัวเลข
ตรวจสอบค่ าตัวเลข <=5
วนรอบจนกว่ าเงือนไขจะเป็ นเท็จ
่
ถ้ าค่ าตัวเลข > 5 แสดงข้ อความ “I Love URU” 69
70. START
ตัวอย่าง แสดงการทางานของ number = 1
การแสดงค่ าตัวเลข
ตั้งแต่ เลข 1 ถึงเลข 5 โดยใช้
Do-While Print number
number = number+1
YES
While number <= 5
NO
Display
“I love URU”
END
71. ตัวอย่ าง โปรแกรมแสดงเลข 1-5
อัลกอริธึม รหัสเทียม (Pseudo Code)
1. เริ่มต้ นทางาน Begin
2. กาหนดค่ าเริ่มต้ นตัวเลข number = 0
number=0
Do
3. เพิมค่ า number ทีละ 1 ค่ า
่
number=number+1 และให้ {
พิมพ์ค่าของ number number = number+1
4. ถ้ าค่ าของ number ยังน้ อยกว่ า write Number
หรือเท่ ากับ 5 ให้ ทาข้ อ 3 ไป }
เรื่อยๆ จนกว่ าเงือนไขจะเป็ นเท็จ
่ While number <=5
และออกจากการทางาน End
5. จบการทางาน 71
72. 3.2 Flowchart แบบวนลูป ชนิด Do-While
ตัวอย่ าง จงเขียนผังงานแสดงการทางานของการแสดงการบวกเลข 1-10
วิเคราะห์
เงือนไขในการหยุด
่ แสดงตัวเลขมากกว่ า 10
ผลลัพธ์ คือ ผลรวมของการบวกเลข 1-10
ข้ อมูลเข้ า คือ กาหนดค่ าเริ่มต้ นของตัวเลขจานวนเต็มบวก และผลรวมการบวก
การประมวลผล
บวกค่ าเลขจานวนเต็มบวก
ตรวจสอบค่ าของเลขจานวนเต็มบวก <= 10
วนรอบจนกว่ าเงือนไขจะเป็ นเท็จ
่
พิมพ์ค่าผลรวม
72
73. 3.2 Flowchart แบบวนลูป ชนิด Do-While
ตัวอย่าง โปรแกรมบวกเลข 1 ถึง 10
Sum = 1+2+3+4+5+6+7+8+9+10 START
i=0 , Sum=0
เงือนไขในการหยุด ?
่ i = i+1
Sum=Sum+i
จริ ง เท็จ
i<=10 Print Sum
STOP
74. ตัวอย่ าง โปรแกรมแสดงผลบวก 1-10
อัลกอริธึม รหัสเทียม (Pseudo Code)
1. เริ่มต้ นทางาน Begin
2. กาหนดค่ าเริ่มต้ นตัวเลข i=0 และ
ผลรวม sum=0
3. เพิมค่ า i ทีละ 1 ค่ า i=i+1 และหา
่
ผลรวมของการบวก
sum=sum+i
4. ถ้ า i ยังน้ อยกว่ าหรือเท่ ากับ 10
ให้ ทาข้ อ 3 ไปเรื่อยๆ จนกว่ า
เงือนไขจะเป็ นเท็จจึงออกจากลูป
่ End
5. พิมพ์ค่าผลรวม
6. จบการทางาน 74
75. 3.3 Flowchart แบบวนลูป ชนิด For
3.3 การวนซ้าแบบวนซ้าแน่ นอน หรือ For
ลูปแบบ For จะไม่ มีเงื่อนไขในการทางาน แต่ จะหยุดทางานเมื่อวนลูป
ครบตามจานวนทีต้องการ
่
For จริ ง
กลุ่มคาสังที่
่
(เงื่อนไข)
ต้องทาซ้ า
เท็จ
ออกจากวนรอบ(ลูป)
75
76. FOR Loop
งานที่ต้องทาซ้าเป็ นจานวนรอบที่แน่ นอน
ไม่ มเงือนไขในการหยุดการทางาน
ี ่
หยุดทางานเมือทาครบเป็ นจานวนรอบที่ต้องการ
่
มีตัวนับ (Counter) คอยควบคุมจานวนรอบ
76
77. 3.3 Flowchart แบบวนลูป ชนิด For
ตัวอย่ าง จงเขียนผังงานแสดงการทางานของการแสดงค่าตัวเลข
ตั้งแต่ เลข 1 ถึงเลข 10
วิเคราะห์
จานวนรอบ 10 รอบ
ผลลัพธ์ คือ แสดงตัวเลข 10 จานวน ตั้งแต่ เลข 1 ถึงเลข 10
ข้ อมูลเข้ า คือ การกาหนดค่ าเริ่มต้ นให้ ตัวแปรนับรอบใช้ ตัวแปรเป็ น i
การประมวลผล คือ ทาการวนรอบแสดงตัวเลข 10 รอบ
แสดงตัวเลข ตั้งแต่ เลข 1 ถึงเลข 10
77
78. 3.3 Flowchart แบบวนลูป ชนิด For
START
ตัวอย่ าง แสดงการทางานของการ
แสดงค่ าตัวเลข i=1
ตั้งแต่ เลข 1 ถึงเลข 10
ถ้ าแสดงตัวเลขครบแล้ วให้ แสดง
ข้ อความว่ า “Very Good”
NO Print ‚Very
for i <= 10
Good‛
YES
Display i
i = i+1
END 78
79. ตัวอย่ าง โปรแกรมแสดงผลบวก 1-10
อัลกอริธึม รหัสเทียม (Pseudo Code)
1. เริ่มต้ นทางาน Begin
2. กาหนดค่ าเริ่มต้ นตัวเลข i=1
i=1
3. ถ้ า i ยังน้ อยกว่ าหรือเท่ ากับ 10
ให้ พมพ์ค่า i และเพิมค่ า i ทีละ 1
ิ ่ for i<=10
ค่ า i=i+1 {
4. ทาข้ อ 3 ไปเรื่อยๆ จนกว่ าค่ าของ Write i
i จะเป็ นเท็จ i=i+1
5. พิมพ์ข้อความ ‚Very Good‛ }
6. จบการทางาน Write ‚Very Good‛
End
79
81. ประโยชน์ของผังงาน
1. ลาดับขั้นตอนการทางานของโปรแกรม และสามารถนาไปเขียน
โปรแกรมได้โดยไม่สบสน ั
2. ตรวจสอบความถูกต้อง และแก้ไขโปรแกรมได้ง่าย เมื่อเกิด
ข้อผิดพลาด
3. การปรับปรุ ง เปลี่ยนแปลง แก้ไข ทาได้อย่างสะดวกและรวดเร็ ว
4. ทาให้ผอื่นสามารถศึกษาการทางานของโปรแกรมได้อย่างง่าย
ู้
และรวดเร็ วมากขึ้น
85. แบบฝึ กหัด
1. จงเขียน Algorithm, Pseudo code, Flowchart ของโปรแกรมที่
กาหนดให้ต่อไปนี้
1.1 โปรแกรมคานวณหาค่า y ของสมการ y = x^2 + 2x +10
1.2 โปรแกรมหาค่าน้ าหนักเฉลี่ยของนักศึกษา 3 คน
1.3 โปรแกรมแสดงยอดขาย ถ้าซื้อสิ นค้ามากกว่า 1000 บาทมีส่วนลดให้
100 บาท
1.4โปรแกรมแสดงยอดขายของร้านค้าแห่งหนึ่งมีนโยบาย ลดราคาให้
ลูกค้า ถ้าเป็ นชายจะลดให้ 50 บาท แต่ถาเป็ นหญิง จะลดให้ 100 บาท
้
86. แบบฝึ กหัด
1.5 โปรแกรมแสดงขนาดของการใช้ยาตามอายุของผูใช้ ้
อายุมากกว่า 10 ปี แสดงข้อความรับประทานครั้งละ 3 ช้อนชา
อายุ 6-10 ปี แสดงข้อความรับประทานครั้งละ 2 ช้อนชา
อายุ 2-5 ปี แสดงข้อความรับประทานครั้งละ 1 ช้อนชา
เด็กอายุต่ากว่า 1 ปี ห้ามรับประทาน
86
87. แบบฝึ กหัด
2. จงเขียน Flowchart สาหรับวนรอบรับค่าตัวเลข แล้วแสดงค่าตัวเลขที่
รับเข้ามาออกทางจอภาพ โดยที่เมื่อรับค่าตัวเลขเป็ น -999 จะสิ้ นสุ ด
การวนรอบและจบโปรแกรม
3. จงเขียน Flowchart สาหรับวนรอบรับค่าตัวเลข และในระหว่างรับให้
หาผลรวมของตัวเลขที่รับเข้ามา โปรแกรมจะหยุดรับค่าเมื่อใส่ ตวเลข ั
-999 และจะแสดงผลรวมของตัวเลขทั้งหมดที่รับเข้ามาและหยุด
ทางาน
87