33
1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม 1. ภาษาคอมพิวเตอร์ เครื่องคอมพิวเตอร์เป็นอุปกรณ์ที่ประมวลผลด้วยวงจรทางอิเล็กทรอนิกส์ ที่ทางานด้วยระบบ ดิจิตอล การที่สื่อสารกับคอมพิวเตอร์หรือสั่งงานให้คอมพิวเตอร์รับรู้และเข้าใจก็ต้องสื่อสารด้วยสัญญาณ ดิจิตอล สาหรับมนุษย์เราสามารถสื่อสารพูดคุยโดยใช้ภาษาเป็นสื่อกลาง ซึ่งภาษาที่ใช้จะต้องทาให้ผู้ส่งสาร และผู้รับสารเข้าใจตรงกันด้วย ดังนั้นเช่นเดียวกันการที่จะทาให้มนุษย์สามารถสื่อสาร หรือสั่งงาน คอมพิวเตอร์ได้ก็จะ ต้องอาศัยภาษาคอมพิวเตอร์เข้ามาเป็นสื่อกลาง สรุปว่า ภาษาคอมพิวเตอร์ หมายถึง สัญลักษณ์ อักขระบนคอมพิวเตอร์ที่ถูกกาหนดขึ้นมาเพื่อให้มนุษย์สามารถสั่งงานและควบคุมให้ คอมพิวเตอร์ทางานได้ตรงกับตามที่ต้องการ ภาษาที่มนุษย์ใช้ในแต่ละประเทศก็แตกต่างกันไป เช่น ภาษาอังกฤษ เยอรมัน ฝรั่งเศส ซึ่งภาษา เหล่านี้จะมีอักขระ สาเนียง และไวยากรณ์โครงสร้างของภาษาที่ใช้ในการสื่อสารที่แตกต่างกันออกไปตาม ท้องถิ่นของชนชาติประเทศนั้น เช่นเดียวกันภาษาคอมพิวเตอร์ก็จะมีไวยากรณ์และการใช้แตกต่างกันไป ตามการค้นคิดของผู้สร้างภาษา จึงทาให้เกิดเป็นภาษาต่าง ๆ ตามที่เราเคยได้ยิน เช่น ภาษา C , ภาษา Pascal และภาษา HTML เป็นต้น และเมื่อมีการนาภาษาคอมพิวเตอร์มาเรียบเรียงตามไวยากรณ์เพื่อ สั่งงานให้คอมพิวเตอร์ทางานในสิ่งที่ต้องการ เราก็จะเรียกกลุ่มคาสั่งการทางานนั้นว่า โปรแกรม นั่นเอง คอมพิวเตอร์ใช้สัญญาณดิจิตอล (Digital) ในการทางาน ดังนั้นคอมพิวเตอร์จะรู้จักและทางานกับ เลขฐานสองซึ่งก็คือ 0 และ 1 เท่านั้น โดยคาสั่งที่เป็น 0 และ 1 นี้จะถูกเรียกว่าภาษาเครื่องดังนั้นการ สั่งงานให้คอมพิวเตอร์ทางานจะต้องมีการเขียนคาสั่งที่ประกอบไปด้วย 0 และ 1 แต่ในความเป็นจริงการ เขียนคาสั่งด้วย 0 และ 1 สามารถทาได้ยากเพราะต้องเขียนคาสั่งมากมายและมนุษย์ก็ยากที่จะเข้าใจคาสั่ง ของภาษาเครื่อง ดังนั้นจึงได้มีการคิดค้นภาษาที่ใช้แทนภาษาเครื่อง และทาการแปลภาษาที่คิดค้นขึ้นมานีให้เป็นภาษาเครื่องเพื่อไปสั่งงาน คอมพิวเตอร์อีกครั้งหนึ่ง ภาษาคอมพิวเตอร์ ( Computer Languages) หมายถึงภาษาที่ใช้สาหรับเขียนชุดคาสั่งเพื่อให้ คอมพิวเตอร์ทางานตามที่กาหนด โดยชุดคาสั่งที่ถูกเขียนขึ้นนี้จะถูกเรียกว่าโปรแกรม ( Program) ซึ่งใน ปัจจุบันมีภาษาคอมพิวเตอร์ที่ใช้สาหรับการพัฒนาโปรแกรมอยู่มากมายหลายภาษา เซ่น ภาษาซี ภาษา

บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

1

บทท 1

ภาษาคอมพวเตอรและการพฒนาโปรแกรม

1. ภาษาคอมพวเตอร

เครองคอมพวเตอรเปนอปกรณทประมวลผลดวยวงจรทางอเลกทรอนกส ทท างานดวยระบบ

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

ดจตอล ส าหรบมนษยเราสามารถสอสารพดคยโดยใชภาษาเปนสอกลาง ซงภาษาทใชจะตองท าใหผสงสาร

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

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

สญลกษณ อกขระบนคอมพวเตอรทถกก าหนดขนมาเพอใหมนษยสามารถสงงานและควบคมให

คอมพวเตอรท างานไดตรงกบตามทตองการ

ภาษาทมนษยใชในแตละประเทศกแตกตางกนไป เชน ภาษาองกฤษ เยอรมน ฝรงเศส ซงภาษา

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

ทองถนของชนชาตประเทศนน เชนเดยวกนภาษาคอมพวเตอรกจะมไวยากรณและการใชแตกตางกนไป

ตามการคนคดของผสรางภาษา จงท าใหเกดเปนภาษาตาง ๆ ตามทเราเคยไดยน เชน ภาษา C , ภาษา

Pascal และภาษา HTML เปนตน และเมอมการน าภาษาคอมพวเตอรมาเรยบเรยงตามไวยากรณเพอ

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

คอมพวเตอรใชสญญาณดจตอล (Digital) ในการท างาน ดงนนคอมพวเตอรจะรจกและท างานกบ เลขฐานสองซงกคอ 0 และ 1 เทานน โดยค าสงทเปน 0 และ 1 นจะถกเรยกวาภาษาเครองดงนนการสงงานใหคอมพวเตอรท างานจะตองมการเขยนค าสงทประกอบไปดวย 0 และ 1 แตในความเปนจรงการเขยนค าสงดวย 0 และ 1 สามารถท าไดยากเพราะตองเขยนค าสงมากมายและมนษยกยากทจะเขาใจค าสงของภาษาเครอง ดงนนจงไดมการคดคนภาษาทใชแทนภาษาเครอง และท าการแปลภาษาทคดคนขนมานใหเปนภาษาเครองเพอไปสงงาน คอมพวเตอรอกครงหนง

ภาษาคอมพวเตอร (Computer Languages) หมายถงภาษาทใชส าหรบเขยนชดค าสงเพอให คอมพวเตอรท างานตามทก าหนด โดยชดค าสงทถกเขยนขนนจะถกเรยกวาโปรแกรม (Program) ซงในปจจบนมภาษาคอมพวเตอรทใชส าหรบการพฒนาโปรแกรมอยมากมายหลายภาษา เซน ภาษาซ ภาษา

Page 2: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

2

เบสค ภาษาจาวา เปนตน โดยในแตละภาษาจะมหลกการเขยนและกฎเกณฑทแตกตางกนไป แตภาษาคอมพวเตอรแตละภาษาจะมลกษณะทคลายกนคอ

มค าสงรบขอมลและแสดงผลขอมล ภาษาคอมพวเตอรทกภาษาตองมค าสงในการรบขอมลจากภายนอกเขาสคอมพวเตอรและจะตอง

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

หาร มค าสงทมการเปรยบเทยบและใหเลอกทศทาง ภาษาคอมพวเตอรจะตองมค าสงทใชส าหรบเปรยบเทยบเพอใชส าหรบตดสนใจในการเลอก

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

นนมาใชไดอก ภาษาคอมพวเตอรจะมลกษณะเชนเดยวกบภาษาทกภาษาบนโลก ซงจะประกอบไปดวย ตวเลข

ตวอกษร ค าศพท (Vocabularies) และไวยากรณ (Syntax)

2. ววฒนาการของภาษาคอมพวเตอร

ภาษาคอมพวเตอรไดถกพฒนามาจากภาษาคอมพวเตอรระดบต า ซงเปนภาษาทมนษยเขาใจยาก ซง ภาษาคอมพวเตอรระดบต านนเปนภาษาทตดตอและสงงานคอมพวเตอรไดโดยตรง จนมาถงในปจจบน ภาษาคอมพวเตอรไดถกพฒนาใหเปนภาษาคอมพวเตอรระดบสงทมนษยสามารถเขาใจไดงายขน การพฒนา โปรแกรมดวยภาษาคอมพวเตอรระดบสงจะเปนไปอยางสะดวกและรวดเรว เนองจากภาษาระดบสงมความ ใกลเคยงกบภาษามนษย ผพฒนาโปรแกรมจงสามารถเขาใจไดงายโดยววฒนาการของภาษาคอมพวเตอรสามารถ แบงไดดงน

