Transcript SP2-Day1

หลักสูตรอบรมครูคอมพิวเตอร์
หลักสูตรที่ ๑ ทักษะการโปรแกรมเบือ้ งต้ น
วันที่หนึ่ง
หลักการทางานของคอมพิวเตอร์
The von Neumann Architecture
ภาษาคอมพิวเตอร์ และการพัฒนาโปรแกรม
ภาษาคอมพิวเตอร์ และการพัฒนาโปรแกรม





กำหนดและวิเครำะห์ปัญหำ (Problem Definition and Problem
Analysis)
เขียนผังงำนและซูโดโค้ด (Pseudocoding)
เขียนโปรแกรม (Programming)
ทดสอบและแก้ไขโปรแกรม (Program Testing and Debugging)
ทำเอกสำรและบ ำรุ งรักษำโปรแกรม (Program Documentation and
Maintenance)
การกาหนดและวิเคราะห์ ปัญหา



กำหนดขอบเขตของปั ญหำ
กำหนดลักษณะของข้อมูลเข้ำและออกจำกระบบ (Input/Output
Specification)
กำหนดวิธีกำรประมวลผล (Process Specification)
ตัวอย่ าง
ตัวอย่าง
ถ้ำหำกต้องกำรออกแบบโปรแกรมให้คอมพิวเตอร์รับค่ำข้อมูล 3 ค่ำ
และแสดงค่ำเฉลี่ยทำงจอภำพ เรำอำจกำหนดและวิเครำะห์ปัญหำได้
ดังนี้
1. รับข้อมูลจำกคียบ์ อร์ด
• รับข้อมูลเฉพำะที่เป็ นตัวเลขมำเก็บในตัวแปร
• ถ้ำข้อมูลเท่ำกับ 0 ให้รับใหม่
ตัวอย่ าง (ต่ อ)
2. หำค่ำเฉลี่ย
• รวมค่ำทุกค่ำที่รับมำเข้ำด้วยกัน
• นำค่ำผลรวมที่ได้หำรด้วย 3
• นำค่ำผลลัพธ์ไปเก็บในตัวแปร
3. แสดงผลลัพธ์ทำงจอภำพ
• แสดงคำว่ำค่ำเฉลี่ยเท่ำกับ
• แสดงผลลัพธ์โดยมีทศนิยมสองตำแหน่ง
ขั้นตอนการทางาน
การเขียนผังงานและซูโดโค้ ด
หลังจำกที่ได้วเิ ครำะห์ปัญหำแล้ว ขั้นตอนต่อไปจะใช้เครื่ องมือ
ช่วยในกำรออกแบบโปรแกรม โดยเขียนเป็ นลำดับขั้นตอนกำรทำงำน
ของโปรแกรมที่เรี ยกว่ำอัลกอริ ทึม (Algorithm) โดยจะเขียนแสดง
ขั้นตอนกำรแก้ปัญหำ ด้วยประโยคที่ชดั เจนไม่คลุมเครื อ และมี
รำยละเอียดกำรทำงำนพอสมควรเพียงพอที่จะนำไปเขียนเป็ น
โปรแกรมให้ทำงำนจริ ง โดยอัลกอริ ทึมนั้นอำจเขียนให้อยูใ่ นรู ปของ
รหัสจำลองหรื อซูโดโค้ด (Pseudo-code) หรื อเขียนเป็ นผังงำน
(Flowchart) ก็ได้
การเขียนโปรแกรม
เปลี่ยนขั้นตอนกำรทำงำนให้อยูใ่ นรู ปรหัสภำษำคอมพิวเตอร์
กำรเขียนโปรแกรมจะต้องเขียนตำมภำษำที่คอมพิวเตอร์เข้ำใจโดย
อำจใช้ภำษำระดับสูง หรื อระดับต่ำซึ่ งสำมำรถเลือกได้หลำยภำษำ
กำรเขียนโปรแกรมแต่ละภำษำจะต้องทำตำมหลักไวยำกรณ์ (syntax)
ที่กำหนดไว้ในภำษำนั้น
การทดสอบและแก้ไขโปรแกรม
หลังจำกเขียนโปรแกรมจะต้องทดสอบควำมถูกต้องของโปรแกรมที่
เขียนขึ้น หำจุดผิดพลำดของโปรแกรมว่ำมีหรื อไม่ จุดผิดพลำดของโปรแกรม
นี้เรี ยกว่ำบัก (Bug) ส่ วนกำรแก้ไขข้อผิดพลำดให้ถูกต้องเรี ยกว่ำ ดีบกั (debug)
โดยทัว่ ไปแล้วข้อผิดพลำดจำกกำรเขียนโปรแกรมจะมีสองประเภทคือ
1. กำรเขียนคำสั่งไม่ถกู ต้องตำมหลักกำรเขียนโปรแกรมภำษำนั้น ๆ ซึ่ ง
เรี ยกว่ำ Syntax Error หรื อ Coding Error ข้อผิดพลำดประเภทนี้ เรำ
มักพบตอนแปลภำษำโปรแกรมเป็ นรหัสภำษำเครื่ อง
2. ข้อผิดพลำดทำงตรรก หรื อ Logic Error เป็ นข้อผิดพลำดที่โปรแกรม
ทำงำนได้ แต่ผลลัพธ์ออกมำไม่ถกู ต้อง
ทาเอกสารและบารุงรักษาโปรแกรม
ขั้นตอนนี้จะทำให้ผใู้ ช้สำมำรถใช้งำนโปรแกรมได้อย่ำงมีประสิ ทธิภำพ และ
สะดวกในกำรตรวจสอบข้อผิดพลำดโดยเขียนเป็ นเอกสำรประกอบโปรแกรม
ขึ้นมำ โดยทัว่ ไปแล้วแบ่งออกเป็ นสองประเภทคือ
1. คู่มือกำรใช้ หรื อ User Document หรื อ User guide ซึ่งจะอธิบำยกำรใช้
โปรแกรม
2. คู่มือโปรแกรมเมอร์ หรื อ Program Document หรื อ Technical Reference
ซึ่งจะอำนวยควำมสะดวกในกำรแก้ไขโปรแกรมและพัฒนำโปรแกรมในอนำคต
โดยจะมีรำยละเอียดต่ำงๆ เกี่ยวกับโปรแกรม เช่นชื่อโปรแกรม กำรรับข้อมูล กำร
พิมพ์ผลลัพธ์ข้นั ตอนต่ำง ๆ ในโปรแกรม เป็ นต้น
ส่ วนกำรบำรุ งรักษำโปรแกรม (Maintainance) เป็ นกำรที่ผเู้ ขียนโปรแกรม
จะต้องคอยตรวจสอบกำรใช้โปรแกรมจริ ง เพื่อแก้ไขข้อผิดพลำดซึ่งอำจเกิดขึ้นใน
ภำยหลัง รวมทั้งพัฒนำโปรแกรมให้ทนั สมัยอยูเ่ สมอเมื่อเวลำผ่ำนไป
กระบวนการแก้ปัญหาด้ วยคอมพิวเตอร์
วิเคราะห์ ปัญหา
• ต้องกำรอะไร
• ต้องกำรเอำต์พตุ อย่ำงไร
• ข้อมูลเข้ำเป็ นอย่ำงไร
• ตัวแปรที่ใช้
• วิธีกำรประมวลผลเป็ นอย่ำงไร
การเขียนผังงาน
ผังงำนเป็ นแผนภำพที่แสดงลำดับขั้นตอนในกำรทำงำนของ
โปรแกรม โดยมีกำรลงรำยละเอียด ใส่ วธิ ี กำร และจัดลำดับขั้นตอน
ของโปรแกรม ตั้งแต่เริ่ มต้นจำกกำรรับข้อมูล กำรประมวลผล ไป
จนถึงกำรแสดงผลลัพธ์กำรทำงำน
สั ญลักษณ์ ที่ใช้ ในการเขียนผังงาน
สั ญลักษณ์ ที่ใช้ ในการเขียนผังงาน
ตัวอย่ างการเขียนผังงาน
สัญลักษณ์ของ
กำรรับค่ำ
สัญลักษณ์ของ
กำรคำนวณ
ผังงานแบบทางเลือก
เป็ นกำรทำงำนที่ตอ้ งมีกำรตัดสิ นใจ เพื่อเลือกกำรทำงำน โดยใช้
สัญลักษณ์กำรเปรี ยบเทียบ
F
T
F
T
conditio
n
conditio
n
stmt F
stmt T
ผังงานแบบวนซ้า (while-do)
condition
T
stmt R1
stmt R2
F
Pretest เพรำะ
ทดสอบก่อนทำงำน
ภำยในลูป
ผังงานแบบวนซ้า (do-while)
stmt R1
stmt R2
condition
T
F
Posttest
เพรำะทำงำน
ก่อน แล้วจึง
ทดสอบ
ตัวอย่ าง
ตัวอย่ าง จงเขียนผังงำนเพื่อกำหนดค่ำให้กบั ตัวแปร a และ b
แล้วเปรี ยบเทียบเพื่อแสดงผล
ถ้ำตัวแปร a มีค่ำมำกกว่ำตัวแปร b ให้พิมพ์ค่ำตัวแปร a
ออกมำแสดงบนจอภำพ
ถ้ำไม่ใช่ ให้พิมพ์ค่ำตัวแปร b ออกมำแสดงบนจอภำพ
START
a = 10
b=5
T
a>b
F
print “B = “, b
print “A = “, a
STOP
ตัวอย่ าง
จงผังงำนในกำรจับไม้ส้ นั ไม้ยำวสำมครั้ง ถ้ำได้ไม้ยำวให้ได้เงิน
100 บำท ถ้ำได้ไม้ส้ นั ให้เสี ยเงิน 100 บำท
ซูโดโค้ ด
ซูโดโค้ดเป็ นคำอธิ บำยขั้นตอนกำรทำงำนของโปรแกรมโดยใช้
ถ้อยคำผสมระหว่ำงภำษำอังกฤษและภำษำกำรเขียนโปรแกรมแบบ
โครงสร้ำงที่เข้ำใจง่ำยมำแสดงลำดับกำรทำงำนของโปรแกรม หรื อ
อำจใช้ภำษำไทยก็ได้ โดยให้ผเู ้ ขียนโปรแกรมสำมำรถพัฒนำขั้นตอน
ต่ำง ๆ ให้เป็ นโปรแกรมได้ง่ำยขึ้น
ตัวอย่ างเช่ นในการเขียนซูโดโค้ ดสาหรับให้ คอมพิวเตอร์ หาค่ าเฉลีย่
จากข้ อมูลทีร่ ับเข้ าทางแป้นพิมพ์อาจเขียนได้ ดงั นี้
การวิเคราะห์ ปัญหา
ตัวอย่างที่ 1
จงเขียนแนวทำงกำรแก้ปัญหำด้วยคอมพิวเตอร์ สำหรับให้
คอมพิวเตอร์คำนวณหำค่ำจ้ำงพนักงำนเป็ นรำยชัว่ โมง จำกนั้นแสดง
ค่ำจ้ำงที่คำนวณได้
ตัวอย่ างการวิเคราะห์
วิธีทา
ต้ องการอะไร
ต้องกำรทรำบค่ำจ้ำงของพนักงำนแต่ละคน
ต้ องการเอาต์ พตุ อย่ างไร
ต้องกำรเอำต์พตุ เป็ นค่ำจ้ำงสุ ทธิ ของพนักงำนทำงจอภำพ
ตัวอย่ างการวิเคราะห์
ข้ อมูลเข้ า
•
•
•
•
รหัสพนักงำน
ชื่อพนักงำน
จำนวนชัว่ โมงทำงำนเก็บในตัวแปรชื่อ Hours
ค่ำจ้ำงรำยชัว่ โมงเก็บในตัวแปรชื่อ PayRate
ตัวอย่ างการวิเคราะห์
กาหนดวิธีการคานวณ
ค่ำจ้ำงสุ ทธิ = จำนวนชัว่ โมง x อัตรำต่อชัว่ โมง
ขั้นตอนการประมวลผล
1. เริ่ มต้น
2. รับรหัสพนักงำน, ชื่อพนักงำน, จำนวนชัว่ โมงทำงำน, ค่ำจ้ำงรำยชัว่ โมง
3. คำนวณ ค่ำจ้ำงสุ ทธิ = Hours x PayRate
4. แสดงผลลัพธ์ เป็ นรหัสพนักงำน ชื่อ และค่ำจ้ำงสุ ทธิ
5. จบกำรทำงำน
ตัวอย่ างที่ 2
จงเขียนแนวทำงกำรแก้ปัญหำด้วยคอมพิวเตอร์ ในกำรหำ
ปริ มำตรทรงกระบอก และแสดงค่ำปริ มำตรที่คำนวณได้
ต้ องการอะไร
ต้องกำรคำนวณปริ มำตรของรู ปทรงกระบอก
ต้ องการเอาต์ พตุ อย่ างไร
ค่ำปริ มำตรทรงกระบอกเป็ นรู ปแบบเลขทศนิยมทำงจอภำพ
การวิเคราะห์ ปัญหา
ข้ อมูลเข้ า ควำมสูงของทรงกระบอก (h) และรัศมีของทรงกระบอก(r) เป็ น
รู ปแบบเลขทศนิยม
วิธีการคานวณ ปริ มำตรทรงกระบอก =  x รัศมี2 x ควำมสูง
ขั้นตอนการประมวลผล
1. เริ่ มต้น
2. รับค่ำควำมสู งและค่ำรัศมีของทรงกระบอก
3. คำนวณค่ำปริ มำตร จำก ปริ มำตร =  x r2 x h
4. แสดงค่ำปริ มำตรทรงกระบอกทำงจอภำพ
5. จบกำรทำงำน
แบบฝึ กหัดการวิเคราะห์ ปัญหา



