25
บทที 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต ้น

บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

บทท 10

การเขยนโปรแกรมคอมพวเตอรเบองตน

Page 2: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

ขนตอนในการเขยนโปรแกรม (PROCEDURE OF PROGRAMMING)

Requirement Phase

Integration Phase

Implement Phase

Design Phase

Planning Phase

Specification Phase

Maintenance Phase

Retirement

Page 3: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

ขนตอนในการเขยนโปรแกรม (1)

ขนตอนของการสอบถามความตองการ (Requirement Phase) เปนขนตอนสอบถามความตองการของผใชโปรแกรมหรอลกคา วาตองการใหโปรแกรมทสรางขนสามารถทาอะไรไดบาง

ขนตอนของการวเคราะห (Specification (Analysis) Phase) เปนขนตอนของกการวเคราะหหรอกาหนดรายละเอยดตางๆ หลงจากทราบความตองการของผใชแลวกมาทาการวเคราะหวาจะสรางโปรแกรมตามความตองการของผใช ตองทาอยางไร (อยางกวาง ๆ) จะใชเครองมออะไรบางในการพฒนาโปรแกรม

ขนตอนของการวางแผน (Planning Phase) เปนขนตอนของการวางแผนงาน จะกระทาการวางแผน สรางตารางเวลาการทางาน กระจายงานทตองทา ซงเปนงานทไดจากขนตอนของการวเคราะหในกอนหนาน

Page 4: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

ขนตอนในการเขยนโปรแกรม (2)

ขนตอนการออกแบบการทางานของแตละงานยอย (Design Phase)

เปนขนตอนของการออกแบบของแตละงานยอย ซงเปนงานทไดจากการ

กระจายงานในขนตอนการวางแผน ซงประกอบดวยสองขนตอนทสาคญคอ

การคดหาวธการทางานของโปรแกรมหรอทเรยกกนวาขนตอนวธ (Algorithm)

ซงการคดหาวธการทางานของแตละคนสาหรบแตละปญหากจะแตกตางกน ตามแต

ความสามารถในการคดของขนตอนวธ แตผลลพธทไดจะตองสามารถกระทาไดตามท

ตองการตามทไดวางแผนไว

การถายทอดความคดนนไปใหกบผทจะทางานในสวนการเขยนโปรแกรมเรา

มกจะใชสองวธการ (อยางใดอยางหนง) นนคอ การเขยนผงงาน (Flowchart) ซ งเปน

การอธบายขนตอนการทางานของโปรแกรมในรปแบบของกราฟกและ การเขยนรหส

เทยม (Pseudo code) ซงเปนการอธบายขนตอนการทางานของโปรแกรมในรปแบบ

ของตวหนงสอ

Page 5: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

ขนตอนในการเขยนโปรแกรม (3)

ขนตอนของการเขยนโปรแกรม (Implementation Phase) เปนขนตอนของการเขยนโปรแกรมตามทออกแบบไวตามขนตอนการวางแผนงาน การเขยนโปรแกรมโดยมากจะดจากผงงานหรอรหสเทยม

ขนตอนของรวมงาน (Integration Phase) เปนขนตอนของการนาโปรแกรมทเขยนเสรจของแตละงานมารวมกน แลวลองนาไปใชจรง

ขนตอนของการบารงรกษา (Maintenance Phase) เปนขนตอนการบารงรกษาโปรแกรม ระหวางทใชโปรแกรมนนอาจเกดปญหาบางอยาง เชนโปรแกรมทางานผดพลาด โปรแกรมทางานไมตรงกบความตองการตามทผใชโปรแกรมตองการ ซงผพฒนาโปรแกรมตองนาโปรแกรมไปแกไข ปรบปรงเพมเตมจนไดโปรแกรมทสมบรณตามทผใชตองการ

ขนตอนของการเลกใชงาน (Retirement) คอการเลกใชโปรแกรม

Page 6: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

สญลกษณผงงาน (FLOWCHART SYMBOL)

สญลกษณผงงานเปนเครองมออกแบบหนงทใชรปภาพ แสดงถงขนตอนใน

การเขยนโปรแกรม หรอขนตอนในการแกปญหาทละขน และมเสนทแสดง

ทศทางการไหลของขอมลตงแต จดเรมตน จนกระทงจดสนสดของ

โปรแกรมหรอผลลพธของโปรแกรม ใชเปนโครงรางกอนการเขยนโปรแกรม

คอมพวเตอร เพอสามารถเหนภาพของการแกปญหาไดอยางชดเจนและ

เขาใจงายยงขน

Page 7: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

สญลกษณผงงาน

ผงงานระบบ (System flowchart) เปนผงงานทเขยนขนเพอแสดงใหเหน

ถงความสมพนธระหวางโปรแกรมตางๆ วาไดรบขอมลเขามาประมวลผล