1. ภาษายคท 1 ภาษาเครอง (Machine Language) 2. ภาษายคท 2 ภาษาแอสเซมบล (Assembly Language) 3. ภาษายคท 3 ภาษาระดบสง (High-level Language) 4. ภาษายคท 4 ภาษาระดบสงมาก (Very High-level Language) 5. ภาษายคท 5 ภาษาธรรมชาต (Natural Language)

Page 3: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

3

ภาษายคท 1 ภาษาเครอง (Machine Language) ภาษาเครอง หมายถง ภาษาของเครองคอมพวเตอรท เขยนแทนดวยเลขฐานสองทสงให

คอมพวเตอร ท างานไดทนท ซงการเขยนค าสงแบบนมนษยไมคนเคย เพราะการแทนค าสงจะเขยนดวย 0 หรอ 1 เมอน าไปแทนสญญาณทางไฟฟาในระบบคอมพวเตอรจะเปน ON หรอ OFF ภาษาเครองจดอยในภาษาระดบต า

รหสค าสงของภาษาเครองจะประกอบไปดวย 2 สวนคอ รหสบอกประเภทของค าสง (Operation Code หรอ Opcode) เปนรหสทสงใหเครองท าการประมวลผล เชน บวก ลบ คณ หาร สวนทสองคอรหสบอกต าแหนงขอมล (Operand) เปนรหสทบอกต าแหนงของขอมลทเกบอยบนหนวยความจ าเ พอใหคอมพวเตอรทราบวาตองน าขอมลต าแหนงใดมาท าการค านวณ ตวอยาง ภาษาเครอง เชน

01010111 010111011111011100011010 01010111 คอ Op-Code 010111011111011100011010 คอ Operand

ภาษายคท 2 ภาษาแอสเซมบล (Assembly Language) ภาษาแอสเซมบล ยงจดอยในภาษาระดบต า และจดเปนภาษาสญลกษณ (Symbolic Language)

เพราะเปนการใชสญลกษณขอความแทนกลมของเลขฐานสอง ความสมพนธระหวางภาษาแอสเซมบลกบภาษาเครองมความใกลเคยงกนมากคอ 1 ค าสงภาษาเครองเทากบ 1 ค าสงของภาษาแอสเซมบล ภาษาเครองเขยนแทนดวย เลขฐานสอง 1 หรอ 0 สวนภาษาแอสเซมบลเขยนแทนดวยสญลกษณหรอ (Mnemonic codes) เปนการน า ตวอกษรมาเขยนเปนตวยอ เชน การบวกใช ADD การลบใช SUB เปนตน การเขยนภาษาชนดนกอนน าไปใชงาน จะตองผานตวแปลภาษากอนทเรยกวา Assembler program เพอเปลยนใหเปนภาษาทเครองคอมพวเตอรเขาใจ คอ ภาษาเครอง (Machine Language) การเขยนค าสงภาษาชนดนไมสะดวกในการพฒนาโปรแกรมแตละครง ตวอยาง ภาษาแอสเซมบลมดงน

B80103 movov ax,00301 B90100 mov CX,00001 BA8000 mov dx,00080 CD13 int 013 C3 retn

ภาษายคท 3 ภาษาระดบสง (High-level language) ภาษาระดบสงเปนภาษาทใชกนอยางแพรหลายในชวงตนป 1960 โครงสรางทางภาษามลกษณะ

เหมอนกบภาษาองกฤษ ท าใหผใชสะดวกสบายในการเขยนค าสงและความตองการของผลลพธ ท าใหผเขยนโปรแกรมลดความยงยากลงไปไดมาก ภาษาระดบสงสวนใหญเปนการเขยนโปรแกรมแบบเชงโครงสราง (Structured Programming) ซงเปนการเขยนโปรแกรมทจะท างานจากบนลงลาง ภาษาระดบสงท าใหผใชเขยนโปรแกรมงายขน โดยจะตองมตวแปลภาษา (Translator) ท าการแปลภาษาตาม

Page 4: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

4

กฏเกณฑทก าหนดขนของภาษาระดบสง เพอแปลเปนภาษาเครองทจะน าไปใหคอมพวเตอรท างาน ภาษาระดบสงสวนมากจะใชกบงานทวไป การประยกตใชภาษาคอมพวเตอรสวนมากจะเขยนดวยภาษา Basic , ภาษา FORTRAN , ภาษา COBOL และภาษาระดบสงของคอมพวเตอรทนยมใชคอ ภาษา C

ในการใชงานภาษาระดบสงจะตองแปลภาษาระดบสงทเขยนขนไปเปนค าสงหรอภาษาทเครอง คอมพวเตอรเขาใจ อกนยหนงกคอการแปลภาษาระดบสงใหเปนภาษาเครอง ซงโปรแกรมแปลภาษาสามารถแบงออกไดเปน 2 ประเภทคอ อนเทอรพรเตอร (Interpreter) และคอมไพเลอร (Compiler)

อนเทอรพรเตอร (Interpreter) เปนโปรแกรมแปลภาษาทจะแปลภาษาระดบสงใหเปนภาษาเครอง โดยจะท าการแปลค าสงทละค าสงและมการท างานตามค าสงทแปลนนทนท เมอแปลค าสงหนงเสรจแลวกจะท าการแปลค าสงตอไปตามล าดบ ค าสงทถกแปลเปนภาษาเครองแลวจะไมถกเกบไว เมอตองการใชงานโปรแกรมนอกจะตองท าการแปลค าสงทกครงทตองการใชงานโปรแกรม ท าใหการท างานของโปรแกรมมความไมสะดวก และถาเกดขอผดพลาดของค าสงหนงค าสงใดในโปรแกรม จะตองท าการแกไขค าสงใหถกตองแลวสงใหโปรแกรมสงท างานใหม ตวอยางภาษาทใชตวแปลภาษาแบบอนเทอรพรเตอรไดแก ภาษา BASIC

คอมไพเลอร (Compiler) เปนตวแปลภาษาระดบสงอกชนดหนงทจะท าการแปลค าสงจากภาษาระดบสงใหเปนภาษาเครอง โดยจะแปลค าสงทงโปรแกรมเสรจในครงเดยว โดยกลมค าส งทถกแปลเปนภาษาเครองแลว จะถกจดเกบในรปแบบทเรยกวาออบเจคโปรแกรม (Object Program) คอมพวเตอรจะท างานโดยน าออบเจค โปรแกรมนนไปประมวลผลเพอท างานตอไป

อนเทอรพรเตอร (Interpreter) คอมไพเลอร (Compiler)

1. ท าการแปลโปรแกรมทละค าสงแลวท างานทนทตาม

ค าสงนน

1. ท าการแปลทงโปรแกรมแลวท างานตามค าสงทแปล ตามทได

โปรแกรมไว 2. ไมมการสรางออบเจคโปรแกรม (Object Program) 2. มการสรางออบเจคโปรแกรม (Object Program) 3. มการใขงานหนวยความจ านอย 3. มการใชงานหนวยความจ ามาก 4. ทกครงทมการเรยกใชงานโปรแกรมตองท าการ

แปลภาษาใหมทกครง

4. ทกครงทมการเรยกใชงานโปรแกรมไมตองท าการ แปลภาษา

ใหมเนองจากเรยกใชจากออพเจค โปรแกรมซงถกแปลไวแลว

ภาษายคท 4 ภาษาระดบสงมาก (Very high-level language) เปนยคทมการพฒนาโปรแกรมขนมาเปนระดบท 4 หรอเปนยคทส (Fourth-generation

Language ) หรอ 4GLs เปนการพฒนาสมบตของภาษาไดแตกตางจากยคกอนอยางชดเจน โดยการใช

หลกการเขยนโปรแกรม แบบไมใชโพรซเยอร (Prooedural Language ) ซงแบบเกาเราตองเขยน

โปรแกรมสรางโพรซเยอรแตละตวไวเพอใหท างานในดานตาง ๆ แตยคนโปรแกรมการท างานในสวนตาง ๆ

ตารางท 1.1 ความแตกตางของอนเทอรพรเตอรกบคอมไพเลอร

Page 5: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

5

จะถกสรางไวพรอมแลว ดงนนนกพฒนาโปรแกรมไมจ าเปนตองเขยนโปรแกรมขนใหมทงหมด ซงสามารถ

เรยกชดการท างานทมอยแลวมาสรางเปนโปรแกรมใหมทเราตองการไดเลย

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

มาก ๆ เมอเทยบกบโปรแกรมแบบเกา โดยเพยงแคสงงานสน ๆ ดงน

SELECT First name , Last name

FROM Employees

WHERE City = “London”

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

กบภาษาของมนษยมากยงขน หากเราเทยบกบการเขยนโปรแกรมดวยภาษา COBOY กจะพบวาเรา

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

ขอดของภาษาในยคทส

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

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

ลดเวลาในการอบรมและพฒนาผเขยนโปรแกรมเพราะไมเชยวชาญในการเขยนโปรแกรมกสามารถท าได

