หลักการเขียนโปรแกรม
การวิเคราะห์ปัญหาและวางแผน (Algorithm)
วัตถุประสงค์การเรียนรู้
เข้าใจความสำคัญของการวิเคราะห์ปัญหาในการเขียนโปรแกรม
สามารถอธิบายแนวคิดของ Algorithm
สามารถออกแบบ Algorithm เบื้องต้นได้
คือการทำความเข้าใจถึงปัญหาที่ต้องการแก้ไข
การหาวิธีการแก้ไขที่เหมาะสม ก่อนเริ่มเขียนโปรแกรม
ช่วยให้การเขียนโปรแกรมเป็นไปอย่างมีประสิทธิภาพ
การวิเคราะห์ปัญหาคืออะไร?
ทำไมต้องวิเคราะห์ปัญหา?
การวิเคราะห์ปัญหาช่วยลดข้อผิดพลาดในการเขียนโปรแกรม
ทำให้ผู้เขียนโปรแกรมสามารถเห็นภาพรวมของการแก้ปัญหา
ประหยัดเวลาและทรัพยากรในการพัฒนาโปรแกรม
Algorithm คืออะไร?
Algorithm คือ ขั้นตอนหรือกระบวนการแก้ไขปัญหา
เป็นการออกแบบลำดับการทำงานอย่างเป็นขั้นตอน เพื่อให้ได้ผลลัพธ์ที่ต้องการ
อาจเปรียบเสมือน “สูตร” ในการทำงานของโปรแกรม
ตัวอย่างการออกแบบหน้าแอพ Shopee
1
เลือกที่อยู่สำหรับจัดส่ง
2
ระบุวิธีการจัดส่ง
3
เลือกวิธีชำระเงิน (ค่าสินค้า)
Algorithm ที่ดี
มีขั้นตอนที่ชัดเจนและเจาะจง
สามารถนำไปปฏิบัติได้จริง
ประหยัดเวลาและทรัพยากร
มีจุดเริ่มต้นและจุดสิ้นสุดที่ชัดเจน
พิจารณา . .
การชงกาแฟ
การล้างจาน
การชงกาแฟ
ขั้นตอนที่ 1: เตรียมอุปกรณ์และส่วนผสม (ถ้วยกาแฟ, ช้อน, ผงกาแฟ, น้ำร้อน, น้ำตาล, ครีมเทียม)
ขั้นตอนที่ 2: ต้มน้ำร้อน (หรือใช้น้ำร้อนที่เตรียมไว้)
ขั้นตอนที่ 3: ใส่ผงกาแฟลงในถ้วยกาแฟ
ขั้นตอนที่ 4: เติมน้ำร้อนลงในถ้วยกาแฟ
ขั้นตอนที่ 5: คนให้เข้ากันจนผงกาแฟละลาย
ขั้นตอนที่ 6: เติมน้ำตาลหรือครีมเทียมตามความชอบ
ขั้นตอนที่ 7: คนให้เข้ากันอีกรอบ
ขั้นตอนที่ 8: กาแฟพร้อมดื่ม
Algorithm เพื่ออธิบายเป็นขั้นตอนการทำงานดังนี้:
แต่ละขั้นตอนมีลำดับชัดเจนและต้องทำให้ครบถ้วนเพื่อให้ได้กาแฟที่พร้อมดื่ม
การล้างจาน
ขั้นตอนที่ 1: เตรียมจานที่ต้องการล้าง รวมถึงฟองน้ำ, น้ำยาล้างจาน, และผ้าเช็ดจาน
ขั้นตอนที่ 2: ล้างจานเบื้องต้นด้วยน้ำเพื่อล้างเศษอาหารออก
ขั้นตอนที่ 3: บีบหรือเทน้ำยาล้างจานลงบนฟองน้ำ
ขั้นตอนที่ 4: ใช้ฟองน้ำที่มีน้ำยาขัดล้างจานให้สะอาด
ขั้นตอนที่ 5: ล้างน้ำยาล้างจานออกจากจานด้วยน้ำสะอาด
ขั้นตอนที่ 6: วางจานให้สะเด็ดน้ำ หรือใช้ผ้าเช็ดให้แห้ง
ขั้นตอนที่ 7: เก็บจานที่ล้างเรียบร้อยแล้วเข้าที่
Algorithm เพื่ออธิบายเป็นขั้นตอนการทำงานดังนี้:
การล้างจานจำเป็นต้องมีลำดับที่ชัดเจน เช่น ล้างน้ำยาก่อน แล้วค่อยเช็ดแห้ง เพราะหากไม่ทำตามขั้นตอนนี้ จานอาจไม่สะอาดหรือเกิดคราบน้ำได้
สรุปการเขียน Algorithm
ใช้ภาษาที่เข้าใจง่ายและกระชับ
เน้นการอธิบายลำดับขั้นตอนที่ชัดเจน
การใช้ผังงาน (Flowchart) ช่วยให้เห็นภาพได้ดีขึ้น
การเขียน Algorithm ในการเขียนโปรแกรมก็คล้ายกับตัวอย่างในชีวิตประจำวันเหล่านี้ โดยต้องออกแบบลำดับขั้นตอนที่มีลำดับชัดเจนและสมเหตุสมผล
เพื่อให้โปรแกรมทำงานได้ตามที่ต้องการ
Assignment 1
**การนับจำนวนตัวเลขที่มีค่าเป็นบวกในชุดข้อมูล**
- ให้ตัวเลขมา 1 ชุด (มี่กี่ตัวก็ได้) ให้นับจำนวนตัวเลขที่มีค่ามากกว่าศูนย์
**การคำนวณเกรดเฉลี่ยของนักเรียน**
- ให้ข้อมูลเกรด (4, 3, 2, 1) พร้อมรายวิชาและหน่วยกิต ให้คำนวณค่าเกรดเฉลี่ย (0.00 - 4.00)
**การหาค่าตัวเลขที่มากที่สุดในกลุ่มข้อมูล**
- ให้นักเรียนเขียนขั้นตอนเพื่อหาตัวเลขที่มีค่ามากที่สุดจากชุดข้อมูลตัวเลขที่กำหนด
**การนับจำนวนตัวอักษรในประโยค**
- ให้นักเรียนออกแบบ Algorithm ที่สามารถนับจำนวนตัวอักษรทั้งหมดในประโยค โดยไม่นับช่องว่าง
**การตรวจสอบว่าเลขที่กำหนดเป็นเลขคู่หรือเลขคี่**
- ออกแบบ Algorithm ที่รับตัวเลขเข้ามาแล้วตรวจสอบว่าเป็นเลขคู่หรือเลขคี่ และแสดงผลลัพธ์
**การเรียงลำดับคะแนนจากมากไปน้อย**
- ให้นักเรียนเขียน Algorithm ที่สามารถเรียงคะแนนจากมากไปน้อยในกลุ่มข้อมูลที่ให้มา
**การแปลงอุณหภูมิจากองศาเซลเซียสเป็นฟาเรนไฮต์**
- ให้นักเรียนเขียน Algorithm ที่รับค่าอุณหภูมิในหน่วยเซลเซียสแล้วแปลงเป็นฟาเรนไฮต์ (สูตร: \( \text{F} = \text{C} \times 9/5 + 32 \))
**การคำนวณพื้นที่ของรูปสี่เหลี่ยมผืนผ้า**
- ให้นักเรียนออกแบบ Algorithm ที่รับค่าความกว้างและความยาวของสี่เหลี่ยมผืนผ้า จากนั้นคำนวณและแสดงผลพื้นที่
Assignment 1 (ต่อ)
**การหาค่ากำไรขาดทุน**
- ให้นักเรียนออกแบบ Algorithm เพื่อคำนวณค่ากำไรหรือขาดทุนจากราคาทุนและราคาขายที่กำหนด
ได้ค่ะ นี่คือหัวข้อปัญหาเพิ่มเติมอีก 5 หัวข้อเพื่อให้นักเรียนได้ฝึกการออกแบบ Algorithm:
**การคำนวณยอดรวมราคาสินค้า**
- ออกแบบ Algorithm ที่รับข้อมูลราคาสินค้าหลายรายการและคำนวณยอดรวมทั้งหมด โดยรวมถึงการคำนวณภาษีมูลค่าเพิ่ม (VAT) ที่กำหนดให้เป็นเปอร์เซ็นต์ เช่น 7%
**การคำนวณเกรดจากคะแนนสอบ**
- ให้นักเรียนออกแบบ Algorithm ที่รับคะแนนสอบและแปลงคะแนนเป็นเกรดตามเกณฑ์ที่กำหนด เช่น A, B, C, D, F
**การแปลงหน่วยเวลาจากวินาทีเป็นชั่วโมง นาที และวินาที**
- ออกแบบ Algorithm ที่รับข้อมูลจำนวนวินาทีและแปลงค่าให้เป็นชั่วโมง นาที และวินาที ตัวอย่างเช่น 3661 วินาที = 1 ชั่วโมง 1 นาที 1 วินาที
**การนับจำนวนตัวเลขคู่ในกลุ่มข้อมูล**
- ให้นักเรียนเขียน Algorithm เพื่อรับข้อมูลกลุ่มตัวเลข แล้วนับจำนวนตัวเลขที่เป็นเลขคู่ในกลุ่มข้อมูลนั้น
**การคำนวณเงินเดือนสุทธิ**
- ออกแบบ Algorithm ที่รับข้อมูลเงินเดือนและคำนวณหักค่าใช้จ่ายต่าง ๆ เช่น ประกันสังคม ภาษี แล้วคำนวณเงินเดือนสุทธิที่เหลือหลังหักค่าใช้จ่าย
Aj. Krit Th.
https://www.kritth.com