การจำลองความคิด

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