ผเขยนโปรแกรมไมจ าเปนตองรและศกษาถงโครงสรางของโปรแกรม และระบบฮารดแวรของเครอง ในยคทสไดมการพฒนาภาษาเพอใชเรยกดขอมล ซงรจกกนในชอ ภาษาเรยกคนขอมล (Query

Language ) เพอชวยใหเราสามารถเรยกแสดงขอมลและตดตอฐานขอมลไดสะดวกยงขน เพราะกอน

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

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

เราเรยกดไดเรวขน และภาษาเรยกคนขอมลทเปนมาตรฐานทรจกกนด คอ SQL (Structured Query

Language )

ภาษาธรรมชาต ( Natural Language )

เปนภาษาโปรแกรมทพฒนามาถงระดบท 5 หรอเรยกวายค ภาษายคทหา ( Fifth generation

Language ) หรอ 5GLs เหตผลทมาของธรรมชาต กเพราะวาเปนภาษาทไกลเคยงกบภาษาธรรมชาตของ

มนษย ซงไมสนใจในเรองของไวยากรณของภาษา เพยงแคผใชพมพค าสงลงไป และผใชแตละคนอาจจะ

ใชค าศพท รปประโยคทแตกตาง จากนนคอมพวเตอรจะแปลความและท างานตามค าสงเหลานนเอง แต

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

Page 6: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

6

ค าสงในภาษาธรรมชาตจะใช ระบบฐานความร ( Knowledge base system ) ทมความใกลเคยงกบ

การใชภาษาของมนษย

ตวอยาง การใชภาษา SQL เรยกการคนขอมลโดยใหแสดงรายชอพนกงานทมอยในกรงลอนดอล

จะสามารถเขยนโปรแกรมไดดงน

SELECT First Name , Last Name

FROM EMPLOYEES

WHERE City=”London”

แตถาเปนการเขยนโปรแกรมดวยภาษาธรรมชาต เราจะเขยนโปรแกรมโดยใกลเคยงกบภาษา

มนษยมากขน ดงน

TELL ME THE NAMES OF EMPLOYEES IN LONDON

ขอแตกตางระหวางภาษาระดบต ากบภาษาระดบสง ภาษาระดบต าจะมความแตกตางกนเมอใชกบเครองคอมพวเตอรตางเครองกน สวนภาษา

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

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

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

การเขยนโปรแกรมดวยภาษาระดบต า จ าเปนตองศกษาและเชาใจระบบการท างานภายในคอมพวเตอร แตการเขยนโปรแกรมดวยภาษาระดบสงไมจ าเปนตองศกษาอยางลกซง

3. ภาษาคอมพวเตอรทใชในการพฒนาโปรแกรม

ภาษาคอมพวเตอรทไดรบการพฒนาเกดขนอยางมากมาย ดงนนการเลอกใชภาษาโปรแกรม

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

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

ระบบตาง ๆ ไดดวย ดงนนสวนใหญจงน าภาษาระดบสงมาใชงานกน โดยจะประยกตน าไปเขยนเปน

โปรแกรมในงานดานตางๆ เชนงานดานวทยาศาสตร งานดานธรกจ และการน าเสนอขอมล เปนตน ซง

ภาษาทนยมใชกนมดงน

Page 7: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

7

ภาษาฟอรแทรน (Fortran)

ยอมาจากค าวา FORmula TRANslator เปนภาษาระดบสงทเกดขนในป ค.ศ. 1950 เพอใชใน

การสรางโปรแกรมประยกตดานวทยาศาสตรและวศวกรรม ตอมาในป ค.ศ. 1953 John Backus ได

พฒนา Fortran เพอน ามาใชสรางโปรแกรมประยกตการใชงานในเครองเมนเฟรม IBM 704 แทนทภา

แอลแซมบลทมความยงยาก

ตวอยางของการเขยนโปรแกรมดวย Fortran 90

Program HelloWorid

Write (*,*) ‘Hello worid !’ ! This is inline cormment

End program HelloWorid

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

วศวกรรมศาสตร ทตองการน าคอมพวเตอรมาชวยค านวณในดานตางๆ เนองจากภาษานมความสามารถ

ในการค านวณดกวาภาษาอน ๆ

ขอด : เปนภาษาระดบสงทถกพฒนาขนเพอใชบนเมนเฟรม จงท าใหตองมการปรบค าสงมากมาย

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

ความนยม เมอมการพฒนาภาษาเบสกมาใชบนไมโครคอมพวเตอรทมการใชงานกนอยางแพรหลาย

ภาษาเบสก

เปนภาษาระดบสงทเรมออกแบบโดย John George kemeny และ Thomas Eugene Kurtz ท

มหาวทยาลย Dartmouth Collge ในป ค.ศ. 1963 ภาษา Basic ยอมาจากค าวา Beginner’s All-

purpose Symbolic Instruction Code ซงเปนภาษาทออกแบบมาใหใชงานงาย และในป 1980 ไดถก

ขยายการใชงานมากขนตามการก าเหนดของเครองคอมพวเตอรทใชภายในบาน เปนภาษาทใชค าสง

ประยกตตามขอความภาษาองกฤษ ท าใหไดรบความนยมในการใชสอนและฝกการเขยนโปรแกรมใน

โรงเรยนตาง ๆ

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

งาน ดานธรกจ และวทยาศาสตร เหมาะกบผทเรมตนฝกการเขยนโปรแกรม

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

ค าสงมนอยกวาภาษาอน และเนองจากรปแบบของการเขยนโปรแกรมจะไมเปนโครงสราง ดงนนจงไม

เหมาะกบการเขยนโปรแกรมทมการเชอมตอกบระบบฐานขอมล

Page 8: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

8

ภาษาโคบอล

มชอเตมวา Business – Oriented Language เรมตนนพฒนาขนในป ค.ศ. 1959 โดยการ

รวมมอ 3 ฝาย คอ รฐบาลสหรฐ (Pentagon) องคกรธรกจและมหาวทยาลยชนน า และประกาศใชงาน

อยางเปนทางการในป 1960 โดยถกออกแบบเพอการเขยนโปรแกรมเชงโครงสราง (Structured

Program) เหมาะกบการน าไปใชสรางโปรแกรมประยกตดานธรกจ การบญช และการท างานเชอมตอ

คอมพวเตอรในบรษท/องคกร เรมตนถกพฒนาใชกบเครองเมนเฟรม ตอจากนนกมการพฒนาใหใชงานใน

ไมโครคอมพวเตอรกนอยางแพรหลาย

ขอด : เปนภาษาทนยมใชในการดานธรกจ ไดแก การจดเกบขอมล งานบญช การเงนและสนคา

คงคลง เพราะเปนภาษาทมการเขยนเชงโครงสราง จงสามารถประยกตใหท างานเชอมตอกบฐานขอมลได

ปจจบนไดพฒนาเปนการเขยนโปรแกรมเชงวตถ (OOP)

ขอเสย : ผพฒนาโปรแกรมตองศกษาโครงสรางของโปรแกรม เพอการใชค าสงไดถกตอง

ภาษาปาสคาล (Pascal)

เกดขนในป ค.ศ. 1970 โดยนกวทยาศาสตรชาวสวส ชอ Niklaus Wirth พฒนาขนเพอใชสอน

การเขยนโปรแกรมคอมพวเตอรใหกบนกเรยน และไดตงชอภาษาตามชอของนกคณตศาสตรละนกปรชญา

ชาวฝรงเศส ชอ Blaise Pascal ผคดคนประดษฐเครองค านวณในยคแรก ภาษาปาสคาลเปนภาษาทใช

เขยนโปรแกรมเชงโครงสราง เรมตนจงนยมใชในการสอนโปรแกรมเชงโครงสรางใหกบนกศกษา และการ

น าไปพฒนาสรางซอฟตแวรตางๆ ตอมาบรษทบอรแลนด ไดพฒนาเปนเทอรโบปาสคาล (Turbo Pascal)

ซงเปนภาษาในการเขยนโปรแกรมเชงวตถ

ตวอยางของภาษา Pascal

Program HelloWorld (output);

Begin

Writeln (‘Hello,World!’)

End.

ขอด : เปนภาษาทเขยนเชงโครงสราง เหมาะกบการศกษาส าหรบผเรมตนเขยนโปรแกรม

นอกจากนค าสงไดถกออกแบบใหท างานอยางมประสทธภาพ จงสามารถพฒนาไปใชงานทวไป งานดาน

ธรกจ วทยาศาสตรและวศวกรรม

ขอเสย : เปนภาษาทยงคงใชงานยากเมอเปรยบกบการเขยนโปรแกรมเชงวตถ

Page 9: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

9

ภาษาซ (C)

ภาษา C ไดพฒนาขนในป ค.ศ. 1970 โดย เดนนส รชช (Bell Laboratory) ของบรษท เอท

แอนดท (AT&T) เพอใชในระบบปฏบตการยนกซ (Unix) จากนนกแพรกระจายไปใชงานระบบปฏบตการ

ตาง ๆ และเปนภาษาทใชกนอยางแพรหลาย โดยไดมการพฒนาเพอสรางเปนโปรแกรมควบคมระบบ

