หลักการเขียนโปรแกรม

การวิเคราะห์ปัญหาและวางแผน (Algorithm)

วัตถุประสงค์การเรียนรู้

  1. เข้าใจความสำคัญของการวิเคราะห์ปัญหาในการเขียนโปรแกรม

  2. สามารถอธิบายแนวคิดของ Algorithm

  3. สามารถออกแบบ Algorithm เบื้องต้นได้

  1. คือการทำความเข้าใจถึงปัญหาที่ต้องการแก้ไข

  2. การหาวิธีการแก้ไขที่เหมาะสม ก่อนเริ่มเขียนโปรแกรม

  3. ช่วยให้การเขียนโปรแกรมเป็นไปอย่างมีประสิทธิภาพ

การวิเคราะห์ปัญหาคืออะไร?

ทำไมต้องวิเคราะห์ปัญหา?

  1. การวิเคราะห์ปัญหาช่วยลดข้อผิดพลาดในการเขียนโปรแกรม

  2. ทำให้ผู้เขียนโปรแกรมสามารถเห็นภาพรวมของการแก้ปัญหา

  3. ประหยัดเวลาและทรัพยากรในการพัฒนาโปรแกรม

Algorithm คืออะไร?

  1. Algorithm คือ ขั้นตอนหรือกระบวนการแก้ไขปัญหา

  2. เป็นการออกแบบลำดับการทำงานอย่างเป็นขั้นตอน เพื่อให้ได้ผลลัพธ์ที่ต้องการ

  3. อาจเปรียบเสมือน “สูตร” ในการทำงานของโปรแกรม

ตัวอย่างการออกแบบหน้าแอพ Shopee

1

เลือกที่อยู่สำหรับจัดส่ง

2

ระบุวิธีการจัดส่ง

3

เลือกวิธีชำระเงิน (ค่าสินค้า)

Algorithm ที่ดี

มีขั้นตอนที่ชัดเจนและเจาะจง

สามารถนำไปปฏิบัติได้จริง

ประหยัดเวลาและทรัพยากร

มีจุดเริ่มต้นและจุดสิ้นสุดที่ชัดเจน

พิจารณา . .

การชงกาแฟ

การล้างจาน

การชงกาแฟ

  • ขั้นตอนที่ 1: เตรียมอุปกรณ์และส่วนผสม (ถ้วยกาแฟ, ช้อน, ผงกาแฟ, น้ำร้อน, น้ำตาล, ครีมเทียม)

  • ขั้นตอนที่ 2: ต้มน้ำร้อน (หรือใช้น้ำร้อนที่เตรียมไว้)

  • ขั้นตอนที่ 3: ใส่ผงกาแฟลงในถ้วยกาแฟ

  • ขั้นตอนที่ 4: เติมน้ำร้อนลงในถ้วยกาแฟ

  • ขั้นตอนที่ 5: คนให้เข้ากันจนผงกาแฟละลาย

  • ขั้นตอนที่ 6: เติมน้ำตาลหรือครีมเทียมตามความชอบ

  • ขั้นตอนที่ 7: คนให้เข้ากันอีกรอบ

  • ขั้นตอนที่ 8: กาแฟพร้อมดื่ม

Algorithm เพื่ออธิบายเป็นขั้นตอนการทำงานดังนี้:

แต่ละขั้นตอนมีลำดับชัดเจนและต้องทำให้ครบถ้วนเพื่อให้ได้กาแฟที่พร้อมดื่ม

การล้างจาน

  • ขั้นตอนที่ 1: เตรียมจานที่ต้องการล้าง รวมถึงฟองน้ำ, น้ำยาล้างจาน, และผ้าเช็ดจาน

  • ขั้นตอนที่ 2: ล้างจานเบื้องต้นด้วยน้ำเพื่อล้างเศษอาหารออก

  • ขั้นตอนที่ 3: บีบหรือเทน้ำยาล้างจานลงบนฟองน้ำ

  • ขั้นตอนที่ 4: ใช้ฟองน้ำที่มีน้ำยาขัดล้างจานให้สะอาด

  • ขั้นตอนที่ 5: ล้างน้ำยาล้างจานออกจากจานด้วยน้ำสะอาด

  • ขั้นตอนที่ 6: วางจานให้สะเด็ดน้ำ หรือใช้ผ้าเช็ดให้แห้ง

  • ขั้นตอนที่ 7: เก็บจานที่ล้างเรียบร้อยแล้วเข้าที่

Algorithm เพื่ออธิบายเป็นขั้นตอนการทำงานดังนี้:

การล้างจานจำเป็นต้องมีลำดับที่ชัดเจน เช่น ล้างน้ำยาก่อน แล้วค่อยเช็ดแห้ง เพราะหากไม่ทำตามขั้นตอนนี้ จานอาจไม่สะอาดหรือเกิดคราบน้ำได้