จงวิเครำะห์ปัญหำและเขียนอัลกอริ ทึมเพื่อรำยงำนผลสอบของ
นักศึกษำวิชำคอมพิวเตอร์ โดยให้แสดงคะแนนรวมและเกรดออกมำ
จงวิเครำะห์ปัญหำและเขียนอัลกอริ ทึมของกำรบวกตัวเลขจำนวนสำม
ค่ำที่อ่ำนเข้ำมำและแสดงผลออกทำงเครื่ องพิมพ์
จงวิเครำะห์ปัญหำและเขียนอัลกอริ ทึมสำหรับหำค่ำเฉลี่ยของอุณหภูมิ
ประจำวัน โดยรับค่ำอุณหภูมิสูงสุ ดและอุณหภูมิต่ำสุ ดเป็ นเลขจำนวน
เต็มเข้ำไปและให้แสดงค่ำอุณหภูมิเฉลี่ยออกทำงจอภำพ
การทดสอบขั้นตอนวิธีการแก้ปัญหา
ถ้ำหำกต้องกำรพัฒนำโปรแกรมให้รับข้อมูลตัวเลขจำนวนเต็ม
ทำงแป้ นพิมพ์จำนวน 9 ตัว แล้วให้ระบบนับว่ำตัวเลขเหล่ำนั้นมีค่ำที่
เป็ นเลขบวกกี่ตวั เป็ นเลขลบกี่ตวั และเป็ นศูนย์กี่ตวั โดยให้แสดง
ผลลัพธ์ทำงจอภำพ
จะทดสอบขั้นตอนกำรแก้ปัญหำอย่ำงไร ?
วิเคราะห์ ข้นั ตอนการทางาน
สิ่ งที่ต้องการ
ผลลัพธ์ ที่ต้องการ
ข้ อมูลนาเข้ า
ตัวแปรที่ใช้
ต้องกำรทรำบจำนวนตัวเลขที่เป็ นบวก เป็ นลบ และเป็ นศูนย์
แสดงจำนวนตัวเลขที่เป็ นบวก, ลบ และศูนย์ทำงจอภำพ
รับข้อมูลเข้ำทำงแป้ นพิมพ์ทีละตัว
ให้ X แทนตัวเลขที่รับเข้ำทำงแป้ นพิมพ์ทีละตัว
num_p แทนตัวนับจำนวนที่เป็ นบวก
num_n แทนตัวนับจำนวนที่เป็ นลบ
num_z แทนตัวนับจำนวนที่เป็ นศูนย์
วิธีการประมวลผล
วิธีการคิด
ถ้ำตัวเลขเป็ นจำนวนบวก ให้บวก 1 เข้ำกับตัวนับจำนวนบวก
ถ้ำตัวเลขเป็ นจำนวนลบ ให้บวก 1 เข้ำกับตัวนับจำนวนลบ
ถ้ำตัวเลขเป็ นศูนย์ ให้บวก 1 เข้ำกับตัวนับจำนวนศูนย์
กรรมวิธีการประมวลผล
1. กำหนดให้ตวั นับ num_p, num_n และ num_z มีคำ่ เป็ นศูนย์
2. อ่ำนค่ำตัวเลขทำงแป้ นพิมพ์มำเก็บในตัวแปร X
3. ถ้ำอ่ำนไม่ได้ ไปข้อ 7
4. ถ้ำ X เป็ นจำนวนบวก ให้บวก 1 กับ num_p แล้วไปข้อ 2
5. ถ้ำ X เป็ นจำนวนลบ ให้บวก 1 กับ num_n แล้วไปข้อ 2
6. ถ้ำ X เป็ นค่ำศูนย์ ให้บวก 1 กับ num_z แล้วไปข้อ 2
7. พิมพ์คำ่ ตัวนับทำงจอภำพทั้งสำมตัว
8. หยุด
ตรวจสอบผลลัพธ์
สำหรับกรรมวิธีกำรประมวลผล ถ้ำหำกในข้อ 6 ตัดคำว่ำ
“ถ้ำ X เป็ นค่ำศูนย์” ทิ้งไป คำตอบก็จะได้เท่ำเดิม
เนื่องจำกถ้ำหำกผ่ำนข้อ 4 และ 5 มำได้กแ็ สดงว่ำตัวเลขนั้นมีค่ำเป็ นศูนย์อยูแ่ ล้ว
สำหรับกำรตรวจสอบวิธีกำรประมวลผลสำมำรถทำได้ดงั นี้
1. ลองยกตัวอย่ำงข้อมูลขึ้นมำ 1 ชุด ถ้ำหำกตัวเลขทั้ง 9 ตัวมีค่ำเป็ น
13,7,-4,0,-5,2,6,-2 และ 35
2. คิดคำตอบกำรประมวลผลด้วยตนเอง
จะต้องได้จำนวนบวก 5 ตัว จำนวนลบ 3 ตัว และศูนย์ 1 ตัว