หลัก แก้ - BlogKruNanผังงาน (Flowchart) S tart E n d In put H ig h, R...

30
หลัก การ แก้ ปัญหา

Transcript of หลัก แก้ - BlogKruNanผังงาน (Flowchart) S tart E n d In put H ig h, R...

หลักการแก้

ปัญหา

พื้นฐานการแกป้ญัหาด้วยคอมพิวเตอร์

Introduction to

Problem Solving

บทที่ 1

จุดประสงค์การเรียนรู ้

1.เพื่อให้นักเรียนเข้าใจหลักการแก้ปัญหาด้วยคอมพิวเตอร์ 2. เพื่อให้นักเรียนสามารถเขียนขั้นตอนการแก้ปัญหา โดยใช้ผังงานได้

พื้นฐานการแกป้ัญหาดว้ยคอมพวิเตอร์

การท างานของเครื่องคอมพิวเตอร์จะท าตามโปรแกรมที่เขียนขึ้นมาทุกประการ ดังนั้น การน าเครื่องคอมพิวเตอร์มาช่วยส าหรับการแก้ปัญหาจึงจ าเป็นต้องมีโปรแกรมส าหรับการแก้ปัญหานั้น เพื่อสั่งให้เครื่องคอมพิวเตอร์ท างานตามต้องการ ผู้ที่ท าการเขียนโปรแกรมจึงต้องทราบถึงวิธีการของการแก้ปัญหาที่ต้องการแก้ไขปัญหานั้นทุกขั้นตอน จากนั้นจึงน ามาเรียบเรียงเป็นล าดับขั้นตอนวิธีการท างานตั้งแต่ขั้นตอนแรกจนถึงขั้นตอนสุดท้าย แล้วน าขั้นตอนวิธีที่ได้เรียบเรียงนั้น มาเขียนเป็นโปรแกรมคอมพิวเตอร์ต่อไป

2.1 ขั้นตอนการน าคอมพวิเตอร์มาใช้ในการแก้ปัญหา

ขั้นตอนของการวิเคราะห์ปัญหาส าหรับเตรียมการก่อนลงมือเขียน

โปรแกรมคอมพิวเตอร์ ม ี5 ขั้นตอนดังนี้ การท าความเข้าใจกับปัญหา (State the problem clearly) การพิจารณาลักษณะของข้อมูลเข้าและข้อมูลออก

(Describe the input and output) การทดลองแก้ไขปัญหาด้วยตนเอง (Work the problem by hand for a specific

set of data)

2.1 ขั้นตอนการน าคอมพวิเตอร์มาใช้ในการแก้ปัญหา

การเขียนขั้นตอนวิธีการแก้ปัญหา (Develop an algorithm that is

general in nature) เขียนล าดับขั้นตอนวิธีการท างานทั้งหมดอย่างย่อ

เขียนล าดับขั้นตอนวิธีการท างานอย่างละเอียด วิธีการเขียนล าดับขั้นตอนวิธ ี

Pseudo code เขียนขั้นตอนวิธีด้วยภาษาที่ใกล้เคียงภาษาคอมพิวเตอร ์

Flowcharts เขียนขั้นตอนวิธีด้วยรูปภาพผังงาน

การทดสอบขั้นตอนวิธีการแก้ปัญหา (Test the algorithm with a variety of

data sets)

2.1 ขั้นตอนการน าคอมพวิเตอร์มาใช้ในการแก้ปัญหา ตัวอยา่ง ขั้นตอนวิธีการแก้ปัญหาด้วยคอมพิวเตอร์

จงเขียนขั้นตอนวิธีการแก้ปัญหาส าหรับการหาปริมาตรทรงกระบอก โดยรับข้อมูลของความสูง และรัศมีของวงกลมที่เป็นฐานของทรงกระบอก จากนั้นแสดงค่าของปริมาตรทรงกระบอกที่ค านวณได้

ปริมาตรทรงกระบอก = x r2 x h

hr

2.1 ขั้นตอนการน าคอมพวิเตอร์มาใช้ในการแกป้ญัหา

ขั้นตอนที ่1 ท าความเข้าใจกับปัญหา การค านวณหาปริมาตรของรูปทรงกระบอก