สรุปการเขียน Algorithm

  1. ใช้ภาษาที่เข้าใจง่ายและกระชับ

  2. เน้นการอธิบายลำดับขั้นตอนที่ชัดเจน

  3. การใช้ผังงาน (Flowchart) ช่วยให้เห็นภาพได้ดีขึ้น

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

Assignment 1

  1. **การนับจำนวนตัวเลขที่มีค่าเป็นบวกในชุดข้อมูล**
    - ให้ตัวเลขมา 1 ชุด (มี่กี่ตัวก็ได้) ให้นับจำนวนตัวเลขที่มีค่ามากกว่าศูนย์

  2. **การคำนวณเกรดเฉลี่ยของนักเรียน**
    - ให้ข้อมูลเกรด (4, 3, 2, 1) พร้อมรายวิชาและหน่วยกิต ให้คำนวณค่าเกรดเฉลี่ย (0.00 - 4.00)

  3. **การหาค่าตัวเลขที่มากที่สุดในกลุ่มข้อมูล**
    - ให้นักเรียนเขียนขั้นตอนเพื่อหาตัวเลขที่มีค่ามากที่สุดจากชุดข้อมูลตัวเลขที่กำหนด

  4. **การนับจำนวนตัวอักษรในประโยค**
    - ให้นักเรียนออกแบบ Algorithm ที่สามารถนับจำนวนตัวอักษรทั้งหมดในประโยค โดยไม่นับช่องว่าง

  5. **การตรวจสอบว่าเลขที่กำหนดเป็นเลขคู่หรือเลขคี่**
    - ออกแบบ Algorithm ที่รับตัวเลขเข้ามาแล้วตรวจสอบว่าเป็นเลขคู่หรือเลขคี่ และแสดงผลลัพธ์

  6. **การเรียงลำดับคะแนนจากมากไปน้อย**
    - ให้นักเรียนเขียน Algorithm ที่สามารถเรียงคะแนนจากมากไปน้อยในกลุ่มข้อมูลที่ให้มา

  7. **การแปลงอุณหภูมิจากองศาเซลเซียสเป็นฟาเรนไฮต์**
    - ให้นักเรียนเขียน Algorithm ที่รับค่าอุณหภูมิในหน่วยเซลเซียสแล้วแปลงเป็นฟาเรนไฮต์ (สูตร: \( \text{F} = \text{C} \times 9/5 + 32 \))

  8. **การคำนวณพื้นที่ของรูปสี่เหลี่ยมผืนผ้า**
    - ให้นักเรียนออกแบบ Algorithm ที่รับค่าความกว้างและความยาวของสี่เหลี่ยมผืนผ้า จากนั้นคำนวณและแสดงผลพื้นที่

Assignment 1 (ต่อ)

  1. **การหาค่ากำไรขาดทุน**

  2. - ให้นักเรียนออกแบบ Algorithm เพื่อคำนวณค่ากำไรหรือขาดทุนจากราคาทุนและราคาขายที่กำหนด
    ได้ค่ะ นี่คือหัวข้อปัญหาเพิ่มเติมอีก 5 หัวข้อเพื่อให้นักเรียนได้ฝึกการออกแบบ Algorithm:

  3. **การคำนวณยอดรวมราคาสินค้า**
    - ออกแบบ Algorithm ที่รับข้อมูลราคาสินค้าหลายรายการและคำนวณยอดรวมทั้งหมด โดยรวมถึงการคำนวณภาษีมูลค่าเพิ่ม (VAT) ที่กำหนดให้เป็นเปอร์เซ็นต์ เช่น 7%

  4. **การคำนวณเกรดจากคะแนนสอบ**
    - ให้นักเรียนออกแบบ Algorithm ที่รับคะแนนสอบและแปลงคะแนนเป็นเกรดตามเกณฑ์ที่กำหนด เช่น A, B, C, D, F

  5. **การแปลงหน่วยเวลาจากวินาทีเป็นชั่วโมง นาที และวินาที**
    - ออกแบบ Algorithm ที่รับข้อมูลจำนวนวินาทีและแปลงค่าให้เป็นชั่วโมง นาที และวินาที ตัวอย่างเช่น 3661 วินาที = 1 ชั่วโมง 1 นาที 1 วินาที

  6. **การนับจำนวนตัวเลขคู่ในกลุ่มข้อมูล**
    - ให้นักเรียนเขียน Algorithm เพื่อรับข้อมูลกลุ่มตัวเลข แล้วนับจำนวนตัวเลขที่เป็นเลขคู่ในกลุ่มข้อมูลนั้น

  7. **การคำนวณเงินเดือนสุทธิ**
    - ออกแบบ Algorithm ที่รับข้อมูลเงินเดือนและคำนวณหักค่าใช้จ่ายต่าง ๆ เช่น ประกันสังคม ภาษี แล้วคำนวณเงินเดือนสุทธิที่เหลือหลังหักค่าใช้จ่าย

Aj. Krit Th.

https://www.kritth.com