เพราะมค าสงทเขาถงระบบฮารดแวรของคอมพวเตอรโดยตรง สามารถตดตอกบเครองระบบตาง ๆ ผาน

การควบคมพอรตของคอมพวเตอร นอกจากนยงเปนทนยมใชในการศกษาการเขยนโปรแกรม

ตวอยางของภาษา C

#include <stdio.h>

int main (void)

{

Printf (“Hello World\n”);

Return 0;

}

ขอด : เปนภาษาทมความยดหยนสามารถท างานบนระบบเครอง และระบบปฏบตการตางๆ ได

นอกจากนสามารถเขาถงฮารดแวรของคอมพวเตอรไดโดยตรง

ขอเสย : ค าสงของภาษาจะไมเหมอนค าศพทภาษาองกฤษโดยตรง จงอาจจะจดจ ายากขน และ

วธการใชค าสงจะมกฎเกณฑรายระเอยดจ านวนมาก จงไมเหมาะกบผเรมตนเขยนโปรแกรม

ภาษาซพลสพลส C++

ภาษา C++ ไดพฒนาขนจากภาษา C โดย Bjarne Stroustrup ทหองปฏบตการ Bell Labs

ตงแตป 1983ซงเปนการพฒนาภาษา C ดวยการเพมใส Class เขาไป สามารถสนบสนนการเขยน

โปรแกรมโพรซเยอร Procedural programming การเขยนโปรแกรมเชงวตถ (Object-oriented

Programming) และการเขยนโปรแกรมแบบทวไป (Generic Programming) นยมน าไปสรางโปรแกรม

ประยกตตาง ๆ เชน Word Processor

ขอด : เปนภาษาทมรปแบบการเขยนโปรแกรมเชงวตถ สามารถท างานเขาถงการท างานของ

ฮารดแวรไดโดยตรง จงเหมาะกบการพฒนาโปรแกรมประยกต และไดรบความนยมเปนอยางสง

ขอเสย : เปนภาษาระดบสง และมรปแบบการเขยนโปรแกรมทซบซอน ไมเหมาะสมส าหรบผ

เรมตนเขยนโปรแกรม

Page 10: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

10

วชวลเบสก (Visual Basic)

เรมตนพฒนาโดย Alan Cooper จากบรษทไมโครซอฟต ในป ค.ศ. 1991 เปนการพฒนามาจาก

ภาษาเบสก เวอรขน 1-3 จะท างานอยบน DOS จากเวอรชน 4 จนถงปจจบนไดพฒนาใหท างานบน MS

Windows ภาษานมรปแบบในการเขยนโปรแกรมโดยสรางกราฟกในสวนของหนาจอตดตอกบผใชงาน

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

ขอด : เปนการพฒนาโปรแกรมทเหมาะกบการท างานของระบบปฏบตการ GUI เชน Windows

เพราะมเครองทใชในการสรางกราฟก เหมาะกบการสรางโปรแกรมขนาดใหญ

ขอเสย : ไมเหมาะกบผทเรมตนเขยนโปรแกรม เพราะจะเหมาะกบผทเคยมพนฐานการเขยน

โปรแกรมภาษาพนฐานมากอน ซงการเขยนโปรแกรมจะมความซบซอนมากขน

ภาษาจาวา Java

เปนภาษาทมรปแบบการเขยนโปรแกรมเชงวตถ พฒนาโดย James Gosling มหาวทยาและ

บรษท Sun Microsystems ในป ค.ศ. 1990 การท างานของภาษาจะแตกตางจากภาษาอน พราะเปนการ

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

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

ของเครองได

ขอด : เปนโปรแกรมภาษาทสามารถท างานไดบนทกระบบ จงเหมาะกบการพฒนาโปรแกรม หรอ

เกมทตองการเขาถงผใชไดในทกระบบ จงมชอเรยกวา “Write once, run anywhere ”

ขอเสย : เปนมาตรฐานทมความซบซอน และมผเชยวชาญนอย ดงนนในการพฒนาและศกษา

โปรแกรมจงยากกวาภาษาอน

4. การเลอกใชภาษาคอมพวเตอรในการพฒนาโปรแกรม การพฒนาโปรแกรมเพอประยกตใชงานในแตละดาน จ าเปนอยางยงทจะตองเรยกใชภาษาท

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

เลอกใชภาษาคอมพวเตอร ดงน

4.1 ภาษามาตรฐานทใชในองคกร

การพฒนาโปรแกรมไวใชในองคกร โดยสวนใหญจะยดภาษาใดภาษาหนงไวเปนหลก เพราะไม

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

โปรแกรมการดแลและงานบรหารระบบ

Page 11: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

11

ตวอยางองคกรทใชภาษา Java เปนมาตรฐาน กจะมงเนนใชภาษา Java ในการสรางโปรแกรม

ทงหมด เพราะนกพฒนาโปรแกรมแตละคนไมไดเกงในการเขยนโปรแกรมไดทกภาษา

นอกจากนควรเปนภาษาทสามารถสรางบคลากรมาท างานเขยนโปรแกรมและบรการอยาง

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

ชดเกาลาออกไป หากองคกรไมสามารถหาโปรแกรมเมอรทช านาญภาษา JAVA มาแทนทได กจะท าให

งานนนหยดชะงกไป

4.2 คณสมบตและความเหมาะสม

แตละภาษากจะมคณสมบตและความเหมาะสมกบงานในแตละดาน เชน งานดานธรกจ งานดาน

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

Cobol เนองจากเหมาะกบงานทางดานการค านวณเปนหลก

4.3 การท างานรวมกบโปรแกรมอน

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

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

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

4.4 การท างานรวมกบระบบอน

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

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

โปรแกรมรบรายการสนคาบนระบบเครอง PDA ของพนกงานขาย และสงขอมลไปยงระบบเครอง

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

ใบเสรจรบเงนออกมา

5. หลกการเขยนโปรแกรมคอมพวเตอร

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

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

หลกการเขยนโปรแกรมในปจจบนม 3 หลกการ ไดแก การเขยนโปรแกรมเชงโครงสราง การเขยน

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

รายละเอยดตอไปน

Page 12: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

12

5.1 การเขยนโปรแกรมแบบเชงโครงสราง (Structure Programming)

การเขยนโปรแกรมแบบเชงโครงสราง ววฒนาการมาจากแนวคดของ เอดสการ ไดคสตรา

(Edsgar Dijkstra) ในป ค.ศ. 1969 โดยไดคสตราไดชใหเหนวา การใชค าสง goto มาก ๆ ในโปรแกรมจะ

มผลท าใหโปรแกรมสบสน ไดคสตราไดเสนอวาภาษาคอมพวเตอรระดบสงไมควรมค าสง goto เพราะ

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

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

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

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

อกดวย ดงภาพท 1.1

โดยไดคสตราเสนอแนวความคดใหพจารณาโปรแกรมออกเปนชน ๆ โดยคอย ๆ ยอยจากฟงกชน

ทหยาบใหละเอยดลงไปเรอย ๆ เพอเปนการแกปญหาเรองความซบซอนของโปรแกรมขนาดใหญ และ

ปญหาทเกยวกบความผดพลาดของโปรแกรม (สานนท เจรญฉาย, 2546 : 5)

………………

ค าสงท 1

ค าสงท 2

goto 9

ค าสงท 8

ค าสงท 9

goto 2

ค าสงท 10

ภาพท 1.1 การใชค าสง goto ในโปรแกรม

Page 13: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

13

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

แผน และมเปาหมาย เพอใหไดโปรแกรมทมลกษณะดงตอไปน

1. โปรแกรมตองมความผดพลาดนอยหรอไมผดพลาดเลย เพอสรางความนาเชอถอใหผใช

โปรแกรม

2. โปรแกรมไมคลมเครอ อานเขาใจงาย และไมซบซอน

3. สามารถปรบปรงแกไข และเพมเตมโปรแกรมไดงาย

4. สามารถพฒนาโปรแกรมไดงาย รวดเรว และเปนระบบ

5. โปรแกรมมความชดเจน สามารถเขาใจวตถประสงคของโปรแกรมไดงาย

5.2 การเขยนโปรแกรมแบบโมดลาร (Modular Programming)

เปนการเขยนโปรแกรมทแยกการท างานตาง ๆ ออกเปนโปรแกรมยอยขนาดเลกหลายโปรแกรม

แตละโปรแกรมเรยกวา โมดล (Module) ซงสามารถท างานไดอสระจากโมดลอน ท าใหถาหากโปรแกรมม

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

ทท าหนาทควบคมการท างานทงหมด วาจะเรยกโมดลใดมาใชงานกอน

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

ๆ ไดอกดวย

การเขยนโปรแกรมในลกษณะโมดลโปรแกรมยอยจะมสองประเภท คอ โปรแกรมยอยภายใน

(Internal Subroutine) ทเปนโปรแกรมยอยทผเขยนโปรแกรมเขยนขน เพอเปนสวนหนงของ