ขั้นตอนที ่2 ลักษณะของข้อมูลเข้าและข้อมูลออก ข้อมูลเข้า คือ ความสูงของทรงกระบอก และรัศมีของวงกลมที่เป็นฐานของ

ทรงกระบอก ชนิดของข้อมูลเข้าความสูง และรัศมีของวงกลมที่เป็นฐานของ

ทรงกระบอกเป็นข้อมูลชนิดตัวเลข

ข้อมูลออก คือ ค่าของปริมาตรทรงกระบอก ชนิดของข้อมูลเป็นข้อมูลตัวเลข

เป็นตัวเลขจ านวนเต็มหรือตัวเลขทศนิยมขึ้นอยู่กับวิธีการหาค าตอบ

2.1 ขั้นตอนการน าคอมพิวเตอรม์าใชใ้นการแก้ปัญหา

ขั้นตอนที ่3 ทดลองแก้ไขปัญหาด้วยตนเอง

การค านวณหาปริมาตรทรงกระบอก หาได้จากสูตร

ปริมาตรทรงกระบอก = x รัศมี ยกก าลัง 2 x ความสูง

ถ้า รัศมีของฐาน = 5 หน่วย

ความสูง = 12 หน่วย

ปริมาตรทรงกระบอก= 3.14159 x 52 x 12

= 942.48 หน่วย3

2.1 ขั้นตอนการน าคอมพวิเตอร์มาใช้ในการแกป้ญัหา

ขั้นตอนที ่4 การพัฒนาล าดับขั้นตอนวิธีการแก้ปัญหา เขียนอธิบายขั้นตอนวิธีการท างานทั้งหมดอย่างย่อ

1. เริ่มต้น 2. รับค่าความสูง และรัศมีของฐานทรงกระบอก

3. ค านวณค่าปริมาตรทรงกระบอก * รัศมีของฐาน2 * ความสูง

4. แสดงค่าของปริมาตรทรงกระบอก 5. จบการท างาน เขียนอธิบายขั้นตอนวิธีการท างานอย่างละเอียด

การค านวณหาปริมาตรของทรงกระบอก การแก้ปัญหาไม่ได้ซับซ้อนมาก สามารถอธิบายแบบอย่างย่อและได้ครบทุกขั้นตอน

2.1 ขั้นตอนการน าคอมพวิเตอร์มาใช้ในการแก้ปัญหา

ขั้นตอนที ่4 การพัฒนาล าดับขั้นตอนวิธีการแก้ปัญหา รหัสเทียม (Pseudo Code)

1. Begin 2. Read High, Radius เครื่องคอมพิวเตอร์จะรอรับข้อมูล 2 ค่า คือ ความสูงและรัศมีของฐาน

3. Volume 3.14159 * Radius2 * High ค านวณหาค่าปริมาตรตามสูตรและเก็บผลลัพธ์ไว ้

4. Write Volume แสดงผลลัพธ์ของปริมาตรทรงกระบอกที่ได้ 5. End

2.1 ขั้นตอนการน าคอมพิวเตอร์มาใช้ในการแก้ปัญหา

ขั้นตอนที ่4 การพัฒนาล าดับขั้นตอนวิธีการแก้ปัญหา ผังงาน (Flowchart)

Start

End

Input High, Radius

Volume 3.14159 * Radius2 * High

Output Volume

2.1 ขั้นตอนการน าคอมพวิเตอร์ มาใช้ในการแก้ปัญหา ขั้นตอนที ่5 การทดสอบขั้นตอนวิธีการแก้ปัญหา

1. Begin เป็นส่วนของการบอกการเริ่มต้นของขั้นตอน

2. Read High, Radius เครื่องคอมพิวเตอร์จะรอรับข้อมูล 2 ค่า ป้อนค่า ความสูง = 12 และรัศมีของฐาน = 5

3. Volume 3.14159 * Radius2 * High ค านวณหาค่าปริมาตรตามสูตร = 3.14159 * 52 *

12 = 942.48 ลูกบาศก์หน่วย 4. Write Volume แสดงค่าของปริมาตรทรงกระบอกที่ค านวณได้ คือ

942.48 ลูกบาศก์หน่วย 5. End เป็นส่วนของการบอกการสิ้นสุดของขั้นตอนทั้งหมด

จากการทดสอบตามล าดับขั้นตอนวิธีการท างานท างานได้อย่างถูกต้อง

