Algorithm การเขียนอัลกอรึทึ่มแบบลำดับ
Download
Report
Transcript Algorithm การเขียนอัลกอรึทึ่มแบบลำดับ
การเขียนโปรแกรมคอมพิวเตอร์ และอัลกอริทมึ
BY
(ICT)
WATHINEE
DUANGONNAM
E-MAIL : [email protected]
เนือ้ หารายวิชา :
การเขียนโปรแกรมคอมพิวเตอร์ และอัลกอริทมึ
เนือ้ หารายวิชา :
การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
การเขียนโปรแกรมคอมพิวเตอร์ และอัลกอริทมึ
การเขียนโปรแกรมคอมพิวเตอร์ 1
ภาษาที่ใช้ ในการศึกษา การเขียนโปรแกรมในรายวิชานี้ คือ
ภาษา จาวา (Java) ซึ่งจะนาส่ วนของจาวาเบื้องต้น มาใช้
ประกอบการศึกษาเรี ยนรู้และฝึ กปฏิบตั ิ
แนวทางการศึกษา และการสอน
ศึกษาค้นคว้าด้วยตนเอง
เรี ยนรู ้ในห้องเรี ยน
ฝึ กปฏิบตั ิในห้องเรี ยน และ นอกเวลาเรี ยน
แนวข้ อสอบ
ข้อเขียน
สอบปฏิบตั ิ
จุดประสงค์
เพื่อให้นกั ศึกษาบอกความหมายและเข้าใจต่อความสาคัญของอัลกอริ ทึมได้
เพื่อให้นก
ั ศึกษาสามารถวิเคราะห์และออกแบบอัลกอริ ทึมได้
เพื่อให้นก
ั ศึกษามีความรู ้ ความเข้าใจในขั้นตอนการการพัฒนาโปรแกรม
เพื่อให้นก
ั ศึกษาสามารถเขียนโปรแกรมหรื อแก้ไขปัญหาด้วยวิธีการทาง
คอมพิวเตอร์ได้
เพื่อให้นก
ั ศึกษามีทกั ษะเบื้องต้นเกี่ยวกับการเขียนโปรแกรมภาษาคอมพิวเตอร์
เกณฑ์ การประเมินผล
การประเมินผล :
อิงกลุ่ม (T-Score)
งานใบที่ 1 : ค้นคว้าหาข้อมูล
1.
2.
3.
4.
ความหมายของโปรแกรมคอมพิวเตอร์
ให้นิยามของคาว่าเขียนโปรแกรมคอมพิวเตอร์
อัลกอริ ทึม คืออะไร
ให้อธิบายการทางานของโปรแกรมคอมพิวเตอร์ แบบต่าง ๆ เช่น
การทางานแบบลาดับ : Sequential
การทางานแบบเลือกทา : Decision
การทางานแบบวงรอบ แบบต่าง ๆ : Repetition , Loop
กาหนดส่ ง :ส่ งในชัว่ โมงเรี ยนครั้งต่อไป
โดยเขียนด้วยลายมือ ลงในกระดาษ
บทที่ 1
ALGORITHM ตอนที่ 1:
การเขี ย นPSEUDO CODE และFLOWCHART
โดยสร้ างขั้ นตอนการทางานโปรแกรมแบบลาดั บ (SEQUENCE)
เนื ้อหาวันนี ้
การทางานพื้นฐานของคอมพิวเตอร์
14
Storage (หลัก)
Storage (สารอง)
เช่น Ram
Input
Processing
เช่น HD
Output
เปรียบเทียบการทางานของ
มนุษย์ กับ คอมพิวเตอร์
สมองของมนุษย์มีการทางานอย่างไร?
16
ประกอบด้วย 3 ขั้นตอน คือ
การรับข้อมูลเข้า (Input)
การประมวลผล (Process)
การแสดงผลลัพธ์ (Output)
Input
Process
Output
การรับข้อมูลเข้า (Input)
17
การรับข้อมูล เข้าของมนุษย์ ผ่านประสาทสัมผัสทั้ง 5
การมองเห็น
การได้ยน
ิ
การได้กลิ่น
การสัมผัส
การลิ้มรส
การประมวลผล (Process)
18
การประมวลผลข้อมูลของมนุษย์จะทาผ่านสมอง
การคิดคานวณ (Calculate)
ความรู ้ (Knowledge)
ความจา (Memory)
การแสดงผลลัพธ์ (Output)
19
การแสดงผลลัพธ์ของมนุษย์ จะแสดงออกมาผ่าน
การพูด
การอ่าน
การเขียน
การเคลื่อนไหว
คอมพิวเตอร์ มีการทางานอย่างไร?
20
คอมพิวเตอร์ จะทางานผ่านโปรแกรมคอมพิวเตอร์ ประกอบด้วย 3
ขั้นตอน คือ
การรับข้อมูลเข้า (Input)
การประมวลผล (Process)
การแสดงผลลัพธ์ (Output)
Input
Process
วนซ้า (Loop)
Output
หน้ าที่ของโปรแกรมเมอร์
21
เข้าใจหลักการทางานของ
องค์ประกอบคอมพิวเตอร์ เช่น หน้าที่ของหน่ วยประมวลผลกลาง
หน่วยความจา ฯลฯ
โปรแกรมภาษาคอมพิวเตอร์ เช่น โครงสร้าง ไวยากรณ์ของภาษา ฯลฯ
ต้องสามารถวิเคราะห์ข้ นั ตอนการประมวลผลเพื่อสร้างโปรแกรม
ประกอบด้วย
ข้อมูลเข้า
การประมวลผล
การแสดงผลลัพธ์ อย่างละเอียด
การรับข้อมูลเข้า (Input)
22
การรับข้อมูลเข้า คือ การที่ผใู ้ ช้ ส่ งข้อมูลให้กบั คอมพิวเตอร์ ผ่าน
ทางคียบ์ อร์ด เมาส์ หรื อสื่ อนาเข้าอื่น ๆ เพื่อให้คอมพิวเตอร์ทาตาม
คาสัง่ ที่ตอ้ งการ
การประมวลผล (Process)
23
การประมวลผล คือ การนาข้อมูลเข้า (Input) มาประมวลผล ผ่าน
CPU (Central Processing Unit) โดยมีหน่วยความจา (Memory)
และ ฮาร์ดดิสก์ (Hard disk) เป็ นอุปกรณ์ที่จดั เก็บและสนับสนุน
ข้อมูล
การแสดงผลลัพธ์ (Output)
24
การแสดงผลลัพธ์ คือการนาเอาผลลัพธ์ที่ได้จากการ
ประมวลผล (Process) มาแสดงผลผ่านทางสื่ อให้ผใู ้ ช้ เช่น
หน้าจอ, เครื่ องพิมพ์ หรื อ จัดเก็บลงสื่ อบันทึก
การเปรี ยบเทียบมนุษย์ กับ คอมพิวเตอร์
กระบวนการทางาน
การนาข้ อมูลเข้ า
(Input)
การประมวลผล
(Process)
การแสดงผลลัพธ์
(Output)
มนุษย์
ประสาทสั มผัสทั้ง 5
สมอง
คอมพิวเตอร์
หน่ วยรั บข้ อมู ล เช่ น
Keyboard, Mouse เป็ น
ต้ น
CPU,หน่ วยความจ า+
ฮาร์ ดดิสก์ + อืน่ ๆ
หน้ าจอ เครื่ องพิ ม พ์
การพูด อ่ า น เขียน การ ฮาร์ ดดิสก์
เคลือ่ นไหว
25
เราจะสร้ างคอมพิวเตอร์ ให้ มคี วามคิดเหมือนมนุษย์ ได้ อย่ างไร ?
26
ก่อนที่เราจะให้คอมพิวเตอร์ ทาได้เหมือนอย่างที่เราคิด เราต้อง
บอกให้ได้เสี ยก่อนว่า ขั้นตอนที่เราสามารถรับรู้ เข้าใจ และแสดง
ออกมา มีลาดับอย่างไร
จากนั้นนาขั้นตอนข้างต้นมาปรับใช้ โดยให้นึกเสมือนหนึ่ งว่า
คอมพิวเตอร์ ก็คือตัวท่าน และ ตัวท่าน คือคอมพิวเตอร์
ส่ วนประกอบ และความสามารถในแต่ ละส่ วนของ คอมพิวเตอร์
27
การนาเข้าข้อมูล ส่ วนใหญ่กจ็ ะมาจาก Keyboard และ Mouse
การประมวลผล ใช้ CPU + Memory + Hard disk
การแสดงผลผ่าน Monitor และ Printer เป็ นต้น
วิธีการคิด
28
ถ้าคอมพิวเตอร์ คือตัวคุณ และตัวคุณคือคอมพิวเตอร์ คุณจะ :ทาให้คอมพิวเตอร์ รับข้อมูล / คาถาม / ปั ญหา ได้อย่างไร?
คอมพิวเตอร์ รับข้อมูลแล้วนาไปเก็บไว้ที่ไหน และจัดเก็บ
อย่างไร?
คอมพิวเตอร์ มีการประมวลผล เพื่อแก้ปัญหาข้างต้นได้อย่างไร?
แสดงผลลัพธ์ / คาตอบได้อย่างไร?
ตัวอย่าง
29
โจทย์สาหรับมนุษย์
จงเขียนตัวอักษรที่กาหนดให้ A B C 1 2
โจทย์สาหรับคอมพิวเตอร์
จงเขียนตัวอักษรที่กาหนดให้ A B C 1 2
นิ สิตคิดว่า วิธีการของการแก้ปัญหาโจทย์ขา้ งต้นของ มนุษย์และ
คอมพิวเตอร์ จะเหมือนหรื อต่างกันอย่างไร?
วิธีการคิดในการแก้ปัญหาของเรา คือ?
30
จงเขียนตัวอักษรที่กาหนดให้ A B C 1 2
การรับข้อมูลเข้า ทาได้อย่างไร?
ตอบ: ผ่านทางสายตา
การประมวลผลของสมอง คือ
ตอบ: จดจาตัวอักษรที่กาหนดให้ไว้ในความทรงจาของสมอง
การแสดงผลลัพธ์ ทาได้อย่างไร ?
ตอบ: สมองสัง่ การให้เขียนออกมาบนกระดาษ
วิธีการคิดในการแก้ปัญหาของเรา คือ? (ต่อ)
31
ข้อมูลเข้า คือ
การอ่าน A B C 1 2
การประมวลผลของสมอง คือ
ต้องจดจาข้อมูลเข้าที่กาหนดให้ ไว้ในสมอง
การแสดงผลลัพธ์ ทาได้อย่างไร ?
นาข้อมูลที่เราจดจาไว้ในสมอง เขียนออกมาในกระดาษ
วิธีการคิดในการแก้ ปัญหาของคอมพิวเตอร์ คือ?
32
จงเขียนตัวอักษรที่กาหนดให้ A B C 1 2
KEY BOARD ?
การประมวลผลของ CPU + MEMORY ?
การแสดงผลลัพธ์ทาง หน้าจอ/เครื่ องพิมพ์ ?
START
รับข้อมูลเข้าผ่าน
READ X
PRINT
X
STOP
กาหนดให้ X เป็ นตัวแปรทีใ่ ช้ รับข้ อมูล
วิธีการคิดในการแก้ ปัญหาของคอมพิวเตอร์ คือ?
33
จงเขียนตัวอักษรที่กาหนดให้ A B C 1 2
รับข้อมูลเข้าผ่าน KEY BOARD
ตอบ: READ
ทาได้อย่างไร?
x ผ่าน KEY BOARD (เก็บค่าที่ได้ไว้ในหน่วยความจาชื่อ X)
การประมวลผลของ CPU + MEMORY
ตอบ: CPU
คือ
สั่งให้เอาตัวอักษรที่เก็บไว้ในหน่วยความจาชื่อ x ไปแสดงผลผ่าน
ฟังก์ชนั PRINT
การแสดงผลลัพธ์ทาง
ตอบ: PRINT ค่า X
หน้าจอ/เครื่ องพิมพ์ ทาได้อย่างไร ?
ออกทาง หน้าจอ/เครื่ องพิมพ์
แนวคิดพืน
้ ฐานสาหรับการสร้ างโปรแกรม
ขัน้ ตอนการเขียนโปรแกรมคอมพิวเตอร์ ,
หลักการพัฒนาโปรแกรม
35
การพัฒนาโปรแกรมแบ่งออกเป็ น
การวางแผน (Planning)
การวิเคราะห์ปัญหา (Analysis)
การออกแบบ (Design)
การพัฒนาโปรแกรม (Implementation)
การเขียนโปรแกรม (Coding)
การทดสอบโปรแกรม (Testing)
การแก้ไขข้อผิดพลาดของโปรแกรม (Debugging)
การดูแลรักษาโปรแกรม (Maintenance)
การวางแผน (Planning)
36
การวางแผนเป็ นการมองภาพโดยรวม มองปั ญหา เมื่อเราต้องการ
พัฒนาโปรแกรมว่า สิ่ งจาเป็ น ส่ วนประกอบ ลาดับขั้นตอนในการ
พัฒนา เครื่ องมือ และสิ่ งแวดล้อมต่างๆ ในการพัฒนาโปรแกรม
ประกอบด้วยอะไรบ้าง
การวิเคราะห์ปัญหา (Analysis)
37
การระบุขอ้ มูลเข้า (Input Specification): ต้องทราบว่ามีขอ้ มูล
อะไรบ้างที่ตอ้ งป้ อนเข้าสู่ ระบบคอมพิวเตอร์
การระบุขอ้ มูลออก (Output Specification): ต้องพิจารณา
เป้ าหมาย หรื อวัตถุประสงค์ของงานว่าต้องการผลลัพธ์อย่างไร โดย
คานึงถึงผูใ้ ช้เป็ นหลัก
กาหนดวิธีการประมวลผล (Process Specification): ต้องทราบ
วิธีการประมวลผล หรื อวิธีคิดให้ได้ผลลัพธ์ตามต้องการ
การวิเคราะห์ปัญหา (Analysis)
การวิเคราะห์ปัญหา
วิเคราะห์ผลลัพธ์
ข้อมูลที่นาเข้าสู่ ระบบ
คอมพิวเตอร์ประกอบด้วย
อะไรบ้าง
วิเคราะห์ Input
Process
เขียนขั้นตอนการแก้ปัญหา
ตัวอย่าง การวิเคราะห์ปัญหา
การต้ มไข่ ไก่ ทาน
วิเคราะห์ผลลัพธ์ : ไข่ไก่ตม้ สุ ก ทานได้
วิเคราะห์ Input : ไข่ไก่
Process(ขั้นตอนการแก้ปัญหา) คือ
ต้มน้ าให้เดือด
ใส่ ไข่
รอ 10 นาที
ดับไฟ / ปิ ดเตา
ปอกไข่
หยุด
การออกแบบ (Design)
40
อัลกอริ ทึม (Algorithm) : อธิบายขั้นตอนการทางาน
ผังลาดับงาน (Flowchart): ใช้รูปภาพแสดงขั้นตอนการแก้ปัญหา
รหัสจาลอง (Pseudo-Code): เป็ นการใช้ขอ้ ความที่เป็ นภาษาไทย
หรื ออังกฤษ ที่แสดงขั้นตอนการแก้ปัญหา แต่จะใช้คาเฉพาะที่มีอยู่
ในภาษาโปรแกรมในการเขียน
การบรรยาย (Narrative Description)
เป็ นต้น
**วันนี้จะฝึ กเขียน Pseudo-Code , Flowchart
การพัฒนาโปรแกรม (Implementation)
41
การเขียนโปรแกรม (Coding): เป็ นการนาผลที่ได้จากการ
ออกแบบมาแปลเป็ นภาษาโปรแกรม
การทดสอบโปรแกรม (Testing): ทดสอบการใช้งานโปรแกรม
ข้อผิดพลาดของไวยากรณ์ภาษา (Syntax Error)
ข้อผิดพลาดระหว่างรันโปรแกรม (Runtime Error)
ข้อผิดพลาดที่เกิดจากตีความหมายปัญหาผิดไป (Logical Error)
การแก้ไขข้อผิดพลาดของโปรแกรม (Debugging)
การเขียนโปรแกรม (Coding)
42
การเขียนภาษาโปรแกรม เป็ นการแปลงลาดับขั้นตอนของการ
แก้ปัญหา (Design) มาเป็ นภาษาโปรแกรม โดยที่การเขียนแต่ละ
ภาษาโปรแกรมจะมีหลักการคล้ายคลึงกัน เพียงแต่รูปแบบ
ไวยากรณ์อาจแตกต่างกันไปบ้าง
การทดสอบโปรแกรม (Testing)
43
ถึงแม้วา่ โปรแกรมจะสามารถทางานได้ตามวัตถุประสงค์ที่เรากาหนดไว้ แต่
อย่างไรก็ตามอาจเกิดข้อผิดพลาดขึ้นได้หากว่า ผูใ้ ช้ไม่ทาตามขั้นตอนที่เรา
กาหนดให้ ดังนั้นเราจาเป็ นต้องมีการทดสอบ เพื่อให้ครอบคลุมการทางาน
ทุกด้าน
การแก้ ไขข้ อผิดพลาดของโปรแกรม (Debugging)
44
เมื่อเกิดข้อผิดพลาด เราจาเป็ นต้องมีการแก้ไขข้อผิดพลาดที่เกิดขึ้น
ข้อผิดพลาดทางไวยากรณ์
ข้อผิดพลาดขณะรันโปรแกรม
ข้อผิดพลาดที่เกิดจากการตีความหมายของปั ญหาที่ผด
ิ ไป
อย่างไรก็ตามในบางครั้งโปรแกรมที่เราพัฒนาก็ไม่เกิดข้อผิดพลาด
ขณะเขียนโปรแกรม แต่กลับมีขอ้ ผิดพลาดในขณะรันโปรแกรม คือ
เป็ นการผิดพลาดทางตรรกะ รวมถึงการแก้ปัญหาผิดวัตถุประสงค์
การดูแลรักษาโปรแกรม (Maintenance)
45
ภายหลังจากติดตั้งโปรแกรมเพื่อใช้งานจริ ง ขั้นตอนต่อมาคือการ
เฝ้ าดูแลรักษา และหาข้อผิดพลาดที่เกิดขึ้นหลังจากการใช้งานจริ ง
รวมถึงคอยปรับปรุ งแก้ไขให้โปรแกรมมีอายุการใช้งานที่ยาวนาน
บุคลากรที่เกี่ยวข้อง
Program หมายถึง กลุ่มคาสัง่ ชุดคาสัง่ หรื อลาดับคาสัง่ ที่สงั่ ให้
คอมพิวเตอร์ ทางานตามความต้องการของมนุษย์
บุคลากรทีเ่ กีย่ วข้ อง
- System Analyst : ผูท้ ี่ทาหน้าที่ในการวิเคราะห์และออกแบบระบบ
- Programmer : ผูท้ ี่ทาหน้าที่ในการเขียนชุดคาสัง่
- User : ผูใ้ ช้งานระบบ
อัลกอริ ทึม (Algorithms)
Algorithm ?
ความหมาย :
คาบรรยายลาดับขั้นตอนการทางานเพื่อให้
ได้ผลลัพธ์ตามที่ตอ้ งการ
อัลกอริ ทมึ (Algorithms)
หมายถึง ขั้นตอนวิธี ซึ่ งจะอธิ บายว่างาน ๆ นั้นทา
อย่างไร โดยจะประกอบด้วยชุดลาดับเป็ นขั้นเป็ น
ตอนที่ชดั เจน และรับประกันว่าเมื่อได้ปฏิบตั ิ
ถูกต้องตามขั้นตอนจนจบ ก็จะได้ผลลัพธ์ที่ถูกต้อง
ตามต้องการ
วิธีการสร้ าง Algorithms
ในการสร้างอัลกอริ ทึมเพื่อใช้งานทางคอมพิวเตอร์ สามารถสร้าง
ได้หลายวิธีดว้ ยกัน โดยในที่น้ ีจะขอกล่าวถึงวิธีต่าง ๆ ดังต่อไปนี้
การบรรยาย (Narrative Description)
การเขียนรหัสจาลอง (Pseudo Code)
การเขียนผังงาน (Flowchart)
การบรรยาย (Narrative Description)
เป็ นวิธีที่วา่ ด้วยการใช้คาพูดบรรยายเป็ นตัวอักษร ซึ่ งวิธีน้ ี จะ
ค่อนข้างจะง่ายสาหรับตัวผูเ้ ขียน แต่จะยากต่อการนาไปใช้ปฏิบตั ิ
เนื่องจากอาจะก่อให้เกิดปัญหาต่าง ๆไม่วา่ จะเป็ นขอบเขตการ
บรรยายที่กว้างเกินไป ยืดเยื้อเกินไป รวมถึงการบรรยายที่ยากต่อ
ความเข้าใจ
ตัวอย่าง อัลกอริ ทมึ ที่เขียนในรูปแบบการบรรยาย
ขั้นตอนการลงทะเบียนเรี ยน
ในการลงทะเบียนเรี ยนภาคการศึกษาปกติจะสามารถทาการลงทะเบียนเรี ยนได้
ไม่เกินกว่า 21 หน่วยกิต คอมพิวเตอร์ จะต้องทาการสะสมค่าหน่วยกิต ของแต่ละ
รายวิชาที่นกั ศึกษา ลงทะเบียนเรี ยน หากมีการลงทะเบียนเรี ยนเกินกว่านั้น ก็จะต้อง
แสดงข้อความเตือนส่ วนการลงทะเบียนเรี ยนภาคฤดูร้อน ก็เป็ นไปในลักษณะเดียวกัน
แต่จานวน หน่วยกิต สู งสุ ดที่สามารถลงทะเบียนได้คือ 9 หน่วยกิต
การเขียนรหัสจาลอง (Pseudo Code)
รหัสเทียม หรือ ซูโดโค้ ด (Pseudo Code) คือ รหัสจาลองที่ใช้เป็ นตัวแทน
ของอัลกอริ ทึม โดยมีถอ้ ยคาหรื อประโยคคาสัง่ ที่เขียนอยูใ่ นรู ปแบบของ
ภาษาอังกฤษที่ไม่ข้ ึนกับภาษาคอมพิวเตอร์ใดภาษาหนึ่ง หรื อ จะใช้
ภาษาไทยก็ได้ แต่กย็ งั คงไว้ซ่ ึงขั้นตอนการทางานหลัก ๆ ของโปรแกรม
เอาไว้ โดยไม่ตอ้ งเจาะรายละเอียดการทางานในแต่ละส่ วน
ตัวอย่าง
อัลกอริ ทึม ในรู ปแบบแบบ Pseudo Code
การเขียนผังงาน (Flowchart)
คือ การแสดงขั้นตอนวิธีการที่ใช้สญ
ั ลักษณ์ที่เข้าใจได้ง่าย แต่ให้รายละเอียดได้นอ้ ยกว่า
ตัวอย่าง การเขียนผังงาน (Flowchart)
Start
End
กระบวนการสร้ าง Algorithm
::
การเขียนรหัสจาลอง ,รหัสเทียม (Pseudo Code)
การเขียนรหัสจาลอง ,รหัสเทียม (Pseudo Code)
คือ การแสดงขั้นตอนวิธีการที่ใช้ภาษาเขียนที่เข้าใจได้ง่าย อาจใช้
ภาษาไทยหรื อภาษาอังกฤษก็ได้ข้ ึนอยูก่ บั ความสะดวกของผูเ้ ขียน
และกิจกรรมที่จะนาเสนอ มักใช้รูปแบบคล้ายประโยคภาษาอังกฤษ
เพื่ออธิบายรายละเอียดของอัลกอริ ทึม
หลักการเขียนซูโดโค้ ด
ถ้อยคาที่ใช้เขียน ใช้ภาษาอังกฤษที่เข้าใจง่าย
(อาจใช้ภาษาไทยหรื อภาษาอังกฤษก็ได้ข้ ึนอยูก่ บั ความสะดวกของผูเ้ ขียน)
ในหนึ่งบรรทัด ให้มีเพียงหนึ่งประโยคคาสัง่
ใช้ยอ่ หน้าให้เป็ นประโยชน์ ในการแสดงการควบคุมอย่างเป็ นสัดส่ วน
แต่ละประโยคคาสัง่ ให้เขียนจากบนลงล่าง และมีทางออกทางเดียว
กลุ่มของประโยคคาสัง่ อาจรวมเป็ นหมวดหมู่แล้วเรี ยกใช้เป็ นโมดูล
โปรแกรมส่ วนใหญ่ ประกอบด้ วยกิจกรรม 3 ส่ วน
1. input
2. process
3. output
การวิเคราะห์องค์ประกอบของงาน
องค์ประกอบของงาน
Input , Decision , Process , Output
การพิจารณา
ขั้นตอนการทางานเป็ นการนาเข้า ป้ อนเข้าระบบ ถือเป็ น Input
ขั้นตอนเกี่ยวกับการกระทา(กริ ยา) ถือเป็ น Process
ขั้นตอนที่ตอ้ งเลือกกระทา ถือเป็ น Decision
ขั้นตอนการนาข้อมูลออกจากระบบ แสดงผล ถือเป็ น Output
รูปแบบการเขียน Algorithm แบบ รับข้ อมูล
การรับข้อมูล ( Input)
รู ปแบบ รับค่า..............................
ตัวอย่ าง
รับค่าคะแนน
รับค่าตัวเลขหนึ่ งตัว
รับค่าตัวเลข 2 ค่า
รับค่าอายุ
Read
Get
Input
Get
score
number
number1,number2
age
รูปแบบการเขียน Algorithm ,process :การกาหนดค่า
การประมวลผล การคานวณ (process)
การกาหนดค่า
รู ปแบบ
กาหนดค่า……………. …………
กาหนดค่า……………. = …………
ตัวอย่าง การกาหนดค่า
รู ปแบบ
กาหนดค่า……………. …………
กาหนดค่า……………. = …………
ตัวอย่ าง
กาหนดค่า ชื่อ “สมชาย” // ข้อมูลประเภทข้อความ
กาหนดค่า อายุ 0
กาหนดค่า ระยะทาง = 100
กาหนดค่า อักขระ=‘A’
Set name “สมชาย”
Set age 0
Set distance=100
Set s1=‘A’
รูปแบบการเขียน Algorithm ,Process :การตัดสินใจ
การตัดสิ นใจเลือกจากเงื่อนไข (Decision)
รู ปแบบ
ถ้า....................ไปขั้นตอนที่.......................
Ex
ถ้าค่าอายุนอ
้ ยกว่า 10 ปี
ไปขั้นตอนที่ 12
ถ้าคะแนนมากกว่า 79 คะแนน ไปขั้นตอนที่ 10
ถ้าค่าที่ได้เท่ากับ 0 ไปขั้นตอนที่ 2
ตัวอย่าง Process การคานวณ
รู ปแบบ
คานวณค่า……… ………
คานวณค่า……… = ………
ตัวอย่ าง
คานวณค่า ภาษี ค่าเงินเดือน * 10
/ 100
คานวณหาค่า ภาษีมูลค่าเพิม
่ = ค่าสิ นค้า * 7 / 100
Tax salary * 10 / 100
vat = price* 7 / 100
รูปแบบการเขียน Algorithm, Output
การแสดงข้อมูล ( output)
รู ปแบบ
แสดงข้อมูล ……………..
ตัวอย่าง
แสดงค่า ภาษี
พิมพ์ค่า อายุ
พิมพ์ค่า ผลรวม
Display tax
Print
age
Write
sum
ตัวอย่ าง ปัญหาที่ 1 ให้ กาหนดค่ าตัวเลขเอง
กาหนดตัวเลข 2 ตัว บวกกันแล้วแสดงผลทางหน้าจอ
การวิเคราะห์ปัญหา (Analysis)
การวิเคราะห์ปัญหา
วิเคราะห์ผลลัพธ์
ข้อมูลที่นาเข้าสู่ ระบบ
คอมพิวเตอร์ประกอบด้วย
อะไรบ้าง
วิเคราะห์ Input
Process
เขียนขั้นตอนการแก้ปัญหา
ขัน้ ตอน การวิเคราะห์ ปัญหา
1. หาผลรวมแล้วแสดงผล
2. กาหนดตัวเลข 2 จานวน
3. กาหนดให้ N1 แทนตัวเลขตัวที่ 1
N2 แทนตัวเลข ตัวที่ 2
ลองเขียน อัลกอริท่ มึ ครั ง้ ที่ 1
1. เริ่ มต้น
2. สร้างตัวแปรและกาหนดค่าให้กบั ตัวแปร 2 ตัว
3. หาผลรวมของตัวเลขทั้งสอง
4. แสดงค่า ผลรวม ที่ได้ทางหน้าจอ
5. สิ้ นสุ ด
ปรั บปรุ ง อัลกอริท่ มึ ครั ง้ ที่ 2
1.
2.
3.
4.
5.
เริ่ มต้น
กาหนดค่า N1 5 , N2 10
SUM N1+N2
แสดงค่า SUM
สิ้ นสุ ด
เขียนเป็ น Pseudo Code
1. START
2. SET
N1 5 , N2 10
3. SUM N1+N2
4. DISPLAY SUM
5. STOP
ตัวอย่ าง ปัญหาที่ 2 แบบรับข้ อมูลทางแป้นพิมพ์
รับข้อมูลทางแป้ นพิมพ์มา 4 จานวน หาผลรวม และ
ค่าเฉลี่ย แล้วแสดงผลลัพธ์ทางเครื่ องพิมพ์
การวิเคราะห์ปัญหา (Analysis)
การวิเคราะห์ปัญหา
วิเคราะห์ผลลัพธ์
ข้อมูลที่นาเข้าสู่ ระบบ
คอมพิวเตอร์ประกอบด้วย
อะไรบ้าง
วิเคราะห์ Input
Process
เขียนขั้นตอนการแก้ปัญหา
ขัน้ ตอน การวิเคราะห์ ปัญหา
1. หาผลรวมและค่าเฉลี่ย แล้วแสดงผล
2. รับข้อมูลทาง Keyboard มา 4 จานวน
3. กาหนดให้ num1 แทนตัวเลขตัวที่ 1
num2 แทนตัวเลข ตัวที่ 2
……
และ num4 แทนตัวเลข ที่ 4 ตามลาดับ
ลองเขียน อัลกอริท่ มึ ครั ง้ ที่ 1
1. เริ่ มต้น
2. รับตัวเลขเข้ามา 4 จานวน
3. หาผลรวมของตัวเลขทั้ง 4 ค่า
4. หาค่าเฉลี่ย คือ นาผลรวมที่ได้ มาหารตัว จานวนของตัวเลข
ทั้งหมด
5. แสดงค่า ผลรวม และผลเฉลี่ย ที่ได้
6. สิ้ นสุ ด
ปรั บปรุ ง อัลกอริท่ มึ ครั ง้ ที่ 1
1. เริ่ มต้น
2. READ NUM1 , NUM2 ,NUM3,NUM4
3. TOTAL NUM1+NUM2 + NUM3+NUM4
4. AVERAGE = TOTAL/4
5. แสดงค่า TOTAL และ AVERAGE
6. สิ้ นสุ ด
เขียนเป็ น Pseudo Code
1. START
2. READ NUM1 , NUM2,NUM3,NUM4
3. TOTAL NUM1+NUM2 + NUM3+NUM4
4. AVERAGE TOTAL/4
5. DISPLAY TOTAL , AVERAGE
6. STOP
ให้นกั ศึกษาฝึ ก เขียน Pseudo Code
โจทย์ที่ 1
กาหนดค่าตัวเลข 3 ค่า หาผลรวมแล้วแสดงผล
ตัวอย่ างอัลกอริทมึ : กาหนดค่ า 3 ค่ า แล้ วหาผลรวม
1.
2.
3.
4.
5.
Start
Set value1=10,value2=20,value3=30
sum value1 + value2 + value3
write sum
End
ตัวอย่ างอัลกอริทมึ : กาหนดค่ า 3 ค่ า แล้ วหาผลรวม
1.
2.
3.
4.
5.
7.
8.
Start
Set value1= 10
Set value2= 20
Set value3 =30
sum value1 + value2 + value3
write sum
End
โจทย์ที่ 2
รับค่าตัวเลข 3 ค่า(ทางแป้ นพิมพ์) หาผลรวม แล้วนา
ผลรวมมาลบด้วย 6 จากนั้นแสดงผล ค่าตัวเลขทั้ง 3 และ
ผลลัพธ์ที่ได้
รับค่าตัวเลข 3 ค่า(ทางแป้ นพิมพ์) หาผลรวม แล้วนาผลรวมมาลบด้วย 6
จากนั้นแสดงผลที่ได้
1.
2.
3.
4.
4.
5.
START
READ value1, value2,value3
sum1 value1 + value2 + value3
sum2 sum1-6
WRITE value1, value2,value3, sum2
End
โจทย์ที่ 3
3. ให้หาพื้นที่สี่เหลี่ยมของ ความกว้างเท่ากับ 3 และ
ความยาว เท่ากับ 6
ให้หาพื้นที่สี่เหลี่ยมของ ความกว้างเท่ากับ 3 และความยาว เท่ากับ 6
1.
2.
3.
3.
4.
5.
START
SET W 3
SET L 6
Area W*L
PRINT Area
STOP
โจทย์ที่ 4
4. หาค่าพื้นที่วงกลม ของ รัศมีวงกลมมีค่าเท่ากับ 5 (π=3.14)
หาค่าพื้นที่วงกลม ของ รัศมีวงกลมมีค่าเท่ากับ 5 (π=3.14)
1. กาหนดค่า r เท่ากับ 5
2. พื้นที่วงกลม คือ 3.14*(r*r)
3. แสดงค่าพื้นที่วงกลม
หาค่าพื้นที่วงกลม ของ รัศมีวงกลมมีค่าเท่ากับ 5 (π=3.14)
1.
2.
3.
4.
5.
START
SET r 5
Area 3.14*(r*r)
PRINT Area
STOP
โจทย์ที่ 5
5. ให้หาพื้นที่วงกลม โดยให้รับค่าข้อมูลของรัศมีของวงกลม
(π=3.14)
ให้หาพื้นที่วงกลม โดยรับค่าข้อมูลของรัศมีของวงกลม (π=3.14)
1.
2.
3.
4.
5.
START
READ radius
area 3.14* (radius* radius)
PRINT “area =” area
STOP
การเขียนผังงาน : Flowchart
การเขียนผังงาน : Flowchart
ประโยชน์ ของผังงาน
ช่วยลาดับขั้นตอนการทางานของโปรแกรม และสามารถนาไปเขียนโปรแกรมได้โดยไม่
สับสน
ช่วยในการตรวจสอบ และแก้ไขโปรแกรมได้ง่าย เมื่อเกิดข้อผิดพลาด
ช่วยให้การดัดแปลง แก้ไข ทาได้อย่างสะดวกและรวดเร็ ว
ช่วยให้ผอู ้ ื่นสามารถศึกษาการทางานของโปรแกรมได้อย่างง่าย และรวดเร็ วมากขึ้น
วิธีการเขียนผังงานที่ดี
ใช้สัญลักษณ์ตามที่กาหนดไว้
ใช้ลูกศรแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง หรื อจากซ้ายไปขวา
คาอธิ บายในภาพควรสั้นกะทัดรัด และเข้าใจง่าย
ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า - ออก
ไม่ควรโยงเส้นเชื่อมผังงานที่อยูไ่ กลมาก ๆ ควรใช้สัญลักษณ์จุดเชื่อมต่อแทน
ผังงานควรมีการทดสอบความถูกต้องของการทางานก่อนนาไปเขียนโปรแกรม
สัญลักษณ์ในการเขียนผังงาน โปรแกรม
สัญลักษณ์ ในผังงาน
Terminator
สัญลักษณ์แสดงจุดเริ่ มต้นหรื อจุดสิ้นสุด
Start/Stop, Begin/end
โดยจุดเริ่ มต้นจะมีเส้นทางออกเพียงอย่างเดียว
ส่วนจุดสิ้นสุดจะมีเส้นทางเข้าเพียงอย่างเดียว
Flow lines
ลูกศรแสดงทิศทางการทางาน และการไหลของ
ข้อมูล ,ลาดับขั้นตอนการทางาน
สัญลักษณ์ ในผังงาน
Input
แทนการนาเข้าข้อมูล โดยไม่ระบุชนิดของสื่ อ
Manual input
สัญลักษณ์ที่ใช้แทนการรับข้อมูลทางแป้ นพิมพ์ หรื อ
Keyboard
สัญลักษณ์ ในผังงาน
Process
ใช้แสดงการประมวลผล การคานวณ หรื อการกาหนดค่าข้อมูล
ต่าง ๆ
ให้นกั ศึกษา บอกความแตกต่างระหว่าง input กับ Process
รับค่าข้อมูลความกว้าง
Read W
กาหนดค่าความกว้างเท่ากับ 4
รับค่าข้อมูลของรัศมีวงกลม
พื้นที่วงกลมคือ 3.14*r*r
W =4
Read r
Area=3.14*r*r
สั ญลักษณ์ ในผังงาน
Decision
สัญลักษณ์ที่ใช้สาหรับการสร้างเงื่อนไข
เพื่อตัดสิ นใจทางเลือกที่ตอ้ งการ
Preparation
แทนการทางานเป็ นรอบ (loop)
สัญลักษณ์ ในผังงาน
Predefined Process
ใช้แสดงแทนการประมวลผลของโมดูลหรื อโปรแกรมย่อย
สั ญลักษณ์ ในผังงาน
Display
เป็ นสัญลักษณ์ที่ใช้สาหรับการแสดงผล
ข้อมูลออกทางจอภาพ
Document
สัญลักษณ์เพื่อส่ ง output หรื อรายงาน
ออกทางเครื่ องพิมพ์(ลงบนกระดาษ)
สั ญลักษณ์ ในผังงาน
Magnetic Tape
ใช้ในการจัดเก็บลงบนสื่ อประเภทเทปแม่เหล็ก
Magnetic Disk
ใช้ในการจัดเก็บลงบน Disk
สัญลักษณ์ ในผังงาน
On-Page Reference
เป็ นสัญลักษณ์ที่นามาใช้แทนจุดเชื่อมโยงของแผนภาพ(ผังงาน)
ในหน้าเดียวกัน
\
off-page Reference
เป็ นสัญลักษณ์ที่ใช้แทนการเชื่อมโยงจาก
จุดเชื่อมจากหน้าหนึ่งไปยังอีกหน้าหนึ่ง
(ในกรณี ที่อยูค่ นละหน้า)
สัญลักษณ์ ในผังงาน
Comment
ใช้อธิ บายหรื อหมายเหตุขอ้ มูลเพิม่ เติม
เพื่อสื่ อความหมายให้เข้าใจยิง่ ขึ้น
โครงสร้ างควบคุม (Control Structure)
107
การควบคุมโปรแกรมให้ทางานได้ตามต้องการ เราจาเป็ นต้องมี
ความเข้าใจเกี่ยวกับโครงสร้างควบคุมของการเขียนภาษาโปรแกรม
ประกอบด้วย
ลาดับการทางาน (Sequence)
ทางเลือก (Selection)
การวนซ้ า (Iteration)
ลาดับการทางาน (Sequence)
ตัวอย่างการเขียน Flowchart …2
กาหนดค่าตัวเลข 2 ค่า หาผลรวมแล้วแสดงผล
Start
N1=3
N2=4
sum=N1+N2
Print
“Sum =” sum
End
ตัวอย่างการเขียน Flowchart …1
รับค่าข้อมูลตัวเลข 2 ค่า หาผลรวมแล้วแสดงผลรวมที่ได้ทางหน้าจอ
Start
Read
num1,num2
sum=num1+num2
Print
sum
End
ให้นกั ศึกษาฝึ ก เขียน Flowchart
โจทย์ที่ 1
กาหนดค่าตัวเลข 3 ค่า แล้วแสดงผลรวมและค่าเฉลี่ย
ที่ได้
เฉลย
โจทย์ที่ 2
2. รับค่าตัวเลข 1 ตัว นาค่าที่ได้มาบวกค่าเพิ่มด้วย 10 แล้ว
แสดงผล
เฉลย
โจทย์ที่ 3
3. ให้หาพื้นที่สี่เหลี่ยมของ ความกว้างเท่ากับ 3 และความยาว
เท่ากับ 6
เฉลย
โจทย์ที่ 4
4. หาค่าพื้นที่วงกลม ของ รัศมีวงกลมมีค่าเท่ากับ 5 (π=3.14)
เฉลย
โจทย์ที่ 5
5. ให้หาพื้นที่วงกลม โดยให้รับค่าข้อมูลของรัศมีของวงกลม
(π=3.14)
โจทย์ที่ 6
6.
ให้รับข้อมูลราคาสิ นค้า ทางแป้ นพิมพ์
โดยนาข้อมูลที่ได้ไปลดราคา 5 %
จากนั้นแสดงราคาสุ ทธิ ที่ตอ้ งจ่าย
เช่น input 100 ราคาสุ ทธิ ที่ตอ้ งจ่ายหลังลดราคา 5 %
คือ 95
เฉลย
โจทย์ข้อ 7
ให้รับข้อมูลราคาสิ นค้าต่อหน่วย (ราคาต่อชิ้น)
รับข้อมูลจานวนสิ นค้าที่ซ้ื อ (ซื้ อกี่ชิ้น)
จากนั้นแสดงราคาสิ นค้าก่อนลดราคา (ราคารวมจริ ง)
แสดงราคารวมที่ลดราคาแล้ว(ราคาสุ ทธิ ) โดยลดราคา 15%
เช่น ราคาสิ นค้า 50 บาท ซื้ อ 2 ชิ้น ราคาทั้งหมด 100 ราคาที่
ต้องจ่าย 85 บาท