การจำลองความคิด
Download
Report
Transcript การจำลองความคิด
หลักการแก้ปัญหา
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
สาขาคอมพิวเตอร์และเทคโนโลยี
1
กระบวนการในการแก้ ปัญหา
หากเรานาวิธีการแก้ปัญหาต่างวิธีน้ น
ั มาวิเคราะห์ให้ดี
จะพบว่า
สามารถสรุ ปวิธีการเหล่านั้นเป็ นทฤษฎีซ่ ึงมีรูปแบบที่แน่นอนได้
และบางครั้งต้องอาศัยการเรี ยนรู ้ในระดับสูงเพื่อแก้ปัญหาบางอย่าง
ให้สมบูรณ์แบบ
จากการศึกษาพฤติกรรมในการเรี ยนรู ้และแก้ปัญหาของมนุ ษย์พบว่า
โดยปกติมนุษย์มีกระบวนการในการแก้ปัญหา ซึ่งประกอบด้วย 4
ขั้นตอน
สาขาคอมพิวเตอร์และเทคโนโลยี
2
กระบวนการในการแก้ ปัญหา
ขั้นตอนที่ 1
การวิเคราะห์ และกาหนดรายละเอียดของปัญหา
(State the problem)
ขั้นตอนที่ 2
การเลือกเครื่องมือและออกแบบขั้นตอนวิธี
(Tools and Algorithm development)
ขั้นตอนที่ 3
การดาเนินการแก้ ปัญหา
(Implementation)
ขั้นตอนที่ 4
การตรวจสอบและปรับปรุง
(Refinement)
สาขาคอมพิวเตอร์และเทคโนโลยี
3
การวิเคราะห์ และกาหนดรายละเอียดของปั ญหา
•
•
•
การระบุข้อมูลเข้ า (input)
ได้แก่ การพิจารณาข้อมูลและเงื่อนไขที่กาหนดมาในปั ญหา
การระบุข้อมูลออก (output)
ได้แก่ การพิจารณาสิ่ งที่ตอ้ งหาคาตอบ
การกาหนดวิธีประมวลผล (processing)
ได้แก่ การพิจารณาขั้นตอนวิธีหาคาตอบหรื อข้อมูลออก
สาขาคอมพิวเตอร์และเทคโนโลยี
4
การวิเคราะห์ และกาหนดรายละเอียดของปั ญหา
ตัวอย่ าง 1 แสดงวิธีการวิเคราะห์และกาหนดรายละเอียดของการหา
ค่าเฉลี่ยของจานวนเต็ม 5 จานวน
การระบุข้อมูลเข้ า
จานวนเต็ม 5 จานวน
การระบุข้อมูลออก
ค่าเฉลี่ยของจานวนเต็ม 5 จานวน
การกาหนดวิธีการประมวลผล
1) รับค่าจานวนเต็ม 5 จานวน
2) นาจานวนเต็ม 5 จานวนมาบวกกัน
3) นาผลลัพธ์จากข้อ 2) มาหารด้วย 5
สาขาคอมพิวเตอร์และเทคโนโลยี
5
การวิเคราะห์ และกาหนดรายละเอียดของปั ญหา
ตัวอย่ าง 2 แสดงวิธีการวิเคราะห์และกาหนดรายละเอียดของการหา
พื้นที่สี่เหลี่ยมผืนผ้า
การระบุข้อมูลเข้ า
ความกว้างและความยาวด้าน
การระบุข้อมูลออก
พื้นที่สี่เหลี่ยมผืนผ้า
การกาหนดวิธีการประมวลผล
1) รับค่าความกว้างและความยาวด้าน
2) พื้นที่สี่เหลี่ยมผืนผ้า = ความกว้าง x ความยาว
สาขาคอมพิวเตอร์และเทคโนโลยี
6
การจาลองความคิด
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
สาขาคอมพิวเตอร์และเทคโนโลยี
7
การจาลองความคิด
ขั้นตอนที่สาคัญในการแก้ปัญหาคือการวางแผน การวางแผนที่ดีจะ
ช่วยให้การแก้ปัญหาเป็ นไปได้โดยง่าย
การจาลองความคิดออกมาเป็ นข้อความ หรื อแผนภาพจะช่วยให้
สามารถแก้ปัญหาได้ดี โดยเฉพาะปัญหาที่ยงุ่ ยากซับซ้อน
เป็ นการแสดงแบบหรื อขั้นตอนเพื่อให้ผท
ู ้ ี่เกี่ยวข้องได้เข้าใจและ
สามารถปฏิบตั ิตามในแนวทางเดียวกัน
สาขาคอมพิวเตอร์และเทคโนโลยี
8
เครื่ องมือที่ใช้
1. ข้ อความหรือคาบรรยาย (Pseudo code)
เขียนเค้าโครงด้วยการบรรยายเป็ นภาษาที่มนุษย์ใช้สื่ อสารกัน
เพื่ อ ให้ ท ราบถึ ง ขั้น ตอนการท างานของการแก้ปั ญ หาแต่ ล ะตอน
ในบางครั้งอาจใช้คาสั่งของภาษาที่ใช้เขียนโปรแกรมก็ได้
2. สั ญลักษณ์ หรือ ผังงาน (Flowchart)
สถาบันมาตรฐานแห่งชาติอเมริ กา (The American National
Standard Institute หรื อ ANSI) ได้กาหนดสัญลักษณ์ไว้เป็ นมาตรฐาน
สาขาคอมพิวเตอร์และเทคโนโลยี
9
หลักทั่วไปในการเขียน Pseudo code
• สัญลักษณ์ที่ใช้ในการดาเนินการทางคณิ ตศาสตร์ +, -, *, /
• ใช้ชื่อข้อมูล/ตัวแปร แทนจานวนที่จะถูกดาเนินการ เช่น รับค่าความ
สูง x, a + b
• การกาหนดค่าให้กบั ชื่อข้อมูล/ตัวแปร จะใช้เครื่ องหมายเท่ากับ =
หรื อลูกศร ← เช่น x = a + b, x ← a + b
• อาจใช้คาว่า read ในการบอกให้รับค่าเก็บไว้ในตัวแปร เช่น
read x
• ควรมีการเพิ่มหรื อลดระยะของย่อหน้า
สาขาคอมพิวเตอร์และเทคโนโลยี
10
Pseudo code
ตัวอย่าง
การวางแผนการไปโรงเรียน
เริ่มต้ น
ตื่นนอน
อาบนา้
ไปโรงเรียน
จบ
การหาผลบวกของเลขจานวนเต็ม 2 ตัวแล้ ว
แสดงผลลัพธ์ ออกทางจอภาพ
เริ่มต้ น
รับค่ าจานวนเต็มเก็บไว้ ใน x
รับค่ าจานวนเต็มเก็บไว้ ใน y
c ←x+y
แสดงค่ า C
จบ
สาขาคอมพิวเตอร์และเทคโนโลยี
11
Flowchart
แบ่งเป็ น 2 ประเภท
1. ผังงานระบบ (System Flowchart)
2. ผังงานโปรแกรม (Program Flowchart)
สาขาคอมพิวเตอร์และเทคโนโลยี
12
Flowchart
สัญลักษณ์
ชื่อเรียก
ความหมาย
เริ่ มต้นและลงท้าย
(terminal)
แทนจุดเริ่ มต้นและลงท้ายของผังงานของโปรแกรมหลักและ
โปรแกรมย่อย
การนาข้อมูลเข้า – ออกโดยทัว่ ไป
(general input/output)
แทนจุดที่จานาข้อมูลเข้าหรื อออกจากระบบคอมพิวเตอร์โดยไม่
ระบุชนิดของอุปกรณ์
การตัดสิ นใจ
(decision)
แทนจุดที่จะต้องเลือกปฏิบตั ิอย่างใดอย่างหนึ่ง
การปฏิบตั ิงาน
(process)
แทนจุดที่มีการปฏิบตั ิงานอย่างใดอย่างหนึ่ง
จุดเชื่อมต่อ
(connector)
แทนจุดเชื่อมต่อของผังงานเมื่อใช้สัญลักษณ์เพื่อให้ดูง่าย
จุดเชื่อมต่อหน้ากระดาษ
(off page connector)
แทนจุดเชื่อมต่อของผังงานที่อยูค่ นละหน้ากระดาษ
ทิศทาง
(flow line)
แทนทิศทางขั้นตอนการดาเนินงานซึ่งจะปฏิบตั ิต่อเนื่องกันตาม
หัวลูวเตอร์
กศรชี
้
สาขาคอมพิ
และเทคโนโลยี
13
System Flowchart
สาขาคอมพิวเตอร์และเทคโนโลยี
14
Program Flowchart
ตัวอย่าง
เริ่ มต้น
การวางแผนการไปโรงเรียน
ตื่นนอน
เริ่มต้ น
ตื่นนอน
อาบนา้
ไปโรงเรียน
จบ
อาบน้าแต่งตัว
ไปโรงเรียน
จบ
สาขาคอมพิวเตอร์และเทคโนโลยี
15
โครงสร้ างแบบลาดับ
Sequential structure
โครงสร้ า งแสดงขั้น ตอน
การท างานที่ เ ป็ นไปตามล าดั บ
ก่อนหลัง และแต่ละขั้นตอนจะถูก
ประมวลผลเพียงครั้งเดียวเท่านั้น
คาสังที
่ ่1
คาสังที
่ ่2
คาสังที
่ ่n
สาขาคอมพิวเตอร์และเทคโนโลยี
16
โครงสร้ างแบบลาดับ
Sequential structure
ผังงานการหาพืน้ ที่วงกลม
start
Input radius
area = 22/7*radius*radius
สั งเกตว่ าแต่ ละขั้นตอนจะถูก
ประมวลผลเพียงครั้งเดียวเท่ านั้น
Display area
end
สาขาคอมพิวเตอร์และเทคโนโลยี
17
โครงสร้ างแบบลาดับ
Sequential structure
start
Input A
Input B
การหาผลบวกของเลขจานวนเต็ม
2 ตัว แล้ วแสดงผลลัพธ์ ออกทาง
จอภาพ
C=A+B
Display C
end
สาขาคอมพิวเตอร์และเทคโนโลยี
18
โครงสร้ างแบบลาดับ
Sequential structure
1.
2.
3.
4.
จงเขียนผังงานการหาพื้นที่สี่เหลี่ยมใดๆ แล้วแสดงผลลัพธ์ที่ได้
จงเขียนผังงานการหาพื้นที่ผวิ ทรงกระบอก แล้วแสดงผลลัพธ์ที่ได้
จงเขียนผังงานรับเลข 3 ค่า แล้วแสดงค่าเฉลี่ยออกมา
จงเขียนผังงานรับจานวนเต็ม 2 ค่าแล้วแสดงผลค่าที่มากที่สุด
สาขาคอมพิวเตอร์และเทคโนโลยี
19
โครงสร้ างแบบมีทางเลือก
Selection structure
โ ค ร ง ส ร้ า ง ที่ มี เ งื่ อ น ไ ข
ขั้นตอนการทางานบางขั้นตอนต้องมี
ก า ร ตั ด สิ น ใ จ เ พื่ อ เ ลื อ ก วิ ธี ก า ร
ประมวลผลขั้นต่อไป
การตัดสิ นใจอาจมีทางเลือ ก
2 ทางหรื อมากกว่าก็ได้
เงื่อนไข
เท็จ
จริง
คาสัง่
คาสัง่
การทางานของโครงสร้างแบบมีทางเลือก if…then…else
สาขาคอมพิวเตอร์และเทคโนโลยี
20
โครงสร้ างแบบมีทางเลือก
Selection structure
ถ้า input a = 5, b = 3
start
ผลลัพธ์ที่ได้คือ
5
Input a, b
ถ้า input a = 4, b = 7
a>b
ผลลัพธ์ที่ได้คือ
no
yes
Display a
end
7
ถ้า input a = 8, b = 8
Display b
ผลลัพธ์ที่ได้คือ
8
ผังงานรั
บวจเตอร์านวนเต็
สาขาคอมพิ
และเทคโนโลยีม 2 ค่าแล้วแสดงผลค่าที่มากที่สุด21
โครงสร้ างแบบมีทางเลือก
Selection structure
1. จงเขียนผังงานรับจานวนเต็ม 3 ค่าแล้วแสดงผลค่าที่มากที่สุด
2. จงเขียนผังงานแสดงเกรดของนักเรี ยนคนหนึ่งจากคะแนนสอบ(เต็ม 100)
คะแนน
80 - 100
ได้เกรด
A
คะแนน
70 - 79
ได้เกรด
B
คะแนน
60 - 69
ได้เกรด
C
คะแนน
50 - 59
ได้เกรด
D
คะแนน
0 - 49
ได้เกรด
F
สาขาคอมพิวเตอร์และเทคโนโลยี
22
โครงสร้ างแบบมีทางเลือก
Selection structure
เงื่อนไข
กรณี ที่ 1
คาสัง่
กรณี ที่ 2
คาสัง่
กรณี ที่ 3
คาสัง่
...
คาสัง่
การทางานของโครงสร้ างแบบมีทางเลือก case
สาขาคอมพิวเตอร์และเทคโนโลยี
23
โครงสร้ างแบบทาซ้า
Repetition structure
โครงสร้างที่ข้ นั ตอนการทางานบางขั้นตอนได้รับการประมวลผลมากกว่า 1 ครั้ง
ทั้งนี้ข้ ึนอยูก่ บั เงื่อนไขบางประการ มี 2 ลักษณะ ได้แก่
1. การทาซ้าแบบ for และ while
ตรวจสอบเงื่อนไขในการทาซ้ าทุกครั้ งก่ อนดาเนิ นการกิ จกรรมใดๆ
ถ้าเงื่อนไขเป็ นจริ งจะทางานซ้ าไปเรื่ อยๆ
หยุดเมื่อเงื่อนไขเป็ นเท็จ
2. การทาซ้าแบบ do while
ตรวจสอบเงื่อนไขในการทาซ้ าทุกครั้งหลังจากดาเนิ นการกิจกรรมใดๆ
ถ้าเงื่อนไขเป็ นจริ งจะทางานซ้ าไปเรื่ อยๆ
หยุดเมื่อเงื่อนไขเป็ นเท็จ
สาขาคอมพิวเตอร์และเทคโนโลยี
24
โครงสร้ างแบบทาซ้า
Repetition structure
คาสั่ ง
คาสั่ ง
เงื่อนไข
คาสั่ ง
คาสั่ ง
จริง
เท็จ
การทางานของการทาซ้าแบบ for และ while
จริง
เงื่อนไข
เท็จ
การทางานของการทาซ้าแบบ do while
สาขาคอมพิวเตอร์และเทคโนโลยี
25
โจทย์
• รับค่ า n จากผู้ใช้ แล้ วหาค่ า n!
เช่ น
input n = 3
output = 6
หรือ
input n = 0
output = 1
หรือ
input n = -5
output = error
สาขาคอมพิวเตอร์และเทคโนโลยี
26