จากทางใด ประมวลผลเสรจแลวจะสงไปทไหน และผลลพธทเกดขนจะ

แสดงออกในรปใด

ผงงานโปรแกรม (Program flowchart หรอ Detail flowchart) เปนผง

งานทเขยนขนเพอแสดงขนตอนคาสงอยางละเอยด ซงตามปกตแลว

ผ เขยนโปรแกรมจะเขยนผงงานโปรแกรม ขนมากอน ตอจากนนจะ

ตรวจสอบขนตอนคาสงงานแตละขนในผงงานวาไมมผดพลาดแลวจงลง

มอเขยนโปรแกรมเพอนาไปประยกตใชงานตอไป

Page 8: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

ความหมายของสญลกษณผงงาน

Page 9: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

รหสเทยม (PSEUDO CODE)

คอรหสจาลองทใชเปนตวแทนของขนตอนวธทใชในภาษาการ

เขยนโปรแกรมทวไป โดยจะแสดงขนตอนวธการทใชภาษาเขยนท

เขาใจงาย โดยมถอยคาหรอประโยคคาสงทเขยนอยในรปแบบ

ของภาษาองกฤษหรอภาษาไทยกได ขนอยกบความสะดวกของ

ผ เขยนโปรแกรม แตโดยทวไปจะใชรปแบบภาษาองกฤษเพอ

อธบายรายละเอยดของขนตอนวธตางๆ เนองจากเปน

ภาษากลางทสวนมากนยมใชกน

Page 10: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

หลกการเขยนรหสเทยม

ถอยคาทใชเขยน ใชภาษาองกฤษหรอภาษาไทยทเขาใจงาย

ในหนงบรรทด ควรใหมเพยงหนงประโยคคาสงเทานน

ใชยอหนาใหเปนประโยชน ในการแสดงการควบคมอยางเปน

สดสวน

แตละประโยคคาสงใหเขยนจากบนลงลาง และมทางออกทางเดยว

กลมของประโยคคาสงอาจรวมเปนหมวดหมแลวเรยกใชเปนหนวย

โปรแกรมประยกต (Module)

Page 11: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

ตวอยางท 1 ใหทาการเขยนรหสเทยมของการชงกาแฟ จานวน 5 ถวย

วธทา

1. ซอกาแฟผง 5 ซอง

2. ตมนารอนจนเดอด

3. ทาซา 5 ถวย

3.1 เตรยมถวยและชอน สาหรบชงกาแฟ

3.2 ฉกซองกาแฟ แลวเทลงถวยเปลา

3.3 เทนารอนลงถวยแลวใชชอนคนใหเขากน

4. เรยกเพอนทง 5 คน

5. เชญทกรบประทานกาแฟ

Page 12: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

ตวอยางท 2 ใหทาการเขยนรหสเทยมของการหาคานวณพนท

สามเหลยม

วธทา

1. Set Variable

2. X = Input of Base

3. Y = Input of High

4. Z = ½ * X * Y

5. Output = Z

Page 13: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

ตวอยางท 3 ใหทาการเขยนรหสเทยมของการคานวณของคา 3 คา

วธทา

1. Set Variable

2. X = Input Value 1

3. Y = Input Value 2

4. Z = Input Value 3

5. Total = X * Y * Z

6. Output = Total

Page 14: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

ตวอยางท 4 ใหทาการเขยนรหสเทยมของการคานวณของคาเกรด

เฉลยของนกศกษา จานวน 2 เทอม

วธทา

1. Set Variable

2. X = Input Grade1

3. Y = Input Grade 2

4. Calculate Average by Using Z = (X+Y)/2

5. Show Result of Z

Page 15: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

การวเคราะหผงงาน (1)

สงทโจทยตองการ หมายถงสงทตองการใหเครองคอมพวเตอรทาให เชน

ตองการใหคานวณเกรดเฉลยของนกศกษา คานวณเกรดของนกศกษา

และอนๆ การพจารณาถงสงทโจทยตองการเปนสวนทสาคญมาก เพราะ

ถาไมสามารถเขาสงทโจทยตองการกไมสามารถจะทาขนตอนตอไปไดเลย

หรอถาเขาใจสวนนผดกจะทาใหงานขนตอนทเหลอผดหมด

ผลลพธทตองการแสดง (Output Results) หมายถงผลลพธทตองการ

ใหคอมพวเตอรแสดงผลออกมาวาควรจะมลกษณะในการแสดงผลอยางไร

มรายละเอยดทตองการใหแสดงผลมากนอยเพยงใด

ขอมลทตองนาเขา (Input Data) หมายถงขอมลอนพตทตองปอนเขามา

เพอใชในการประมวลผล

Page 16: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

การวเคราะหผงงาน (2)

ตวแปรทใช (Variable) หมายถงตวแปรทใชแทนความหมายของขอมล

