บทที่ 10...

Preview:

Citation preview

บทท 10

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

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

Requirement Phase

Integration Phase

Implement Phase

Design Phase

Planning Phase

Specification Phase

Maintenance Phase

Retirement

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ของตวหนงสอ

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

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

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

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

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

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

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

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

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

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

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

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

สญลกษณผงงาน

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

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

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

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

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

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

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

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

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

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

รหสเทยม (PSEUDO CODE)

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

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

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

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

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

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

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

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

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

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

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

สดสวน

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

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

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

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

วธทา

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

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

3. ทาซา 5 ถวย

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

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

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

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

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

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

สามเหลยม

วธทา

1. Set Variable

2. X = Input of Base

3. Y = Input of High

4. Z = ½ * X * Y

5. Output = Z

ตวอยางท 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

ตวอยางท 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

งาย

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

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

ใดบาง

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

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

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

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

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

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

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

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

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

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

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

ไดดงรป

Start

Input A,B

A+B

End

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

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

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

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

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

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

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

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

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

Start

Input A,B

C

End

C = A + B

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

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

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

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

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

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

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

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

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

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

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

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

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

Start

Input A

AVAT+A

End

VAT = 0.07 x A

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

เทอม

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

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

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

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

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

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

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

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

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

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

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

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

Start

Input U1,U2G1, G2

G

End

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

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

(TESTING AND DEBUGGING)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://www.udru.ac.th

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

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

2547.

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

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

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

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

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

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

Recommended