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 บาท