เพอความสะดวกในการอางถงขอมล ในการเขยนโปรแกรมควรตงชอตว

แปรทมความหมายทมความเกยวของกบขอมล การตงขอตวแปรนจะ

ขนอยกบกฎเกณฑของภาษาคอมพวเตอรของแตละภาษาทใชในการเขยน

โปรแกรม เนองจากภาษาคอมพวเตอรแตละภาษามขอกาหนดในการตง

ตวแปรทแตกตางกนไป

วธการประมวลผล (Processing) หมายถงวธการประมวลผลโดยจะ

แสดงขนตอนตางๆ ของการประมวลผลทงหมด ในขนตอนของวธการนถา

ทาไดอยางมประสทธภาพและเขาใจงายกจะชวยในการเขยนโปรแกรมให

งายยงขน เนองจากมองเหนกระบวนการตางๆ ชดเจน

Page 17: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

หลกการทวไปของการเขยนผงงาน

ควรมจดเรมตนและจดสนสดเพยงจดเดยวในผงงาน

มทางเขาของสญลกษณเพยงทางเดยว

มทางออกของสญลกษณเพยงทางเดยว แตยกเวนสญลกษณของการ

ตดสนใจทสามารถออกได สองทาง

ทศทางของสญลกษณควรจะเขยนจากบนลงลาง

ขอความทอยในสญลกษณควรจะสนกะทดรด และสอความหมายทเขาใจ

งาย

ขนาดของสญลกษณควรมความพอด

เสนทางในการเชอมตอควรจะเขยนใหชดเจน วาจะมลกศรไปในทศทาง

ใดบาง

Page 18: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

ตวอยางท 5 จงเขยนผงงานของการบวกเลขจานวน 2 คา

วเคราะหแนวคดท 1 ในการเขยนผงงาน

ถาโจทยไมไดระบวาใหคาตวเลขมาจากไหน

อนพตอะไร ใหสมมตวาไดรบอนพตของเลขมา

จากคยบอรด ดงนนทาการรบขอมลอนพตคอรบ

ตวเลขสองตวเขามา เมอรบคาเขามาแลวจะเกบ

คาไวทไหน ซงโดยปกตแลวจะเกบไวในตวแปรท

สรางขนมา ดงนนในการเขยนผงงาน เราจะเอา

ตวเลขตวแรกไวทตวแปร A และตวเลขตวทสอง

ไวทตวแปร B แลวจากนนกเอาเลขสองตวมา

บวกกนแลวแสดงผล ซงสามารถเขยนเปนผงงาน

ไดดงรป

Start

Input A,B

A+B

End

Page 19: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

ตวอยางท 5 จงเขยนผงงานของการบวกเลขจานวน 2 คา

วเคราะหแนวคดท 2 ในการเขยนผงงาน

ใหสมมตวาไดรบอนพตของเลขมาจากคยบอรด

ดงนนทาการรบขอมลอนพตคอรบตวเลขสองตว

เขามา เมอรบคาเขามาแลวจะเกบไวในตวแปร A

และตวแปร B แลวจากนน เอาคาตวแปร A และ

B ทาการบวกกนแลวเกบไวทตวแปร C สดทาย

นาเอาตวแปร C ไปแสดงผล ซงสามารถเขยน

เปนผงงานไดดงรป

Start

Input A,B

C

End

C = A + B

Page 20: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

ตวอยางท 6 จงเขยนผงงานของโปรแกรมสาหรบหาราคาของสนคา โดยใหผใชระบ

ราคาสนคา และโปรแกรมจะแสดงราคากอนรวมภาษและราคาหลงรวมภาษแลวให

ผใชสามารถเหนราคาสนคาทรวมภาษ

อตราภาษในทนสมมตใหอตราภาษเปน 7%

จากนนสงเกตจากโจทยมคาวา “ผใชระบ

ราคา” แสดงวาจะตองมการรบคาอนพต

จากผใช ดงนนใหรบคาอนพตจากคยบอรด

แลวเกบไวทตวแปร A จากนนใหตวแปรทชอ

วา VAT ใชเกบผลลพธจากการคานวณภาษ

โดยสามารถคานวณไดจาก VAT = 0.07 *

A สดทายแสดงราคากอนรวมภาษ (คาของ

ตวแปร A) และราคาหลงรวมภาษ (A+VAT)

ซงสามารถเขยนเปนผงงานไดดงรป

Start

Input A

AVAT+A

End

VAT = 0.07 x A

Page 21: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

ตวอยางท 7 จงเขยนผงงานของโปรแกรมสาหรบหาเกรดเฉลยรวมสอง

เทอม

จะหาเกรดเฉลยรวมสองเทอมไดจะตองร

หนวยกตทลงเทอมหนง เกรดทไดเทอมหนง