โปรแกรมหลก แตสามารถเรยกใชได อกประเภทหนงคอโปรแกรมยอยภายนอก (External Subroutine)

ซงเปนโปรแกรมยอยทเกบไวในไลบราล (library) ทเรยกใชได และสามารถน าไปใชงายอนไดอก

5.3 การเขยนโปรแกรมเชงออบเจค (Object-Oriented Programming)

การเขยนโปรแกรมแบบเชงออบเจกตเปนโปรแกรมทมการสรางสวนยอยของโปรแกรมทเรยกวา

วตถ (object) ซงแตละวตถจะสามารถท างานเฉพาะอยางไป โดยมคลาส (class) ซงเปนตวก าหนด

คณสมบตของวตถนน แตละคลาสจะมสถานะ (state) และพฤตกรรม (behavior) ตามบทบาทของตน

โดยมขอมลรายละเอยดหรอคณสมบต (characteristic) ซงคณสมบตยงสามารถถายทอด (inheritance)

ในลกษณะคลาสยอย (subclass) ดงนนหากมคลาสทเปนตนแบบทดแลว ผพฒนากสามารถน าคณสมบต

ของคลาสตนแบบนนมาใชงานไดทนท

จงกลาวไดวาแนวคดโปรแกรมเชงออบเจกต เปนแนวคดทนกเขยนโปรแกรมสามารถน าวตถยอย

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

วตถ แตอาจน าวตถทมผพฒนาโปรแกรมคนอนสรางไวแลวมาพฒนาตอไดเลย เพยงแตทราบวาวตถนนท า

อะไรบาง และจะเรยกใชงานวตถนนอยางไร การเขยนโปรแกรมแบบเชงออบเจกตเปนการเขยนโปรแกรม

Page 14: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

14

ทท าใหงายและสะดวกในการเขยนโปรแกรม และลดคาใชจายในการพฒนา เพราะสามารถน าวตถไปใชซ า

(reuse) ได

6. ขนตอนการพฒนาโปรแกรม

กอนการพฒนาโปรแกรมผเขยนโปรแกรมจะตองมความเขาใจเกยวกบกระบวนการ หรอขนตอนในการท างานของโปรแกรม โดยในสวนนไมไดเปนสวนของการเขยนโปรแกรมอยางเดยว แตหมายรวมถงกระบวนการวางแผน กระบวนการคดวเคราะห กระบวนการเขยนโปรแกรม กระบวนการทดสอบ ตลอดจนกระบวนการน าไปใช ทง 7 กระบวนการเปนการท าความเขาใจกอนการพฒนาโปรแกรมเพอใหผเขยนโปรแกรมเขาใจปญหาและกระบวนการกอนการลงมอพฒนาโปรแกรม เพราะทกกระบวนการเปนกระบวนการทมความส าคญเปนอยางยง เนองจากหากผพฒนาโปรแกรมไมเขาใจกระบวนการท างานทแทจรงผลลพธทออกมาอาจไมตรงตามความตองการของผใช กระบวนการนจงเปนกระบวนการวาง โครงรางการท างานของการพฒนาโปรแกรม เพอใหเหนภาพของขนตอนการน าเขาขอมล ขนตอนการประมวลผล และขนตอนการแสดงผลลพธทไดจากโปรแกรม กระบวนการในการเขยนโปรแกรมจ าเปนตองใชความรความสามารถและทกษะหลายดานเพอน ามาประยกตใชในการพฒนาโปรแกรม การเขยนโปรแกรมคอมพวเตอรเปนเพยงสวนหนงของการพฒนาโปรแกรม ตอไปนเปนขนตอนการพฒนาโปรแกรม

ภาพท 1.2 แสดงขนตอนการพฒนาโปรแกรม

Page 15: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

15

ขนตอนการพฒนาโปรแกรมประกอบดวย 7 ขนตอนดงน 1. การวางแผนการท างาน (Planning) กระบวนการวางแผนการท างานเปนกระบวนการเรมตนของการพฒนาโปรแกรม เพอให

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

2. การวเคราะห (Analysis) ในกระบวนการวเคราะห เปนกระบวนการในการหาทมาของปญหาเพอรวมวเคราะหการ

ท างานของโปรแกรม ในขนตอนนจะลงรายละเอยดในวเคราะหกอนการเขยนโปรแกรม เพอใหผพฒนาไดเขาใจถงปญหา กระบวนการท างาน และความตองการของผใช โดยในขนตอนนจะเรมตนดวยการพจารณาประเดนตาง ๆ ดงตอไปน

2.1 สวนของขอมลน าเขา (Input) 2.2 สวนของการประมวลผล (Process) 2.3 สวนของการแสดงผลลพธ (Output)

โดยพจารณาการวเคราะหการท างานของแตละสวนงานไดดงน 2.1 สวนของขอมลน าเขา (Input) ขอมลน าเขาจะไดจากการศกษาและการก าหนดปญหาเพอ

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

ตวอยางท 1 ตองการเขยนโปรแกรมค านวณรายไดสทธใหกบพนกงานของบรษทแหงหนง สงทตองวเคราะหสวนของขอมลน าเขา คอ ผลลพธสดทายทตองการแสดงผลลพธมขอมลอะไรบาง เชน รหสพนกงาน ชอ สกล รายไดสทธ หรอ ขอมลอน ๆ อกหรอไม ในสวนของ รายไดสทธของพนกงานไดมาจากเงนสวนไหนบาง เพอเปนประเดนทจะพจารณาขอมลน าเขา ตวอยางเชน บรษทดงกลาวนอกจากจายเงนเดอนใหแกพนกงานแลว ยงจายเงนสวนใดอกบาง เชน เงนประจ าต าแหนง เงนสมทบกองทนสวสดการ คาลวงเวลา หรอ อน ๆ อกหรอไม โดยขอมลดงกลาวจะไดจากการศกษาขอมลกอนการเขยนโปรแกรม

2.2 สวนของการประมวลผล (Process) ในสวนของการประมวลผลหลงจากทไดพจารณาขอมลน าเขาแลว ประเดนตอมาทพจารณาคอ จะด าเนนการอยางไรกบขอมลน าเขาดงกลาว โดยในกระบวนการนตองไมลมเงอนไขอน ๆ ทใชในการพจารณา เชน เงนคาลวงเวลา หากมการจายเงนคาลวงเวลา จ าเปนทจะตองพจารณาตอวา อตราการจายคาลวงเวลาของพนกงานมเงอนไขอยางไรบาง พนกงาน 1 คนสามารถท างานลวงเวลาไดไมเกนกชวโมง อตราการจายคาลวงเวลาใหกบพนกงานจายใน

Page 16: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

16

อตราชวโมงละกบาท รวมไปถงการพจารณาออกแบบกระบวนการท างานอน ๆ ดวย เชน หากมการใสขอมลทผดพลาดโปรแกรมจะแสดงผลการท างานของขอมลทผดพลาดอยางไร ในขนตอนนเปนขนตอนทมความส าคญเปนอยางยง เพราะหากออกแบบกระบวนการท างานผดพลาดผลลพธทไดกจะผดพลาดเชนกน จากโจทยทก าหนดสามารถสรปขนตอนของการพจารณาการประมวลผลในขนตอนนไดดงตอไปน

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

แบบวนซ า 2.3 สวนของการแสดงผลลพธ (Output) ในสวนของการแสดงผลลพธเปนสวนของการ

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

จากโจทยตวอยางท 1 สามารถวเคราะหผลการด าเนนงานโปรแกรมไดดงน 1) สวนน าเขาขอมล (Input)

1.1) รบคาขอมลเกยวกบรายละเอยดพนกงาน ไดแก รหส ชอ นามสกล 1.2) รบคาขอมลเกยวกบรายละเอยดรายรบพนกงาน ไดแก อตราเงนเดอนทไดรบ เงนประจ าต าแหนง จ านวนชวโมงการท างานลวงเวลา

2) สวนการประมวลผล (Process) จากโจทยตวอยางการประมวลผลแบงออกเปน 2 กระบวนการ คอ

2.1) การค านวณหาจ านวนเงน อตราคาลวงเวลา (จ านวนชวโมง x อตราคาลวงเวลาตอชวโมง) 2.2) การค านวณหารายรบสทธทไดรบ อตราเงนเดอน + เงนประจ าต าแหนง + จ านวนเงนคาลวงเวลา

3) สวนการแสดงผลลพธ (Output) 3.1) รายละเอยดทจะแสดงออกสหนาจอ ประกอบดวย รหส ชอ สกล และรายไดสทธ 3.2) รปแบบการแสดงผลลพธ ไดแก การออกแบบฟอรมแสดงผลลพธ

จากตวอยางเปนการฝกวเคราะหโดยมองหาสวนของขอมลน าเขา การประมวลผล และการแสดงผลลพธ จะท าใหสามารถสรปความคดและมองเหนภาพของความตองการชดเจนมากยงขน และจากประสบการณมามผเรยนหลายคนไมสามารถเรมตนเขยนโปรแกรมได เนองจากไมสามารถวเคราะหความตองการของโปรแกรมและไมสามารถออกแบบกระบวนการท างานได ผสอนจงอยากใหผเรยนไดฝกทกษะ