2.2 ผังงาน

ผังงาน คือ การเขียนอธิบายขั้นตอนวิธีการท างานในลักษณะของรูปภาพ

ประโยชน์ของผังงาน

ใช้ส าหรับช่วยในการพัฒนาล าดับขั้นตอนวิธีการแก้ปัญหา เนื่องจาก

ผังงานเป็นการอธิบายขั้นตอนวิธีการท างานในลักษณะของรูปภาพ ท าให้

สามารถเห็นล าดับของขั้นตอนวิธีการท างานได้ชัดเจนกว่าการอธิบายขั้น ตอนวิธี การท างานในลักษณะของข้อความ

Start

End

Input High, Radius

Volume 3.14159 * Radius2 * High

Output Volume

2.2 ผังงาน สัญลักษณ์ส าหรับการเขียนผังงาน

จุดเริ่มต้น และจุดสิ้นสุดของผังงาน

การก าหนดค่า การค านวณ และการประมวลผล

5N22 BAX

Start End

2.2 ผังงาน สัญลักษณ์ส าหรับการเขียนผังงาน

การรับข้อมูลเข้า และการน าข้อมูลออก

การรับข้อมูลเข้าทางแป้นพิมพ์

Read A, B Write Ans

A, B

2.2 ผังงาน

สัญลักษณ์ส าหรับการเขียนผังงาน การแสดงผลข้อมูลออกทางจอภาพ

การแสดงผลข้อมูลออกทางเครื่องพิมพ์

ANS

ANS

2.2 ผังงาน สัญลักษณ์ส าหรับการเขียนผังงาน

การติดต่อกับอุปกรณ์ที่เป็นการเข้าถึงข้อมูลแบบล าดับ

การติดต่อกับอุปกรณ์ที่เป็นการเข้าถึงข้อมูลแบบตรง

X > 15Y N

2.2 ผังงาน สัญลักษณ์ส าหรับการเขียนผังงาน

การตัดสินใจ

การแสดงทิศทางการท างานของผังงาน

X A2+B2

Read A, B

2.2 ผังงาน

สัญลักษณ์ส าหรับการเขียนผังงาน จุดต่อภายในหน้าเดียวกัน

จุดต่อระหว่างหน้า

1 1

1 1

2.2 ผังงาน ลักษณะการเขียนผังงาน

ทุกผังงานต้องมีจุดเริ่มต้นและจุดสิ้นสุดเพียงอย่างละหนึ่งแห่งเท่านั้น

ทุกสัญลักษณ์ของผังงานต้องมีลูกศรช้ีทิศทางเข้า และลูกศรชีท้ิศทางออกอย่างละหนึ่งลูกศร ยกเว้นสัญลักษณ์จุดเริ่มต้น จุดสิ้นสุด การตัดสินใจ และ จุดต่อ

สัญลักษณ์จุดเริ่มต้นมีเฉพาะลูกศรชี้ทิศทางออก สัญลักษณ์จุดสิ้นสุดมีเฉพาะลูกศรชี้ทิศทางเข้า

สัญลักษณ์การตัดสินใจมีลูกศรชี้ทิศทางเข้า 1 ทิศทาง มีลูกศรชี้ทิศทางออก 2 ทิศทาง

2.2 ผังงาน ลักษณะการเขียนผังงาน

ทิศทางของล าดับขั้นตอนการท างาน นิยมเขียนจากบนลงล่างหรือจากซ้ายไปขวา

เส้นของลูกศรที่ใช้บอกทิศทางของล าดับขั้นตอนวิธีการท างาน ไม่ควรเขียนตัดกันหรือทับกัน

ไม่ควรเขียนเส้นของลูกศรเพื่อท าการเชื่อมโยงล าดับขั้นตอนที่อยู่ห่างกันมาก หากจ าเป็นควรใช้สัญลักษณ์จุดต่อแทน

การเขียนผังงานส่วนของการก าหนดค่า หรือการค านวณค่า นิยมใช้เครื่อง หมายลูกศร () แทนการใช้เครื่องหมายเท่ากับ

2.2 ผังงาน ตัวอย่างผังงาน

START

Input

Celcius

Fahrenheit (Celsius*9/5) + 32

write

Fahrenheit

END

Start

ANS 0

Read N

N > 0

