การเขียนโปรแกรม
Download
Report
Transcript การเขียนโปรแกรม
หลักการทางานของคอมพิวเตอร์
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 ให้รับใหม่
(x1, x2, x3)
ตัวอย่ าง (ต่ อ)
2. หำค่ำเฉลี่ย
รวมค่ำทุกค่ำที่รับมำเข้ำด้วยกัน
นำค่ำผลรวมที่ได้หำรด้วย 3
นำค่ำผลลัพธ์ไปเก็บในตัวแปร
10+ 20+30
(sum = x1+ x2+x3)
(mean = sum / 3)
3. แสดงผลลัพธ์ทำงจอภำพ
แสดงคำว่ำค่ำเฉลี่ยเท่ำกับ
แสดงผลลัพธ์โดยมีทศนิ ยมสองตำแหน่ง
(Mean =
)
20.00
ขัน้ ตอนการทางาน
x1=10
x2=20
(sum = x1+ x2+x3)
x3=30
(mean = sum / 3)
Mean=20.00
การเขียนผังงานและซูโดโค้ ด
หลังจำกที่ได้วิเครำะห์ปัญหำแล้ว ขั้นตอนต่อไปจะใช้
เครื่ องมือช่วยในกำรออกแบบโปรแกรม โดยเขียนเป็ น
ลำดับขั้นตอนกำรทำงำนของโปรแกรมที่เรี ยกว่ำอัลกอริ ทึม
(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) เป็ นกำรที่ผเู้ ขียนโปรแกรมจะต้อง
คอยตรวจสอบกำรใช้โปรแกรมจริ ง เพื่อแก้ไขข้อผิดพลำดซึ่ งอำจเกิดขึ้นในภำยหลัง
รวมทั้งพัฒนำโปรแกรมให้ทนั สมัยอยูเ่ สมอเมื่อเวลำผ่ำนไป
กระบวนการแก้ ปัญหาด้ วยคอมพิวเตอร์
วิเคราะห์ ปัญหา
ต้องกำรอะไร
ต้องกำรเอำต์พต
ุ อย่ำงไร
ข้อมูลเข้ำเป็ นอย่ำงไร
ตัวแปรที่ใช้
วิธีกำรประมวลผลเป็ นอย่ำงไร
(ค่ำเฉลี่ยของข้อมูล 3 ค่ำ )
(Mean = ? )
(10, 20, 30)
(x1, x2, x3)
(sum = x1+ x2+x3)
(mean = sum / 3)
การเขียนผังงาน
ผังงำนเป็ นแผนภำพที่แสดงลำดับขั้นตอนในกำร
ทำงำนของโปรแกรม โดยมีกำรลงรำยละเอียด ใส่
วิธีกำร และจัดลำดับขั้นตอนของโปรแกรม ตั้งแต่
เริ่ มต้นจำกกำรรับข้อมูล กำรประมวลผล ไปจนถึง
กำรแสดงผลลัพธ์กำรทำงำน
สัญลักษณ์ ท่ ใี ช้ ในการเขียนผังงาน
สัญลักษณ์ ท่ ใี ช้ ในการเขียนผังงาน
ตัวอย่ างการเขียนผังงาน
สัญลักษณ์ของ
กำรรับค่ำ
50.0
2
100.0
สัญลักษณ์ของ
กำรคำนวณ
ผังงานแบบทางเลือก
เป็ นกำรทำงำนที่ตอ้ งมีกำรตัดสิ นใจ เพื่อเลือกกำรทำงำน โดยใช้สัญลักษณ์
กำรเปรี ยบเทียบ
F
T
F
T
condition
condition
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 ออกมำแสดงบนจอภำพ
พิมพ์ค่ำของ a
พิมพ์ค่ำของ b
START
a = 10
b=5
T
a>b
F
print “B = “, b
print “A = “, a
STOP
แบบทดสอบ เก็บคะแนน 5 คะแนน
จงเขียนผังงำนในกำรจับไม้ส้ นั ไม้ยำวสำมครั้ง
ถ้ำได้ไม้ยำวให้ได้เงิน 100 บำท
ถ้ำได้ไม้ส้ น
ั ให้เสี ยเงิน 100 บำท
ตัวอย่ำงเช่น
ครั้ง 1 2
ย ย
ย ส
ส ส
3
ย 300
ย 100
ส -300
ซูโดโค้ ด
ซูโดโค้ดเป็ นคำอธิบำยขั้นตอนกำรทำงำนของโปรแกรมโดยใช้ถอ้ ยคำผสม
ระหว่ำงภำษำอังกฤษและภำษำกำรเขียนโปรแกรมแบบโครงสร้ำงที่เข้ำใจง่ำยมำแสดง
ลำดับกำรทำงำนของโปรแกรม หรื ออำจใช้ภำษำไทยก็ได้ โดยให้ผเู ้ ขียนโปรแกรม
สำมำรถพัฒนำขั้นตอนต่ำง ๆ ให้เป็ นโปรแกรมได้ง่ำยขึ้น
ตัวอย่ างเช่ นในการเขียนซูโดโค้ ดสาหรั บให้ คอมพิวเตอร์ หาค่ าเฉลี่ยจาก
ข้ อมูลที่รับเข้ าทางแป้นพิมพ์ อาจเขียนได้ ดังนี ้
start
n=0
sum=0
Input X
X>0
T
n = n+1
sum=sum+X
F
mean=sum/n
end
การวิเคราะห์ ปัญหา
ตัวอย่ างที่ 1
จงเขียนแนวทำงกำรแก้ปัญหำด้วยคอมพิวเตอร์ สำหรับให้คอมพิวเตอร์คำนวณหำ
ค่ำจ้ำงพนักงำนเป็ นรำยชัว่ โมง จำกนั้นแสดงค่ำจ้ำงที่คำนวณได้
start
ค่ำจ้ำงสุ ทธิ = จำนวนชัว่ โมง x อัตรำต่อชัว่ โมง
Input ID,
Name, H, R
Pay = H x R
Print Pay
end
ตัวอย่ างการวิเคราะห์
วิธีทา
ต้ องการอะไร
ต้องกำรทรำบค่ำจ้ำงของพนักงำนแต่ละคน
ต้ องการเอาต์ พุตอย่ างไร
ต้องกำรเอำต์พตุ เป็ นค่ำจ้ำงสุ ทธิของพนักงำนทำงจอภำพ
ตัวอย่ างการวิเคราะห์
ข้ อมูลเข้ า
รหัสพนักงำน
ชื่อพนักงำน
จำนวนชัว่ โมงทำงำนเก็บในตัวแปรชื่อ Hours
ค่ำจ้ำงรำยชัว่ โมงเก็บในตัวแปรชื่อ PayRate
ตัวอย่ างการวิเคราะห์
start
Input ID,
กาหนดวิธีการคานวณ
Name, H, R
ค่ำจ้ำงสุ ทธิ = จำนวนชัว่ โมง x อัตรำต่อชัว่ โมง
Pay = H x R
ขั้นตอนการประมวลผล
Print Pay
1. เริ่ มต้น
2. รับรหัสพนักงำน, ชื่อพนักงำน, จำนวนชัว่ โมงทำงำน, ค่ำจ้ำงรำยชัว่ โมง
end
3. คำนวณ ค่ำจ้ำงสุ ทธิ = Hours x PayRate
4. แสดงผลลัพธ์ เป็ นรหัสพนักงำน ชื่อ และค่ำจ้ำงสุ ทธิ
5. จบกำรทำงำน