Page 17: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

17

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

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

3. การเขยนโปรแกรม (Development) กระบวนการเขยนโปรแกรมเปนกระบวนการหลงจากทผพฒนาโปรแกรมไดทราบปญหา

และ วเคราะหกระบวนการ ความตองการของผใชแลว กอนการเขยนโปรแกรมผพฒนาอาจรางพมพเขยว หรอ อลกอรทมของโปรแกรมกอนลงมอเขยนค าสง (Source Code) เนองจากวา อลกอรทมจะชวยใหผเขยนโปรแกรมและผใชมองเหนระบบทชดเจนมากยงขน ภาษาทน ามาใชในการเขยนโปรแกรม อาจเปนภาษาระดบต าหรอภาษาระดบสงกไดขนอยกบความสามารถของนกเขยนโปรแกรมและตามความตองการของผใช

หลงจากไดวเคราะหและออกแบบการเรยนโปรแกรมแลว ตอไปเปนกระบวนการเขยนโปรแกรม ในการเขยนโปรแกรมสามารถใชภาษาคอมพวเตอรมาใชในการเขยนโปรแกรม ตวอยางภาษาคอมพวเตอรเชน ภาษาซ ภาษา PHP (Personal Home Page) ภาษา Basic ภาษา PASCAL เปนตน โดยในการเขยนโปรแกรมนน ปจจบนมโปรแกรมทใชเขยนโปรแกรมหลายโปรแกรมทสามารถเขยนโปรแกรมและรนการท างานผานระบบปฏบตการวนโดวน ท าใหการเขยนโปรแกรมงายและสะดวกยงขน และค าสงทใชในการเขยนโปรแกรมปจจบนนยมใชภาษาธรรมชาต เนองจากเปนภาษาทเรยนรงายโปรแกรมงายมากยงขน

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

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

2. เขาใจกระบวนการท างาน และผลลพธความตองการของผใชงาน 3. ควรมการตรวจสอบผลลพธ และการประเมนผลลพธกอนน าโปรแกรมไปใชงานจรง

จากโจทยตวอยางท 1 เขยนโปรแกรมค านวณรายไดสทธใหกบพนกงานของบรษทแหงหนง สามารถน ามาเขยนโปรแกรมโดยใชภาษาซ ไดดงตอไปน

Page 18: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

18

ผลการรนโปรแกรม

ภาพท 1.3 แสดงผลรนของโปรแกรมจากตวอยางโจทยท 1

#include<stdio.h> main() { float Net_pay ,Hour ,E_salary,E_position; int C_ot; char E_id[10] ,E_name[30],E_sur[30]; printf(" Caculate Your Net_Salary\n"); printf("******************************\n");

printf("Input Employee_id :"); scanf("%d",&E_id);

printf("Input Employee_name :"); scanf("%s",&E_name); printf("Input Employee_surname :"); scanf("%s",&E_sur); printf("Input your salary :"); scanf("%f",&E_salary); printf("Input your Emoluments :"); scanf("%f",&E_position); printf("Input the number of overtime hours :"); scanf("%f",&Hour); Net_pay = E_salary + E_position +(Hour*250); printf("******************************\n"); printf(" Khun %s %s get %f bath\n",E_name,E_sur,Net_pay); printf("******************************\n"); }

Page 19: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

19

4. การทดสอบ (Test) กระบวนการทดสอบโปรแกรม เปนกระบวนการตรวจสอบความถกตองของการท างานของ

โปรแกรมเพอใหแนใจวาโปรแกรมทพฒนาขนไมไดมขอผดพลาด ซงความผดพลาดในการเขยนโปรแกรมจะเกดขนได 2 กรณ คอ 1. รปแบบชดค าสงผดพลาด (Syntax Error) คอลกษณะการเขยนโปรแกรมโดยไมทราบโครงสรางการท างานของโปรแกรมและการไมแมนย าในการเขยนค าสงโปรแกรม จากประสบการณสอนทผานมาพบวานกศกษามากจะเขยนค าสงผดพลาด และลมขอบงคบของการเขยนโปรแกรมแตละภาษา เชนในภาษาซก าหนดใหทกค าสงจะปดทายดวยเครองหมาย ; นกศกษามกจะลมค านงถงขอบงคบน และ 2. ผลการท างานทผดพลาด (Logic Errors) คอ การเขยนโปรแกรมทไมไดมการวเคราะหทถกตอง ท าใหเมอน าวธการไปเขยนโปรแกรมแลวไดผลลพธทไมตรงกบความตองการของผใช ยกตวอยางเชน ตองการใหเขยนโปรแกรมตรวจสอบอายปจจบนของผใช แตกลบเขยนโปรแกรมตรวจสอบปคาอยางอนแทนเปนตน ดงนนในการเขยนโปรแกรมผพฒนาโปรแกรมจ าเปนตองทดสอบใหแนใจวาโปรแกรมมไดมขอผดพลาด กระบวนการในการทดสอบโปรแกรมสามารถด าเนนการไดหลายวธ เชน การทดสอบโดยสมกลมผใชทเกยวของ หรอการทดสอบโดยผ เชยวชาญเฉพาะดาน เพอหาจดบกพรองกอนทจะน าไปใชงานจรง

5. การแกไขและปรบปรง (Edit and Improve) กระบวนการแกไขและปรบปรงเปนกระบวนทเกดขนหลงจากมการทดสอบโปรแกรม โดยใน

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

6. การจดท าเอกสารคมอ (Document) การจดท าเอกสารคมอ เปนขนตอนของการพฒนาคมอการใชงานโปรแกรมเพอใหผใชเปนคมอ

ในการใชงาน ซงจดไดวาเปนอกหนงขนตอนทมความส าคญ เนองจากขนตอนนเปนขนตอนของการอธบายการใชงานและสวนประกอบตาง ๆ ของโปรแกรม เพอเปนคมอในการปรบปรงงานหรอแกไขงานในอนาคต การจดท าคมอการใชงานควรพจารณาถงผใชโปรแกรมเปนส าคญเพอจะไดพฒนาคมอตามความเหมาะสมของผใช เชน หากผใชงานอายไมเกน 10 ป ควรออกแบบเปนภาพมากกวาขอความบรรยาย

7. การน าไปใช (Utilize) กระบวนการน าโปรแกรมไปใชงานเปนกระบวนการสดทายของการพฒนาโปรแกรม ในการ

น าไปใชงานทมพฒนาจ าเปนตองมการอบรมใหกบผใชงานหรอไมนนขนอยกบความตองการและประเภทของโปรแกรม หากเปนโปรแกรมทพฒนาขนเฉพาะเพอองคกรใดองคกรหนงการอบรมการใชงานอาจเปนสงจ าเปนส าหรบหนวยงานทใชโปรแกรม แตหากเปนโปรแกรมทพฒนาขนเพอใชงานทวไป และสามารถเรยนรไดการอบรมอาจไมมความจ าเปน

Page 20: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

20

จากรปไดอะแกรมทอธบายเปนภาพรวมของกระบวนการพฒนาโปรแกรม เพอใหผพฒนา โปรแกรมมความเขาใจเกยวกบภาพรวมทงหมดกอนการลงรายละเอยดในขนตอนของการวเคราะหและออกแบบโปรแกรม เนองจากต าราเลมนจดท าขนเพอใชในการเรยนการสอนในรายวชาการเขยนโปรแกรมคอมพวเตอรทางการศกษา 1 ผเรยนจงจ าเปนตองเขาใจถงขนตอนดงกลาวเพอเปนความรในการเขยนโปรแกรมตอไป

7. โครงสรางการท างานของการเขยนโปรแกรม

การเขยนโปรแกรมมลกษณะการเขยนทแตกตางกนในแตละโปรแกรมตามรปแบบของค าสงแตละภาษาและความตองการของผใช จงมการแบงโครงสรางการท างานของการเขยนโปรแกรมเพอใหงายตอผเขยนโปรแกรม โครงสรางการท างานของการเขยนโปรแกรมออกได 3 รปแบบดงน 7.1 การท างานแบบตามล าดบ 7.2 การท างานแบบทางเลอก 7.3 การท างานแบบวนซ า

ลกษณะโครงสรางการท างานของโปรแกรมทง 3 แบบมลกษณะทแตกตางกน ภายใน 1 โปรแกรมอาจมโครงสรางการท างานไดหลายแบบ รายละเอยดการท างานแตละโครงสรางอธบายไดดงน 7.1 การท างานแบบตามล าดบ

การท างานแบบเปนล าดบ คอ โปรแกรมมลกษณะการท างานเรมจากค าสงท 1 ตอดวย ค าสงท 2 ตอดวยค าสงท 3 เรยงล าดบจนค าสงสดทาย ลกษณะการท างานของโปรแกรมจะเปนการท างานแบบบนลงลาง โดยไมมค าสงในการตดสนใจหรอวนซ า ท าเปนล าดบขนตอนจากค าสงเรมตนไลล าดบค าสงจนจบหรอเรยกงาย ๆ วาการท างานแบบตามล าดบ เสรจค าสงกอนหนากอนถงจะไปท าค าสงถดไป เรยงล าดบจากค าสงแรกจนค าสงสดทาย มรปแบบการท างานแสดงไดดงผงงานตอไปน

