More Related Content Similar to อัลกอริทึมและการวิเคราะห์ปัญหา
Similar to อัลกอริทึมและการวิเคราะห์ปัญหา (20) อัลกอริทึมและการวิเคราะห์ปัญหา1. บทที่ 2
อัล กอริธ ึม และการ
วิเ คราะห์ป ัญ หา
อ.ชนิด า เรือ งศิร ิว ัฒ นกุล
สาขาวิช าเทคโนโลยีส ารสนเทศ คณะ
วิท ยาศาสตร์แ ละเทคโนโลยี
1
2. นิย ามอัล กอริธ ึม
อัล กอริธ ม
ึ (Algorithm) หมายถึง ลำาดับ
ขั้นตอนวิธีในการทำางานของโปรแกรมเพื่อแก้
ปัญหาใดปัญหาหนึ่ง ซึ่งถ้าปฏิบติตามขั้นตอน
ั
อย่างถูกต้องแล้ว จะต้องสามารถช่วยแก้
ปัญหาหรือประมวลผลตามความต้องการได้
สำาเร็จ
ในการเขียนอธิบายอัลกอริธมนัน เราสามารถ
ึ ้
คิดอัลกอริธึมเพื่อมาแก้ปัญหาได้หลายแบบ
2
3. ตัวอย่าง
การต้ม ไข่ไ ก่
วัตถุดิบ : ไข่ไก่ ผลลัพธ์ : ไข่ต้มสุก
Algorithm 1 Algorithm 2
ต้มนำ้าให้เดือด - ต้มนำ้าให้
ใส่ไข่ เดือด
รอ 10 นาที
- ใส่ไข่
- รอ 5 นาที
ดับไฟ / ปิดเตา
- ดับไฟ / ปิด
ปอกไข่ เตา
4. Algotithm 1 Vs
Algotithm 2
ผลที่ได้เหมือนกันคือ ไข่ต้ม
ผลลัพธ์อัลกอริธึม 1 สามารถทานได้เลย
ส่วนอัลกอริธึม 2 ต้องปอกก่อนทาน
สรุปคือ เราได้ผลลัพธ์ตามที่โจทย์ต้องการ
คือ ไข่ต้ม
7. การวิเคราะห์ปัญหา
กระบวนการทำางานของคอมพิวเตอร์
Input Process Output
องค์ประกอบของงาน
Input , Process , Output
การพิจารณา
ขั้นตอนการทำางานเป็นการนำาเข้า ป้อนเข้าระบบ ถือเป็น
Input
ขั้นตอนเกี่ยวกับการกระทำา(กริยา) ถือเป็น Process
ขั้นตอนการนำาข้อมูลออกจากระบบ แสดงผล ถือเป็น
7
8. Example
เราลองนำาขั้นตอนการต้มไข่มาวิเคราะห์
ต้มนำ้าให้เดือด=> การกระทำา(Process)
ใส่ไข่ => การป้อนข้อมูล(Input)
รอ 10 นาที => การกระทำา(Process)
ดับไฟ => การกระทำา(Process)
ปอกไข่ => การกระทำา(Process)
ไข่ต้มสุก => ผลลัพธ์ (Output)
9. การวิเ คราะห์ป ัญ หา
ข้อมูลทีนำาเข้าสู่ระบบ
่
คอมพิวเตอร์ประกอบด้วย
การวิเคราะห์ปญหา
ั อะไรบ้าง
วิเคราะห์ผลลัพธ์ วิเคราะห์ Process
(Output) Input เขียนขั้นตอนการแก้ปัญหา
งง าน
สง ค์ขอ
ถุประ ธ์
หน ดวัต ผลลัพ
- กำา บบของ
แ
- รูป
9
10. การวิเ คราะห์ป ัญ หา
ตัว อย่า ง ต้อ งการคำา นวณหาพื้น ที่ข อง
สามเหลี่ย มรูป หนึง่
1. วิเ คราะห์ผ ลลัพ ธ์ พื้นที่สามเหลี่ยม
กำา หนดวัต ถุป ระสงค์ การคำานวณหาพื้นที่
สามเหลี่ยม
รูป แบบผลลัพ ธ์
ความยาวฐาน = ………………
ความสูง = ………………
พื้นที่สามเหลี่ยม = ……………
2.กำา หนดข้อ มูล เข้า
1. ความยาวฐาน
2. ความสูง
10
11. การวิเ คราะห์ป ัญ หา
. ขั้น ตอนการประมวลผล
.ป้อนความยาวฐาน
.ป้อนความสูง
.คำานวณพืนที่สามเหลี่ยม จากสูตร
้
นที่สามเหลี่ยม = 1
× ความ ×ความสูง
2 ยาวฐาน
11
12. ตัว อย่า ง อัล กอริธ ึม เพื่อ ทำา การบวก
ราคาโดยใช้เ ครื่อ งคิด เลข
1. เปิดเครื่องคิดเลข
2. พิมพ์ยอดเงิน
3. กดเครื่องหมาย (+)
4. กลับไปที่ข้อ 2 ทำาจนกระทั่งราคาทั้งหมดถูก
พิมพ์เข้าเครื่องและกด
เครื่องหมาย =
5. เขียนยอดรวมราคา
6. ปิดเครื่องคิดเลข
12
13. การวิเ คราะห์อ ัล กอริธ ม เพื่อ ทำา การ
ึ
บวกราคาโดยใช้เ ครื่อ งคิด เลข
1. วิเคราะห์ผลลัพธ์ : ยอดรวมราคา
2. กำาหนดข้อมูลเข้า : ยอดเงิน
3. ขั้นตอนการประมวลผล
3.1 พิมพ์ยอดเงิน
3.2 กดเครื่องหมาย +
3.3 วนการทำางาน
3.4 กดเครื่องหมาย =
3.5 คำานวณยอดรวมราคา
13
14. ตัวอย่าง 4
การโยนเหรียญเสียงทายเพื่อตัดสินใจว่าจะกิน
่
ขนมปังหรือผลไม้ โดยมีเงื่อนไขว่า ถ้าออกหัว
กินขนมปัง ถ้าออกก้อยกินผลไม้
วัตถุดบ : ผลการโยน ผลลัพธ์ : กินอะไร(ผล
ิ
ไม้/ขนมปัง)
1. โยนเหรียญ => การกระทำา
2. ดูเหรียญ => รับข้อมูล
3. ถ้าออกหัว => ไปขั้นตอนที่ 5
4. ถ้าออกก้อย => ไปขั้นตอนที่ 6
5. กินขนมปัง => ไปขั้นตอนที่ 7
6. กินผลไม้ => ไปขั้นตอนที่ 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 Inp Proces Out
ut s put
รับ จำา นวนสิน ค้า และราคา ? ? ?
ราคา = จำา นวนชิ้น *ราคา
พิม พ์ร าคา
STOP
31
32. ตัว อย่า ง โปรแกรมรับ ข้อ มูล
จำา นวนสิน ค้า และราคาสิน ค้า
อัล กอริธ มึ รหัส เทีย ม (Pseudo
1. เริ่ม ต้น ทำา งาน Code)
2. กำา หนดค่า จำา นวน Begin
เงิน ที่ช ำา ระ(Price) Price = 0
เท่า กับ ศูน ย์ Read Amt,
3. รับ ข้อ มูล จำา นวน Cost
สิน ค้า (Amt) และ
ราคา (Cost)
4. คำา นวณจำา นวน Price = Amt x
เงิน ที่ช ำา ระ จาก Cost
Price = Amt x 32
34. ตัว อย่า ง โปรแกรมคำา นวณพื้น ที่
สามเหลีย ม
่
อัล กอริธ ึม รหัส เทีย ม
1. เริ่ม ต้น ทำา งาน
2. กำา หนดค่า พื้น ที่
(Pseudo
สามเหลี่ย ม Code)
(Area) = 0 Begin
3. รับ ข้อ มูล ความ
สูง (Height) และ
ฐาน (Base)
4. คำา นวณพื้น ที่
สามเหลี่ย ม จาก
Area = Height x
Base 34
35. ตัว อย่า ง โปรแกรมคำา นวณพื้น ที่
สามเหลีย ม
่
Flowchart
35
38. งสร้า งแบบเลือ ก (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
42. ตัว อย่า ง โปรแกรมแสดงผลการ
สอบทางหน้า จอ
เงื่อนไข
- ถ้าได้คะแนนสอบ 50
คะแนนขึนไป ให้พิมพ์
้
ข้อความความ ‘You pass’
- ถ้าได้คะแนนตำ่ากว่า 50
คะแนน ให้จบการทำางาน
42
43. ตัว อย่า ง โปรแกรมแสดงผลการ
สอบทางหน้า จอ
START Inp Process Out
ut put
Read Score ? ? ?
Score>=50
Y Print ‘You pass’
N
STOP
44. ตัว อย่า ง โปรแกรมแสดงผลการ
สอบทางหน้า จอ
อัล กอริธ ึม รหัส เทีย ม (Pseudo
1. เริ่ม ต้น ทำา งาน Code)
2. รับ ค่า คะแนน Begin
สอบ(Score) Read Score
3. ถ้า คะแนนสอบ IF Score >=
ตัง แต่ 50 คะแนน
้ 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’ 48
49. ตัว อย่า ง โปรแกรมแสดงผลการ
สอบทางหน้า จอ
START
Read Score
Score>=50
Y
Grade = ‘Pass’
N
Grade = ‘Fail’
Print Grade
STOP
50. ตัว อย่า ง โปรแกรมแสดงผลการ
สอบทางหน้า จอ
อัล กอริธ ึม รหัส เทีย ม (Pseudo
1. เริ่ม ต้น ทำา งาน Code)
2. รับ ค่า คะแนนสอบ Begin
(Score)
Read Score
3. ถ้า คะแนนสอบ
ตัง แต่ 50 คะแนน
้ IF Score >=
ขึ้น ไป ให้ท ำา นิพ จน์ 50
Grade=‘Pass’ ถ้า THEN Grade =
น้อ ยกว่า 50 ‘Pass’
คะแนน ให้ท ำา ELSE Grade =
นิพ จน์ ‘Fail’
Grade=‘Fail’
END IF 50
51. ตัว อย่า ง ให้รับค่า A,B ถ้า A>B ให้หาค่า
ผลต่าง แต่ถ้าไม่ใช่ให้หาค่าผลรวม
ขียน Algorithm, Pseudo code, Flowcha
51
52. 2.2 Flowchart แบบ
หลาย ทางเลือ ก
แบบหลายทางเลือ ก หรือ โครงสร้า ง
เริ่มต้น
ELSE…IF
ใช่
รหัส เทีย ม
F …เงื่อนไข 1….. เงื่อนไข 1 คำาสั่งเมื่อเป็นจริง
THEN …คำาสั่งเมือเป็นจริง..
่ ไม่ใช่
ELSE IF …เงื่อนไข 2….. ใช่
THEN …คำาสั่งเมือเป็นจริง..่อนไข 2
่ เงื คำาสั่งเมือเป็นจริง
่
…. ไม่ใช่
…. เงื่อนไข 3
ELSE …เมือไม่เข้าเงื่อนไขใดๆ
่
จบงาน 52
53. ตัว อย่า ง โปรแกรมประมวล
ผลการเรีย น
เงือ นไข
่
-คะแนนสอบสูง กว่า 80
คะแนน ได้เ กรด A
-คะแนนสอบ 70-79 คะแนน
ขึ้น ไป ได้เ กรด B
-คะแนนสอบ 60-69 คะแนน
ขึ้น ไป ได้เ กรด C
-คะแนนสอบ 50-59 คะแนน 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. หรือ
BC320 Introduction to Computer
Programming 55
56. ตัว อย่า ง โปรแกรมประมวล
ผลการเรีย น
อัล กอริธ ม
ึ รหัส เทีย ม (Pseudo
1.เริ่ม ต้น ทำา งาน Code)
2.รับ ค่า คะแนนสอบ Begin
(Score) READ Score
3.เปรีย บเทีย บคะแนน IF Score >= 80
สอบ>=80 ถ้า เป็น จริง ให้ THEN Grade = ‘A’
ทำา นิพ จน์ Grade=‘A’ ถ้า ELSE IF Score >=70
เป็น เท็จ ให้เ ปรีย บเทีย บ THEN Grade = ‘B’
คะแนนสอบ >=70 ถ้า เป็น ELSE IF Score >=60
จริง ให้ท ำา นิพ จน์ THEN Grade = ‘C’
Grade=‘B’ ถ้า เป็น เท็จ ให้ ELSE IF Score >=50
เปรีย บเทีย บคะแนนสอบ THEN Grade = ‘D’
>=60 ถ้า เป็น จริง ให้ท ำา ELSE Grade = ‘F’
นิพ จน์ Grade=‘C’ ถ้า เป็น WRITE Grade 56
57. - ถ้าซือสินค้า 0-100 บาท ได้
้
ส่วนลด 5 บาท
- ถ้าซือสินค้า 101-200 บาท ได้
้
ส่วนลด 10 บาท
- ถ้าซือสินค้าเกิน 200 บาท ได้
้
ส่วนลด 20 บาท
โดยแสดงผลลัพธ์เป็นยอดเงินที่
ลูกค้าต้องชำาระ
57
58. ตัว อย่า ง คำานวณหายอดเงินที่ลูกค้าต้องชำาระ
โดยตรวจสอบจากราคาสินค้า
อัล กอริธ ึม รหัส เทีย ม (Pseudo
1.เริ่ม ต้น ทำา งาน Code)
2.รับ ค่า ราคาสิน ค้า Begin
(price)
3.เปรีย บเทีย บราคา
สิน ค้า <=100 ถ้า เป็น
จริง ให้ท ำา นิพ จน์
price=price-5 ถ้า เป็น
เท็จ ให้เ ปรีย บเทีย บ
ราคาสิน ค้า <=200 ถ้า
เป็น จริง ให้ท ำา นิพ จน์ End
price=price-10 ถ้า 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
การทำา งานของ
การแสดงค่า ตัว numb
เลข er = 1
NO
ตั้ง แต่เ ลข 1 ถึง While
number <=
YES
เลข 5 โดยใช้ 5
Print
While number
number =
number+1
END
64. ตัว อย่า ง โปรแกรมแสดงเลข
1-5
อัล กอริธ ึม รหัส เทีย ม (Pseudo
1. เริ่ม ต้น ทำา งาน Code)
2. กำา หนดค่า เริ่ม ต้น Begin
ตัว เลข Number=1
Number = 1
3. ถ้า Number ยัง
น้อ ยกว่า หรือ While
เท่า กับ 5 ให้พ ม พ์
ิ Number <= 5
ค่า ของ Number {
และให้เ พิม ค่า
่ Write
Number ครั้ง ละ 1 Number
ค่า แต่ถ ้า เป็น เท็จ
ให้อ อกจากการ
Number=Numb 64
65. 3.1 Flowchart แบบวนลูป ชนิด
While Loop
START
ตัวอย่าง โปรแกรมบวก
เลข 1 ถึง 5 number =
Sum = 1+2+3+4+5 1 , Sum=0
NO
While
เงือ นไขใน
่ number <=
YES
5
Sum =
การหยุด ? Sum+numb
er
number =
number+1
Print
Sum
END
66. ตัว อย่า ง โปรแกรมแสดงผลบวก
เลข 1-5
อัล กอริธ ึม รหัส เทีย ม (Pseudo
1. เริ่ม ต้น ทำา งาน Code)
2. กำา หนดค่า เริ่ม ต้น Begin
ตัว เลข Number=1
และผลรวม
Sum=0
3. ถ้า Number ยัง
น้อ ยกว่า หรือ
เท่า กับ 5 ให้บ วก
ค่า ของ Number
เก็บ ไว้ท ี่ Sum วน End
รอบจนกว่า 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”
ข้อ มูล เข้า คือ กำา หนดค่า เริ่ม ต้น ของตัว เลข
69
70. START
ตัว อย่า ง แสดง numb
การทำา งานของ er = 1
การแสดงค่า ตัว
เลข Print
ตั้ง แต่เ ลข 1 ถึง number
เลข 5 โดยใช้ number =
number+1
Do-While YES
While
numberNO <=
5
Display
“I love URU”
END
71. ตัว อย่า ง โปรแกรมแสดงเลข
1-5
อัล กอริธ ึม รหัส เทีย ม (Pseudo
1. เริ่ม ต้น ทำา งาน Code)
2. กำา หนดค่า เริ่ม ต้น Begin
ตัว เลข number=0
number = 0
3. เพิ่ม ค่า number ที
ละ 1 ค่า Do
number=number {
+1 และให้พ ิม พ์ค ่า number =
ของ number number+1
4. ถ้า ค่า ของ number write Number
ยัง น้อ ยกว่า หรือ }
เท่า กับ 5 ให้ท ำา ข้อ
While number 71
72. 3.2 Flowchart แบบวนลูป
ชนิด Do-While
ตัว อย่า ง จงเขีย นผัง งานแสดงการทำา งานของการ
แสดงการบวกเลข 1-10
วิเ คราะห์
เงือ นไขในการหยุด
่ แสดงตัว เลขมากกว่า
10
ผลลัพ ธ์ คือ ผลรวมของการบวกเลข 1-10
ข้อ มูล เข้า คือ กำา หนดค่า เริ่ม ต้น ของตัว เลข
จำา นวนเต็ม บวก และผลรวมการบวก
การประมวลผล
บวกค่า เลขจำา นวนเต็ม บวก
ตรวจสอบค่า ของเลขจำา นวนเต็ม บวก <= 10
วนรอบจนกว่า เงือ นไขจะเป็น เท็จ
่ 72
73. 3.2 Flowchart แบบวนลูป ชนิด
Do-While
ตัวอย่าง โปรแกรมบวก
START
เลข 1 ถึง 10
Sum =
i=0 , Sum=0
1+2+3+4+5+6+7+8
+9+10 นไขใน
เงือ่ i = i+1
การหยุด ? Sum=Sum+i
จริง เท็จ
i<=10 Print Sum
STOP
74. ตัว อย่า ง โปรแกรมแสดงผลบวก
1-10
อัล กอริธ ึม รหัส เทีย ม (Pseudo
1. เริ่ม ต้น ทำา งาน Code)
2. กำา หนดค่า เริ่ม ต้น
ตัว เลข i=0 และผล
Begin
รวม sum=0
3. เพิ่ม ค่า i ทีล ะ 1 ค่า
i=i+1 และหาผล
รวมของการบวก
sum=sum+i
4. ถ้า i ยัง น้อ ยกว่า
หรือ เท่า กับ 10 ให้
ทำา ข้อ 3 ไปเรื่อ ยๆ
End
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
77
78. 3.3 Flowchart แบบวนลูป
ชนิด For
START
ตัว อย่า ง แสดงการ
ทำา งานของการ i=1
แสดงค่า ตัว เลข
ตั้ง แต่เ ลข 1 ถึง เลข
10 Print
ถ้า แสดงตัว เลขครบ for i NO “Very
แล้ว ให้แ สดง <= YES
10 Good”
ข้อ ความว่า “Very Displa
Good” yi
i = i+1
END 78
79. ตัว อย่า ง โปรแกรมแสดงผลบวก
1-10
อัล กอริธ ึม รหัส เทีย ม (Pseudo
1. เริ่ม ต้น ทำา งาน Code)
2. กำา หนดค่า เริ่ม ต้น
ตัว เลข i=1
Begin
3. ถ้า i ยัง น้อ ยกว่า i=1
หรือ เท่า กับ 10 ให้ for i<=10
พิม พ์ค ่า i และเพิม่ {
ค่า i ทีล ะ 1 ค่า Write i
i=i+1 i=i+1
4. ทำา ข้อ 3 ไปเรื่อ ยๆ }
จนกว่า ค่า ของ i จะ
เป็น เท็จ
Write “Very
Good” 79
80. ตัว อย่า ง กำาหนดให้โปรแกรมแสดงคำาว่า
“Hello” จำานวน 50 ครั้ง เมือแสดงครบ
่
แล้วให้แสดงคำาว่า “Good buy”
ขียน Algorithm, Pseudo code, Flowcha
80
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โปรแกรมแสดงยอดขายของร้านค้าแห่งหนึง
่
86. แบบฝึก หัด
1.5 โปรแกรมแสดงขนาดของการใช้ยาตาม
อายุของผูใช้
้
อายุมากกว่า 10 ปี แสดงข้อความรับประทาน
ครั้งละ 3 ช้อนชา
อายุ 6-10 ปี แสดงข้อความรับ
ประทานครั้งละ 2 ช้อนชา
อายุ 2-5 ปี แสดงข้อความรับ
ประทานครั้งละ 1 ช้อนชา
เด็กอายุตำ่ากว่า 1 ปี ห้ามรับประทาน
86
87. แบบฝึก หัด
2. จงเขียน Flowchart สำาหรับวนรอบรับค่าตัว
เลข แล้วแสดงค่าตัวเลขที่รับเข้ามาออกทาง
จอภาพ โดยที่เมื่อรับค่าตัวเลขเป็น -999 จะ
สินสุดการวนรอบและจบโปรแกรม
้
3. จงเขียน Flowchart สำาหรับวนรอบรับค่าตัว
เลข และในระหว่างรับให้หาผลรวมของ
ตัวเลขที่รับเข้ามา โปรแกรมจะหยุดรับค่าเมื่อ
ใส่ตัวเลข -999 และจะแสดงผลรวมของ
ตัวเลขทั้งหมดที่รับเข้ามาและหยุดทำางาน
87