หนวยกตทลงเทอมสอง เกรดทไดเทอมสอง

ดงนนตองรบคามาทงหมดสคาโดยท รบคา

หนวยกตทลงเทอมหนงเกบไวทตวแปร U1

รบคาหนวยกตทลงเทอมสองเกบไวทตว

แปร U2 รบคาเกรดเทอมหนงเกบไวทตว

แปร G1 และรบคาเกรดเทอมสองเกบไวท

ตวแปร G2 จากนนทาการคานวณเกรด

เฉลยแลวเกบผลลพธไวทตวแปรชอ G

สดทายทาการแสดงผลคาของ G ออกมา

ซงสามารถเขยนเปนผงงานไดดงรป

Start

Input U1,U2G1, G2

G

End

G = (G1xU1 + G2xU2)/ (U1+U2)

Page 22: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

การตรวจสอบขอผดพลาดของโปรแกรม

(TESTING AND DEBUGGING)

ตรวจสอบดวยตนเอง (Self Checking) เปนการทดลองเขยนโปรแกรมลงบน

กระดาษ แลวใสตรวจสอบการทางานของโปรแกรมทละขนดวยตนเองวาโปรแกรมม

การทางานทถกตองตามผลลพธทตองการหรอไม

ตรวจสอบดวยการแปลโปรแกรม หลงจากเขยนโปรแกรมเสรจ กจะปอนโปรแกรม

เขาสเครองเพอทาการแปลโปรแกรม โดยจะมการเรยกใชคอมไพเลอร (Compiler) และ

แอสแซมเบลอร (Assembler) ทาการแปลโปรแกรมใหเปนภาษาเครอง (Machine

Language) ในการแปลจะเปนการตรวจสอบความผดพลาดของโปรแกรมไปในตว ซง

ถามขอผดพลาดเกดขนโปรแกรมทใชเขยนภาษานนจะแจงขอผดพลาดทเกดขน

โดยทวไปมขอผดพลาดดานไวยาการของภาษา ขอผดพลาดในระหวางการรนของ

โปรแกรม และขอผดพลาดทเกดจากการตความหมายของปญหาผดไป

Page 23: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

แบบฝกหดทบทวน

1. สญลกษณผงงานคออะไร และมประโยชนอะไร จงอธบาย

2. รหสเทยมคออะไร และมประโยชนอะไร จงอธบาย

3. ขอแตกตางระหวางสญลกษณผงงานและรหสเทยมคออะไร จงอธบาย

4. จงอธบายขนตอนในการเขยนโปรแกรมตามแบบจาลองนาตก และจงอธบายขนตอนในแตละขน

5. จงเขยนรหสเทยมของโปรแกรมในการบวกเลขจานวน 5 ตว

6. จงเขยนรหสเทยมของโปรแกรมในการหาพนทของวงกลม

7. จงเขยนผงงานของโปรแกรมในการหาเสนรอบวงของวงกลม

8. จงเขยนผงงานของโปรแกรมในการแปลงสกลเงนบาทเปนเงนดอลลาร และแปลงสกลเงนดอลลารเปนเงนบาท

9. จงเขยนผงงานของโปรแกรมในการแปลง พ.ศ. เปน ค.ศ. และแปลง ค.ศ. เปน พ.ศ.

10. จงเขยนผงงานของโปรแกรมในการแปลงนาทเปนชวโมงและใหแสดงนาททเหลอ

Page 24: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

แบบฝกหดทบทวน

http://www.udru.ac.th

Page 25: บทที่ 10 การเขียนโปรแกรมคอมพิวเตอร์เบื้องต้นcs.udru.ac.th/~krit/Document_teaching/Intro_computer/Chapter

http://www.udru.ac.thhttp://www.udru.ac.th

เอกสารอางองกต ภกดวฒนะกล, คมภรระบบสารสนเทศ., กรงเทพฯ, เคทพ คอมพ แอน คอนซลท,

2547.

งามนจ อาจอนทร, ความรทวไปเกยวกบวทยาการคอมพวเตอร., กรงเทพฯ, 2542.

เตชา อศวสทธถาวร, เทคโนโลยสารสนเทศเบองตน., กรงเทพฯ, วงอกษร, 2547.

ธรวฒน ประกอบผล, คมอการเขยนโปรแกรมภาษา PASCAL., กรงเทพฯ, 2550.ภาควชาวทยาการคอมพวเตอร มหาวทยาลยบรพา, เอกสารประกอบการสอนวชา

เทคโนโลยสารสนเทศและการสอสาร., 2552. วศน เพมทรพย, และวโรจน ชยมล, ความรเบองตนเกยวกบคอมพวเตอรและเทคโนโลย

สารสนเทศ., กรงเทพฯ, 2548.

วกพเดย [Online]. Available: http://th.wikipedia.org/wiki [2552].