1

2

ชอรหสเทยม

1. start

2. statement 1

3. statement 2

4. statement n

5. stop

ภาพท 1.4 แสดงการท างานแบบตามล าดบ

Page 21: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

21

ตวอยางท 2 ผงงานและรหสเทยม(Pseudo Code) แบบตามล าดบ โจทย โปรแกรมการบวกเลข 2 จ านวนเพอหาผลลพธ

Start

Stop

Num1=5,Num2=10, Sum=0

Sum=Num1+Num2

Sum

ผงงาน (Flowchart)

ภาพท 1.5 แสดงตวอยางการเขยนโปรแกรมแบบตามล าดบ จากภาพท 1.5 อธบายการท างานของโปรแกรมไดดงน 1. เรมตนการท างานโดยการก าหนดตวแปร Num1 ใหมคาเทากบ 5 ตวแปร Num2 มคาเทากบ 10 และก าหนดคา Sum=0 2. น าคา Num1 และ คา Num2 มาบวก เกบคาผลลพธไวทตวแปร Sum 3. แสดงคาตวแปร Sum 4. จบการท างาน

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

หนง ตามเงอนไขทก าหนดไวซงเงอนไขดงกลาวโปรแกรมแตละโปรแกรมบางครงม 1 เงอนไขหรอมากกวา 1 เงอนไขกได ขนอยกบลกษณะการท างานของโปรแกรม สามารถแบงรปแบบการท างานแบบมทางเลอก ออกไดดงตอไปน

7.2.1 การท างานแบบม 1 ทางเลอก 7.2.2 การท างานแบบม 2 ทางเลอก 7.2.3 การท างานแบบมหลายทางเลอก (มการตดสนใจมากวา 1 ครง)

การท างานในแตละแบบมขอแตกตางกนอยางไรอธบายไดจากภาพผงงานดงตอไปน

ชอรหสเทยม การบวกเลข 2 จ านวนโดยไมรบคา

1. Start

2. Set Num1=5, Num2=10, Sum=0

3. Compute Sum=Num1+Num2

4. Display Sum

5. Stop

รหสเทยม PseudoCode

Page 22: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

22

7.2.1 การท างานโปรแกรมแบบม 1 ทางเลอก

start

1

2

3

stop

ภาพท 1.6 แสดงโปรแกรมแบบม 1 ทางเลอก

จากภาพท 1.6 อธบายการท างานของโปรแกรมไดดงน 1. เรมตนโปรแกรมจะเรมด าเนนการตามค าสงท 1 2 ตามล าดบ 2. เมอโปรแกรมเจอสญลกษณในการตดสนใจหรอค าสงแบบทางเลอก การพจารณาตามค าสงทางเลอกคอ จะท าตามค าสงเมอเงอนไขทตดสนใจเปนจรง และออกจากการตดสนใจเมอเงอนไขทพจารณาเปนเทจ

ตวอยางท 3 การท างานโปรแกรมแบบม 1 ทางเลอก โจทย จงเขยนโปรแกรมในการตรวจเชคตวเลขทรบเขามากมคามากกวา 0 หรอไม ถาใชใหแสดงคาตวเลขนน ถาไมใชใหจบการท างาน

ชอรหสเทยม

1. start 2. statement 1 3. statement 2 4. if (condition) then statement 3 End if 5. stop

Page 23: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

23

start

Num

Num>0

Num

stop

Yes

No

ภาพท 1.7 แสดงการท างานโปรแกรมแบบม 1 ทางเลอก

ค าอธบาย 1. เรมตนการท างานรบคาตวเลข 1 จ านวน 2. เปรยบเทยบคาตวเลขทรบเขามา มากกวา 0 หรอไม

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

3. จบการท างาน

ชอรหสเทยม ตรวจเชคตวเลขทรบเขามา 1. start 2. Input num 3. if (Num>0)

then Display Num End if 4. stop

โดยท Num คอ ตวเลขทรบเขามา

Page 24: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

24

7.2.2 การท างานโปรแกรมแบบม 2 ทางเลอก

start

1

2

3

stop

4

ภาพท 1.8 แสดงโครงสรางการท างานโปรแกรมแบบม 2 ทางเลอก

ตวอยางท 4 การท างานโปรแกรมแบบม 2 ทางเลอก โจทย จงเขยนโปรแกรมเพอตรวจเชคอายของนกทองเทยวทตองการเขาใชสถานบนเทงทจ ากดอาย โดยมเงอนไขคอ ถาอายมากกวา หรอ เทากบ 18 ปแสดงขอความอนญาตใหเขาได แตถาอายไมถง 18 ปแสดงขอความไมอนญาตใหเขาใชบรการ

ชอรหสเทยม 1. start 2. statement 1 3. statement 2 4. if (condition) then statement 3

else statement 4 End if

5. stop

Page 25: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

25

สามารถอธบายดวยผงงานและรหสเทยมไดดงน start

card_id , year_birth

age = 0

age = 2559-year_birth

Age>=18

AllowNot Allow

stop

No Yes

หมายเหตจากโปรแกรมคดปปจจบนท ป พ.ศ.2559

ภาพท 1.9 แสดงการท างานโปรแกรมแบบมทางเลอกแบบ 2 ทางเลอก

จากภาพท 1.9 อธบายการท างานของโปรแกรมไดดงน 1. เรมตนโปรแกรมท าการรบหมายเลขบตรประจ าตวประชาชน และปทเกดเขาสระบบ 2. ก าหนดใหตวแปรอาย (age) มคาเทากบ 0 3. ค านวณหาอาย โดยน าป พ.ศ.ปจจบน – ปทเกด ไดผลลพธเทาไหรเกบไวท ตวแปรอาย 4. ตรวจสอบผล

ถาอายมากกวาหรอเทากบ 18 พมพขอความ Allow ถาไม พมพขอความ Not Allow 5. จบการท างาน

ชอรหสเทยม ตรวจเชคอายกอนเขาสถานบนเทง

1. start 2. input card_id ,year_birth 3. set age = 0 4. age = 2559-year_birth 5. if (age>=18) then print “Arrow”

else print “Not Arrow” End if

5. stop

โดยท card_id คอ รหสบตรประจ าตวประชาชน year_birht คอ ปเกด age คอ อาย

Page 26: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

26

7.2.3 การท างานโปรแกรมแบบมหลายทางเลอก (มการตดสนใจมากกวา 1ครง)

start

1

2

1 3

stop

2 4

5 3

6

ภาพท 1.10 แสดงโครงสรางการท างานโปรแกรมแบบมหลายทางเลอก (มการตดสนใจมากกวา 1ครง)

จากภาพท 1.10 จะพบวาการตดสนใจจะมมากกวา 1 ครงหากการตดสนใจกอนหนาไมเปนจรงโปรแกรมจะพจารณาค าสงถดไปเรอย ๆ จนกวาจะไมมทางเลอกใหตดสนใจ

ชอรหสเทยม 1. start 2. statement 1 3. statement 2 4. if (condition1) then statement 3

else if (condition2) then statement 4 else if (condition3) then statement 5 else statement 6 End if

5. stop

ค าสงท 6 จะมหรอไมมกได

Page 27: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

27

ตวอยางท 5 ผงงาน (Flowchart) และรหสเทยม (Pseudo Code) การท างานโปรแกรมแบบมหลายทางเลอก โจทย จงวเคราะหกระบวนการตดสนใจในการเลอกสาขาวชาเรยนจากผลการเรยนรายวชาคณตศาสตร โดยมเงอนไขดงน

ถาได เกรด A แนะน าใหเลอกสาขาวชา คณตศาสตร ถาได เกรด B แนะน าใหเลอกสาขาวชา คอมพวเตอร ถาได เกรด C แนะน าใหเลอกสาขาวชา สงคม นอกเหนอจากนนใหเลอก การจดการการทองเทยว start

stop

Grade_math

Grade_math =’A’ Or Grade_math =’B’

Should you choose to study

math.

Grade_math =’B’ Or Grade_math =’b’

Grade_math =’C’ Or Grade_math =’c’

Should you choose to study

computer.

Should you choose to study

society.

Should you choose to study

tourism.

Yes

No

Yes

No

Yes

No

ภาพท 1.11 โปรแกรมแบบมหลายทางเลอก (มการตดสนใจมากกวา 1ครง)

ชอรหสเทยม แนะน าการเลอกสาขาวชาเรยนโดยพจารณาจากเกรดรายวชาคณตศาสตร 1. start 2. input Grade_math 3. if (Grade=’A’Or Grade=’a’) then display Should you choose to study math. else if (Grade=’B’Or Grade=’b’) then display Should you choose to study computer. else if (Grade=’C’Or Grade=’c’) then display Should you choose to study society. else display Should you choose to study tourism. End if 4. stop

