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

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. จบกำรทำงำน