ANS ANS + N

N < 0

Write Ans

End

N Y

N Y

2.3 ลักษณะโครงสร้างผงังาน การเขียนผังงานใช้ส าหรับช่วยในการเขียนล าดับของขั้นตอนวิธี การแก้ ปัญหา หลังจากเขียนผังงานที่ใช้ส าหรับแก้ปัญหาเรียบร้อยแล้ว ขั้นตอนต่อไป คือการเปลี่ยนจากผังงาน ให้เป็นขั้นตอนวิธีในลักษณะของข้อความ จากนั้นท าการเขียนเป็นรหัสเทียม และโปรแกรมต่อไป

ลักษณะโครงสร้างผังงานที่สามารถน าไปเขียนเป็นขั้นตอนวิธีการท างาน และรหัสเทียม สามารถเขียนได้ 3 ลักษณะดังนี้คือ

1. การท างานแบบล าดับ 2. การท างานแบบเลือกท า 3. การท างานแบบท าซ้ า

2.3 ลักษณะโครงสร้างผังงาน 1. การท างานแบบล าดับ ตัวอย่างผังงานดังนี้ 2. การท างานแบบเลือกท า ตัวอย่างผังงานดังนี ้

3. การท างานแบบท าซ้ า ตัวอย่างผังงานดังนี้

Start

Read a,b

Write x

End

22 bax a > 0Y N

Start

Read a

15*ax )15(* ax

Write x,a

End

5 aa

a a + 1

a < 10Y

N

Start

Write a End

a 1

a < 10 YN

Start

End

1a

Write a

1 aa

1 2 3

2.3 ลักษณะโครงสร้างผังงาน โครงสรา้งผงังานการท างานแบบล าดบั เป็นลักษณะโครงสร้างพื้นฐานของผังงานทุกผังงาน

การท างานของโครงสร้างผังงานแบบล าดับจะท างานที่ละขั้นตอน

ล าดับการท างานของผังงานจะท างานตามทิศทางของลูกศร

จากรูป ขั้นตอนการท างานของผังงาน เริ่มจากการท างาน ในกระบวนการที่ 1 (Process 1) เมื่อท างานในกระบวนการที่ 1เสร็จ ขั้นตอนต่อไปคือท างานในกระบวนการที่ 2 เมื่อท างานในกระบวนการที่ 2 เสร็จแล้ว จึงท างานในกระบวนการที่ 3 เป็น ขั้นตอนต่อไป

Process 1

Process 2

Process 3

2.3 ลักษณะโครงสรา้งผงังาน ตัวอย่าง ผังงานการท างานแบบล าดับ 1. เร่ิมต้นการท างาน 2. รับค่าข้อมูลเข้ามาเก็บไว้ใน ตัวแปร a และตัวแปร b 3. ค านวณค่า a2 + b2 ไปเก็บ ไว้ในตัวแปร x 4. แสดงค่าในตัวแปร x 5. สิ้นสุดการท างาน

Start

Read a,b

Write x

End

22 bax

2.3 ลักษณะโครงสรา้งผงังาน การอธิบายขัน้ตอน

วิธีการท างาน สัญลักษณข์องผงังาน

เริ่มต้นการท างาน

จบการท างาน

รับค่า Data

แสดงค่าของ Data

ก าหนดค่าให ้ Sum มีค่าเท่ากับ 0

ค านวณค่า Answer เท่ากับ X2+Y2

แสดงค่าของ Answer

Start

End

Read data

Write data

Sum 0

Answer X2+Y2

Answer

2.3 ลักษณะโครงสร้างผังงาน

การอธิบายขัน้ตอนวธิกีารท างาน

รหัสเทยีม

เร่ิมต้นการท างาน Start หรือ Begin

จบการท างาน Stop หรือ End

รับค่า Data Read Data หรือ Input Data

แสดงค่าของ Data Write Data หรือ Output Data

ก าหนดค่าให ้ Sum มีค่าเท่ากับ 0 Sum 0

ค านวณค่า Answer เท่ากับ X2+Y2 Answer X2 + Y2

แสดงค่าของ Answer Write Answer หรือ Output Answer

นางสาวนันท์นภัส ชะฏาจิตร

โรงเรียนเสาไห้ “วิมลวิทยานกูุล” จังหวัดสระบุรี