Page 28: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

28

จากภาพท 1.11 อธบายการท างานของโปรแกรมไดดงน 1. เรมตนรบคาเกรดรายวชาคณตศาสตร โดยก าหนดใหเกบไวในตวแปร Grade_math 2. ท าการเปรยบเทยบคาเกรด โดยค าสง If การเปรยบเทยบครงแรกเปรยบเทยบวาได เกรด A หรอ a ถาใช แสดงค าวา Should you choose to study math. แตถาไมใชเกรด A หรอ a ใหเปรยบเทยบเงอนไขครงท 2 เปรยบเทยบวาได เกรด B หรอ b

ถาใช แสดงค าวา Should you choose to study computer. แตถาไมใชเกรด B หรอ b ใหเปรยบเทยบเงอนไขครงท 3 เปรยบเทยบวาได เกรด C หรอ c ถาใช แสดงค าวา Should you choose to study society. แตถาไมใช หมายความวาไมตรงกบเงอนไขใด ๆ เลย จะแสดงค าวา Should you choose to study tourism.

3. จบการท างาน

7.3 การท างานแบบวนซ า การท างานแบบวนซ าเปนลกษณะการท างานทท าค าสงเดมซ าหลาย ๆ รอบ โดยตรวจเชคจาก

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

7.3.1 รปแบบการท างานแบบวนซ า start

1

2

3

stop

ภาพท 1.12 แสดงโครงสรางการท างานโปรแกรมแบบวนซ า

Page 29: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

29

จากภาพท 1.12 เปนโครงสรางการท างานแบบวนซ า โปรแกรมจะวนกลบไปท างานยงจดทก าหนดจนกวาจะเปนไปตามเงอนไขทก าหนด พจารณาเสนประ เสนประหมายความวา โปรแกรมจะวนกลบไปท างาน ณ ต าแหนงใดกไดในโปรแกรมตามค าขอบเขตของโปรแกรมทก าหนดมา การท างานแบบวนซ าในการเขยนโปรแกรมภาษาซจะใชค าสงในการเขยนโปรแกรม 3 ค าสง ดงน 1. ค าสง Do..While 2. ค าสง While 3. ค าสง For มรปแบบรหสเทยมแตละค าสงดงตอไปน

ชอรหสเทยม รปแบบรหสเทยม แบบ Do..While 1. Start 2. Statement 1 3. Statement 2 4. Do {

Statement 3 Statement 4 } While (Condition) End DoWhile

5. stop

ชอรหสเทยม รปแบบรหสเทยมแบบ While 1. Start 2. Statement 1 3. Statement 2 4. While (Condition) {

Statement 3 Statement 4 } End While

5. stop

ชอรหสเทยม รปแบบรหสเทยม แบบ For 1. Start 2. Statement 1 3. Statement 2 4. For count to count {

Statement 3 Statement 4 } End While

5. stop

Page 30: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

30

ตวอยางผงงาน (Flowchart) และรหสเทยม (Pseudo Code) แบบวนซ า ตวอยางท 8 ผงงาน (Flowchart) และรหสเทยม (Pseudo Code) การท างานโปรแกรมแบบวนซ า โจทย บวกสะสมเลขคจ านวน 10 จ านวน

Start

Stop

I=0,Sum=0

I<=10

Sum = Sum+2I=I+1

Yes

No

ภาพท 1.13 แสดงตวอยางการท างานโปรแกรมแบบวนซ าบวกสะสมเลขคจ านวน 10 จ านวน

จากภาพท 1.13 อธบายการท างานของโปรแกรมไดดงน 1. เรมตน 2. ก าหนดคาตวแปร I และตวแปร Sum ใหมคา = 0 3. ตรวจสอบเงอนไข คาตวแปร I มคานอยกวา หรอ เทากบ 10 หรอไม

ถาใช ประมวลผลโดยเอาคา Sum+2 และเกบผลลพธไวทตวแปร Sum และ เพมคาตวแปร I อก1 แลววนการท างานกลบไปท การตรวจสอบเงอนไข จะด าเนนการตรวจสอบเงอนไขและปฏบตตามค าสงถาเงอนไขเปนจรงไปเรอย ๆ จนกวาการตรวจสอบเงอนไขออกมาแลวผลลพธจะเปนเทจ จงจะจบการท างาน

4. จบการท างาน

ชอรหสเทยม บวกสะสมเลขคจ านวน 10 จ านวน 1. Start 2. Set I =0 ,Sum = 0 3. For I to 10 4. Sum = Sum+2 5. Increment I=I+1 6. End For 7. Stop

Page 31: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

31

ตวอยางท 6 ผงงาน (Flowchart) และรหสเทยม (Pseudo Code) การท างานโปรแกรมแบบวนซ า โจทย วเคราะหกระบวนการท างานของโปรแกรมของคดรายชอนกศกษาเพอเขารบทนจ านวน 10 คนโดยมเงอนไขคอ นกศกษาทไดจะตองมเกรดเฉลยมากกวา 3

start

stop

Grade

Count =0

Grade >3.00

Count < 10

Id_studeant

Yes

YesNo

No

Count = Count +1

ภาพท 1.14 แสดงการท างานโปรแกรมแบบวนซ าคดรายชอนกศกษาเพอเขารบทนจ านวน 10 คน

ชอรหสเทยม คดรายชอนกศกษาเพอเขารบทนจ านวน 10 คน 1. Start 2. Set Count =0 3. While (Count <10) 4. Input Grade 5. If Grade>3.00 6. Then Input Id_student 7. Else Go to stop 8. End If 9. Increment Count = Count +1 10. End While 11. Stop

Page 32: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

32

จากภาพท 1.14 อธบายการท างานของโปรแกรมไดดงน 1. เรมตน 2. ก าหนดคาตวเลข 3. ตรวจสอบเงอนไขการวนรอบ ถา Count < 10 4. ถาจรง รบคาเกรด (Grade) 5. ตรวจสอบคาเกรดทรบเขามา ถา คาเกรดมคามากกวา 3 6. รบรหสนกศกษา 7. จบการท างานของค าสง If 8. เพมจ านวนรอบการวน Count = Count +1 และวนกลบไปท างานขอท 3 9. จบการท างานนของค าสง While 10. จบการท างาน

8. คณลกษณะของโปรแกรมทด

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

ผลลพธออกมาเหมอนกนแมวาจะมวธการเขยนหรอขนตอนการท างานไมเหมอนกนกตาม การเขยน

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

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

ผลลพธการหารออกมาได แตถาหากมการปอนคาเปนศนยเขาไปคอมพวเตอรกไมสามารถค านวณได ถา

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

โปรแกรมบางโปรแกรมท างานไดด ท างานไดถกตอง แตถาหากตองการพฒนาตอหรอปบปรง

โปรแกรมใหดขนไดยาก กไมถอวาโปรแกรมมนนมคณลกษณะทด ส าหรบโปรแกรมทมคณลกษณะทด

ควรมลกษณะดงตอไปน

1. มความถกตองและเชอถอได (correctness and Reliability) โปรแกรมทดตองใหผลลพธท

ถกตองแมนย า ไมคลาดเคลอน โปรแกรมจงตองมความสมบรณมากทสด คอ ผานการทดสอบทครอบคลม

โปรแกรมตองนง ไมคอยเกดปญหา เพราะอาจถกน าไปใชในการตดสนใจส าคญ ๆ ของผบรหาร

2. มความเปนมตรตอผใช (User-friendliness) ปจจบนมผใชโปรแกรมในการท างานมากขน ใน

จ านวนนมผใชทเปนผเรมตนและไมมพนฐานทางดานคอมพวเตอรเละ และมแนวโนมเพมมากขน การ

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

Page 33: บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม1 บทที่ 1 ภาษาคอมพิวเตอร์และการพัฒนาโปรแกรม

33

3. คาใชจายต า (Low Cost) กอนการพฒนาตองวางแผนและประเมนคาใชจาย เมอพฒนาตอง

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

มมมองของผพฒนา คาใชจายในการพฒนาตองต ากวาราคาทเสนอแกลกคา

4. ตองอานงายและสามารถน ากลบมาใชใหม (Readability & Reusability) โปรแกรมทม

ความสามารถมาก มกมโครงสรางทใหญและซบซอน จงควรมการออกแบบเปนโมดล (Module) ยอย ๆ ท

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

สมยได

5. มความปลอดภย (Security) ขอมลส าคญมแนวโนมในการเกบไวในคอมพวเตอรเพมมากขน

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

ขอมลไมไดรบอนญาต การลกลอบขโมย ไปจนถงการท าลายขอมล โปรแกรมทดจงตองมความปลอดภยสง

6. ใชเวลาในการพฒนาโปรแกรมไมนาน

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

เกนไปในการพฒนาโปรแกรม ไมเชนนนแลว กวาโปรแกรมจะเสรจ ความตองการอาจเปลยนไปแลว และ

การสงมอบงานกพฒนาเปนไปตามทประเมน