Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore ตัวอย่างระบบการเขียนโปรแกรม ok1-44

ตัวอย่างระบบการเขียนโปรแกรม ok1-44

Description: ระบบการเขียนโปรแกรม

Search

Read the Text Version

บทที่ 1 ระบบการเขียนโปรแกรม ในโลกของคอมพิวเตอร ส่ิงที่ใกลตัวระหวางการทํางาน การเรียนรู มักมีระบบระเบียบ จัดการเปนข้ันเปนตอนเกิดเปนกระบวนการทํางานข้ึนมาในหมูนักเขียนโปรแกรมเราจะพบวา ภาษาคอมพิวเตอรในโลกนี้มีมากมายใหเลือกใชเลือกที่นํามาเขียนตามความถนัดและความชอบ ซ่งึ การเขยี นโปรแกรมแนน อนวาตอ งคาํ นึงถึงความเปนกฎ ความเปน เง่ือนไขในเชิงใหเกิดรูปธรรม ขน้ึ มาทง้ั นีก้ เ็ พื่อใหเครือ่ งคอมพิวเตอรท เ่ี ปน อุปกรณอ เิ ลก็ ทรอนิกสประเภทหนงึ่ ซ่งึ การท่ีจะทําให เครื่องคอมพวิ เตอรทํางานนัน้ เราตองปอนชดุ คําสัง่ ท่ีเครือ่ งคอมพวิ เตอรเขาใจและแปลผลได โปรแกรมภาษาคอมพวิ เตอร ตามความหมายของโปรแกรม คอื สว นของคําสง่ั ที่นํามาเรียงตอกัน เกิดกระบวนงานและมี ความหมายของระบบปฏิบัตงิ านข้ึนอยางใดอยางหน่ึงอยา งชดั เจน แลว เมอื่ นําเอาเคร่ืองคอมพิวเตอร มาทํางานตามคําสงั่ ท่เี ราวางตอ ๆ กนั ไวทีละคําสั่ง และการที่จะสั่งใหเคร่ืองคอมพิวเตอรทํางานให น้ันจะตองใชภาษาที่คอมพิวเตอรเขาใจโดยภาษาท่ีเครื่องคอมพิวเตอรเขาใจคือ “ภาษาเคร่ือง (Machine Language)” ซง่ึ ทาํ งานเปนระบบไฟฟาสญั ญาณไฟฟา คือ 0 และ 1 บางครั้งเราเรียกวา รหัสเลขฐานสอง เมื่อมีการปอนรหัสเลขฐานสองเขาไปในตัวเครื่องคอมพิวเตอรเคร่ืองก็สามารถรู และเขา ใจไดท ันทวี า เปนคําสั่งอะไร 01010100 10001100 10101001 11101111 10001100 10001011 00101100 11101011 10110001 11001011 10101110 00101011 รูปที่ 1.1 แสดงรหสั ของภาษาเครอ่ื ง

2 การเขยี นโปรแกรมเชิงโครงสรางดว ยภาษาซี แตดวยเปนภาษารหัสเลขฐานสองท่ีออกแบบยากมากและใชเวลา และดวยเปนภาษาท่ี เขาใจยากในมนุษยปถุ ุชนจงึ ไดมีการคิดคนภาษาใหม ๆ ท่ีเปนคําส้ัน ๆ ในรูปของภาษาอังกฤษแทน รหัสเลขฐานสองเราเรียกวา “ภาษาแอสเซมบลี (Assembly Language)” ดวยคุณสมบัติขอนี้จึง ทําใหทํางานไดเร็วเพราะมีการประมวลผลไดเร็วที่สุด บางครั้งเราอาจเรียกภาษาเครื่องนี้วา “ภาษาระดบั ตาํ่ ” cseg segment assume cs:cseg,ds:cseg push ds pop cs jmp start mssge db 'x',0dh,0ah,'B' start: mov bh,09h lea bx,mssge int 11h mov ah,01h int 11h jmp start cseg ends end รูปท่ี 1.2 แสดงรหัสของภาษาแอสเซมบลี แตเน่ืองดว ยจากคาํ สั้น ๆ มนษุ ยก็ยังส่ือสารกันไดไ มเ ต็มที่และไมครอบคลุม ดังน้ัน จงึ ไดสรางชดุ คําส่ังท่ีสื่อสารกันอยางคลองตัวและเขาใจความหมายใกลเคียงกับภาษามนุษย เปนภาษาคอมพิวเตอรหลายภาษาขึ้นมา เรามักเรียกวา “ภาษาระดับสูง (High level Language)” ดังน้ัน ภาษาระดับสูง เปนภาษาที่ใชงายกวาภาษาสัญลักษณ โดยผูคิดคน ภาษาคอมพวิ เตอรระดบั สูงไดออกแบบ คาํ สัง่ รูปแบบ ไวยากรณ และกฎเกณฑขอ กําหนดตาง ๆ ออกมาใหกระชับรัดกุม สามารถจาํ ไดง าย ภาษาระดับสูงน้ียังอาจจะแบงออกไดเปนหลาย

ระบบการเขยี นโปรแกรม 3 ประเภท เชน ประเภทที่เหมาะกับงานวิทยาศาสตรและออกแบบเชิงวิศวกรรมศาสตรไดแก ภาษาเบสิก, ภาษาฟอรแทรน, ภาษาปาสคาล, ภาษาซี, ภาษาจาวา สําหรับภาษาประเภทที่ เหมาะกับงานธุรกิจไดแกภาษา อารพีจี, ภาษาโคบอล ทั้งน้ีโปรแกรมที่สรางขึ้นจากนักเขียน โปรแกรมท่เี ลือกภาษาระดบั สงู น้จี ะตอ งใชตัวแปลภาษาแปลเพื่อใหเปนโปรแกรมภาษาเครื่อง กอ น คอมพวิ เตอรจ งึ จะเขาใจและทํางานใหได ตัวอยางโปรแกรมที่เขียนดวยภาษาซี แสดงได ดังรูปที่ 1.3 #include \"stdio.h\" main() { float r , area, circum ; printf(“Input Radias =>”);scanf(\" %f\", &r) ; area = 3.1415926 * r * r ; circum = 2 *3.1415926 * r ; printf (\" Area = %0.2f , area); printf(“Circumference = %0.2f \",circum); } รูปที่ 1.3 แสดงรหสั ของภาษาระดับสูง ตวั แปลภาษา ในการเขียนโปรแกรมคอมพิวเตอรไมวาจะเปนภาษาคอมพิวเตอรระดับสูงหรือ ภาษาคอมพิวเตอรระดับต่ํา เราจะตองทําการแปลงภาษาคอมพิวเตอรเหลาน้ันใหเปนรหัส ภาษาเครื่องคอมพิวเตอรใหเขาใจเปนอันดับแรก คอมพิวเตอรจึงจะทํางานได เพราะ ภาษาคอมพิวเตอรเปนการนําชุดคําสั่งแตละคําส่ังมาเรียงตอกันอยางมีความห มายเพ่ือให เคร่ืองคอมพิวเตอรไดรับรูและทํางาน การเขียนโปรแกรมในชุดคําสั่งน้ีไมวาจะเขียนดวย ภาษาคอมพวิ เตอรภาษาอะไรเราจะเรียกวา “โปรแกรมตน ฉบบั (Source Program)” หรือ “รหสั ตนฉบบั (Source Code)” จากนนั้ จะตองแปลงใหเปน ภาษาเคร่ืองทีค่ อมพิวเตอรที่ทํางานไดเรา เรยี กขั้นตอนน้ีวา “การเอก ซิค๊วิ โปรแกรม (Executable Program)”

4 การเขยี นโปรแกรมเชงิ โครงสรา งดว ยภาษาซี ตัวอยาง เชน หากเราเขียนโปรแกรมดวยโปรแกรมภาษาแอสเซมบลี (Assembly Language) จะตองใชตัวแปลภาษาใหแปลงเปนภาษาเครื่อง ลักษณะการแปลภาษาแบบนี้เรียกวา “แอสเซมเบอร (Assembler)” ขนั้ ตอนการแปลภาษาคอมพิวเตอรท ําได ดงั รูปที่ 1.4 Source Program Assembler Code Machine (Assembly Language) รูปท่ี 1.4 แสดงขนั้ ตอนการแปลภาษาภาษาแอสเซมบลีใหเปน ภาษาเครื่อง สําหรับการเขียนโปรแกรมดวยภาษาระดับสูงโดยแปลจากตนฉบับโปรแกรม (Source Program) หรือ รหัสตนฉบับ (Source Code) ใหเปนภาษาเคร่ือง (Machine Language) ท่ี สามารถทาํ งานไดทันที สามารถแบงตามลักษณะการแปลออกเปน 2 ประเภท คือ อินเทอร พรีเตอร (Interpreter) และคอมไพเลอร (Compiler) 1. การแปลแบบอินเทอรพรีเตอร (Interpreter) ทําหนาท่ีแปลคําส่ังภาษาที่เขียนดวย ภาษาระดบั สงู ใหเ ปน ภาษาเครอื่ งทลี ะคําสงั่ และทาํ งานตามคําสั่งน้นั ทนั ที กอ นทจี่ ะแปลคาํ สง่ั ตอ ไป จนจบโปรแกรมโดยไมมีการสรางออบเจ็คตโปรแกรม การทํางานของอินเทอรพรีเตอรเร่ิมจาก การอา นโปรแกรมตนฉบับทีละบรรทดั แลว นํามาแปลความหมาย (Compile) ถา ไมพบขอผิดพลาด ก็จะทํางานตามคําส่ังที่แปลได แตถาพบขอผิดพลาดก็จะหยุดและแสดงขอผิดพลาดน้ันออกมา ทันที เพื่อใหผูเขียนโปรแกรมทําการแกไขแลวแปลใหมจนจบโปรแกรม ตัวอยางของภาษาท่ีใช ตัวแปลภาษาประเภท อนิ เทอรพ รเี ตอร (Interpreter) คือ ภาษาเบสิก, ภาษาพเี ฮชพ,ี ภาษาเอเอสพ,ี ภาษาจาวาสครปิ เปนตน ข้ันตอนการแปลภาษาประเภทนีแ้ สดงไดด งั รปู ท่ี 1.5 Source Program Interpreter Machine Language แปลทีละบรรทดั รปู ท่ี 1.5 แสดงขน้ั ตอนการแปลในรูปแบบประเภทของอนิ เทอรพ รเี ตอร

ระบบการเขยี นโปรแกรม 5 2. การแปลแบบคอมไพเลอร (Compiler) ทําหนา ที่ แปลตนฉบับของโปรแกรม (Source Program) ภาษาระดับสูงทั้งโปรแกรมใหเปนรหัสอ็อบเจกต (Object Code) ซ่ึงประกอบดวยภาษา เคร่ืองทม่ี รี หสั สั่งงาน ออ็ บเจกตโ ปรแกรมนีย้ ังไมส ามารถทาํ งานได จะตองผานการลิงค (Link) หรือ รวมเขากับไลบราร่ี (Library) ของระบบกอนจึงจะเปนโปรแกรมท่ีสามารถทํางานไดหรือเปนภาษา เครอ่ื งทีเรียกวา “เอก ซคิ ิว๊ โปรแกรม (Executable Program)” และจะมีขอความแสดงความผิดพลาด ถาประโยคในโปรแกรมน้ันไมถูกตองตามกฎเกณฑของภาษา โดยการแปลนั้นจะทําการแปลหน่ึง ประโยคคําสั่ง (Statement) ของโปรแกรมที่เขยี นดว ยภาษาชนั้ สงู เปนภาษาเครื่องมากกวาหน่ึงคําส่ัง ข้นั ตอนการแปลภาษาประเภทนแ้ี สดงไดดังรปู ท่ี 1.6 Source Program Compiler Machine Language แปลทงั โปรแกรม รปู ท่ี 1.6 แสดงขั้นตอนการแปลในรปู แบบประเภทของคอมไพเลอร เน่ืองจากภาษาเครื่องจะแตกตา งกันไปขนึ้ อยกู ับตวั ประมวลผล ดังนั้นในคอมพิวเตอรท่ีตาง ประเภทกัน เชน เคร่ืองคอมพิวเตอรแบบเมนเฟรม เคร่ืองคอมพิวเตอรแบบมินิคอมพิวเตอร และเครอื่ งคอมพวิ เตอรสวนบุคคล จะตองใชโปรแกรมแปลภาษาคนละตัวกัน แมจะตองการ แปลภาษาเดียวกันก็ตาม การทํางานของคอมไพเลอรเร่ิมจาก การแปลตนฉบับโปรแกรม ท้งั หมดใหเ ปน รหสั ออ็ บเจกตซงึ่ ในระหวางการแปลโปรแกรม ถา พบขอ ผดิ พลาดข้ึน ก็จะแสดง ลกั ษณะความผิดพลาดออกทางหนาจอใหผูเขียนโปรแกรมไดพบเห็น ดังนั้น ผูเขียนโปรแกรม จะตองปรับปรุงแกไ ขสวนทีผ่ ิดพลาดใหถ กู ตอ งกอนที่จะทาํ การแปลโปรแกรมใหมอีกคร้ังจนไมมี และไมพบขอผดิ พลาดแลว จึงจะไดโปรแกรมอ็อบเจกต (Object Program) หลังจากนั้นจะตอง นําเอาโปรแกรมอ็อบเจกตที่ได มาทําการเชื่อมโยงเขากับระบบหรือกับไลบรารี (Library) ซึ่ง เรยี กวาข้ันตอนการลิงค (Link) จึงจะไดผลลัพธออกมาเปนโปรแกรมภาษาเครื่อง (Executable Program) แลวจึงนาํ ภาษาเคร่อื งทไ่ี ดนไี้ ปสั่งใหคอมพิวเตอรทํางาน ตัวอยางของภาษาท่ีใชตัวแปล ภาษาแบบคอมไพเลอร ไดแก คอมไพเลอรภ าษาจาวา คอมไพเลอรภาษาโคบอล, คอมไพเลอร ภาษาซี และคอมไพเลอรภ าษาปาสคาล เปนตน ดังนนั้ ขอ แตกตา งระหวางคอมไพเลอรกบั อนิ เทอรพรเี ตอรจึงอยทู กี่ ารแปลท้งั โปรแกรม หรือแปลทีละคาํ สงั่ นนั่ เอง

6 การเขียนโปรแกรมเชิงโครงสรา งดว ยภาษาซี ข้ันตอนการพฒั นาโปรแกรมคอมพิวเตอร ในการพฒั นาโปรแกรมและการเขยี นโปรแกรมเปนงานสรา งสรรครูปแบบประเภทหนึ่ง และ เปน งานทจ่ี าํ เปน ตองวิเคราะหว างแผนเปน อยางดี จงึ จะทาํ ใหผลงานท่อี อกมามีประสิทธิภาพตรง กับความตอ งการ โดยผเู ขยี นโปรแกรมนัน้ ตองรขู อจํากดั วา จะใหโปรแกรมท่ีเขียนไปทําอะไร อีก ทัง้ คาํ นึงถึงขอมลู อะไรท่ตี อ งปอนใหก ับเคร่ืองคอมพวิ เตอรใหทํางานประมวลผลของโปรแกรม ไดอยางไรบาง และตองการผลลัพธอ ะไรจากการทํางานโปรแกรม รวมทั้งรูปแบบการแสดงผล ตามชนิดปญ หาของโจทยง านวา ไดแกไ ขไดม ากนอ ยเพยี งใด โดยท่วั ๆ ไป ข้นั ตอนการพัฒนาโปรแกรมคอมพิวเตอรม ขี น้ั ตอนทส่ี าํ คัญดังตอไปนี้ 1. กําหนดและวเิ คราะหปญ หาของงาน 2. ออกแบบโปรแกรมโดยเขยี นผงั งานและรหัสจาํ ลองหรอื ซูโดโคด 3. เขยี นโปรแกรมตามการออกแบบ 4. การทดสอบและแกไ ขโปรแกรม 5. จดั ทําเอกสารและบํารงุ รกั ษาโปรแกรม 1. กาํ หนดและวิเคราะหป ญหาของงาน 1.1 ระบจุ ดุ มุง หมายของโจทยวาตองการอะไรใหเดนชดั ถอดแนวคาํ ถามทโ่ี จทย ตองการ 1.2 รวบรวมรายละเอียดของงานโปรแกรมมีอะไรบาง บางครง้ั ตองอาศัยภมู ริ ขู อง ผเู ขียนโปรแกรม เชน สตู รการคาํ นวณคณติ ศาสตร เชน สตู รการหาพน้ื ท่ีของรูปเชิงเรขาคณิต รูปแบบตาง ๆ 1.3 ระบุผลลัพธเ ม่ือโปรแกรมทาํ งานแลว โดยดจู ากคําถามโจทย 1.4 ระบขุ อมลู เขา ของโปรแกรมเพ่อื ประมวลผล โดยดูจากคําถามโจทย 1.5 กาํ หนดวิธีการประมวลผลมีข้ันตอนอยา งไร โดยผเู ขียนโปรแกรมวาจะลําดับ การแกป ญหาไดอ ยา งไรเพือ่ ใหไ ดผ ลลัพธ 2. การออกแบบโปรแกรม 2.1 ออกแบบทําไดโ ดยการเขียนผังงาน (จะกลาวถึงในบทท่ี 2) ซงึ่ เปนสัญลักษณ รปู ภาพแทนขั้นตอนการประมวลผลและการทาํ งานของโปรแกรม 2.1.1 ภาพแสดงการทาํ งานตามลําดับ

ระบบการเขยี นโปรแกรม 7 2.1.2 ชว ยใหม องเห็นวาสว นตา ง ๆ ของโปรแกรมมคี วามสัมพันธเชอ่ื มโยงกัน อยางไร 2.1.3 สญั ลกั ษณต อ งถกู ตองตามหลักสากล ในการออกแบบโปรแกรมนนั้ ไมต องพะวงกับรูปแบบคําสั่งภาษาคอมพิวเตอร แตใหม งุ ความสนใจไปที่ลําดับข้นั ตอนในการประมวลผลของโปรแกรมเทานน้ั 3. การเขียนโปรแกรม การเขียนโปรแกรมเปนการนําเอาผลลพั ธจากการท่เี ราออกแบบโปรแกรมมาเปลย่ี นเปน โปรแกรมภาษาคอมพิวเตอรภาษาใดภาษาหนง่ึ ผูเขียนโปรแกรมจะตองใหความสนใจตอรูปแบบ คําสั่งและกฎเกณฑของภาษาท่ีใชเพื่อใหการประมวลผลเปนไปตามผลลัพธที่ไดออกแบบไว นอกจากนัน้ ผเู ขยี นโปรแกรมควรแทรกคาํ อธิบายการทํางานตาง ๆ ลงในโปรแกรมเพ่ือใหโปรแกรม น้นั มคี วามกระจางชัดและงา ยตอการตรวจสอบและโปรแกรมนย้ี ังเปน สว นหน่ึงของเอกสารประกอบ 4. การทดสอบและการแกไ ขโปรแกรม ข้ันตอนนี้จะทําการตรวจสอบวาโปรแกรมทํางานไดตามที่วางแผนและออกแบบไวหรือไม และตรวจสอบวาไดผลลัพธตรงตามความตองการไวหรือไม และใหทําการแกไขขอผิดพลาด ตา ง ๆ ทมี่ อี ยูภ ายในโปรแกรมที่เขยี นข้ึน ใหถ กู ตองตรงกับความตองการของผูเขียนโปรแกรม และผใู ชโ ปรแกรมใหถกู ตองสอดคลองกบั ความเปน จรงิ การทดสอบโปรแกรมเพอ่ื ตรวจสอบผลการทาํ งานของโปรแกรมน้ัน ๆ วาทํางานถูกตอง หรอื ไม ถาพบวา โปรแกรมทาํ งานยังไมถูกตองก็แกไขใหถกู ตองตอไป ขั้นตอนการทดสอบและ แกไ ขโปรแกรมอาจแบงไดเปน 3 ข้นั ตอนดังน้ี 4.1 สรางแฟม เกบ็ โปรแกรมซ่ึงสวนใหญนิยมนําโปรแกรมเขาผานทางแปนพิมพ โดยใชโ ปรแกรมประมวลคาํ 4.2 ใชตัวแปลภาษาคอมพิวเตอรแปลโปรแกรมท่ีสรางข้ึนเปนภาษาเครื่อง โดย ระหวา งการแปลจะมกี ารตรวจสอบความถกู ตองของรูปแบบและกฎเกณฑในการใชภาษา ถา คําสั่งหรือรูปประโยคคําสั่งไมถูกตองก็จะแสดงขอผิดพลาดออกมาเพื่อใหผูเขียนโปรแกรม นาํ ไปแกไ ขตอไป ถาไมม ีขอ ผิดพลาด เราจะไดโ ปรแกรมภาษาเคร่อื งทีส่ ามารถใหค อมพิวเตอร ประมวลได 4.3 ตรวจสอบความถูกตองของการประมวลผลของโปรแกรมที่จัดทําอยางละเอียด การทาํ โปรแกรมทีถ่ กู ตองตามรูปแบบและกฎเกณฑข องภาษาแตอ าจใหผลลัพธของการประมวลผล

8 การเขยี นโปรแกรมเชงิ โครงสรา งดว ยภาษาซี ไมถูกตองก็ได ดังนั้นผูเขียนโปรแกรมจําเปนตองตรวจสอบวาโปรแกรมประมวลผลถูกตอง ตามตองการหรือไม วิธีการหนึ่งก็คือ สมมติขอมูลตัวแทนจากขอมูลจริงนําไปใหโปรแกรม ประมวลผลแลวตรวจสอบผลลัพธวาถูกตองหรือไม ถาพบวาไมถูกตองก็ตองดําเนินการแกไข โปรแกรมตอไป การสมมติขอมูลตัวแทนเพื่อการทดสอบเปนส่ิงที่มีความสําคัญเปนอยางมาก ลกั ษณะของขอ มลู ตัวแทนท่ีดีควรจะสมมติทั้งขอมูลท่ีถูกตองและขอมูลที่ผิดพลาด เพื่อทดสอบวา โปรแกรมทพี่ ฒั นาขนึ้ สามารถครอบคลมุ การปฏบิ ตั ิงานในเง่ือนไขตาง ๆ ไดครบถวน นอกจากนี้อาจ ตรวจสอบการทํางานของโปรแกรมดวย การสมมตติ วั เองเปนคอมพิวเตอรที่จะประมวลผล แลว ทาํ ตามคาํ ส่งั ทีละคําสง่ั ของโปรแกรมนนั้ ๆ วธิ ีการนี้อาจทําไดยากถา โปรแกรมมีขนาดใหญ หรอื มกี ารประมวลผลท่ซี ับซอน 5. การจัดทําเอกสารและบาํ รงุ รักษาโปรแกรม การจัดทาํ เอกสารประกอบโปรแกรมเปนงานที่สาํ คญั ของการพฒั นาโปรแกรม เอกสาร ประกอบโปรแกรมชวยใหผ ูใชโปรแกรมเขาใจวัตถุประสงค ขอมูลที่จะตองใชกับโปรแกรมตลอดจน ผลลัพธทจ่ี ะไดจ ากโปรแกรม การทําโปรแกรมทุกโปรแกรมจึงควรตองทําเอกสารกํากับ โดย รวบรวมรายละเอียดตั้งแตการพัฒนาโปรแกรมจนถึงการทดสอบโปรแกรมเพื่อใชสําหรับการอางอิง เม่ือจะใชงานโปรแกรมและเม่ือตองการแกไขปรับปรุงโปรแกรม โดยเอกสารที่จัดทําขึ้นควร ประกอบดว ย 5.1 วัตถปุ ระสงค 5.2 ประเภทและชนิดคอมพวิ เตอรและอปุ กรณทใี่ ชในโปรแกรม 5.3 วธิ ีการใชโ ปรแกรม 5.4 แนวคิดเก่ยี วกบั การออกแบบโปรแกรม 5.5 รายละเอยี ดโปรแกรม 5.6 ขอ มูลตัวแทนทใี่ ชทดสอบ 5.7 ผลลพั ธข องการทดสอบ จะเห็นไดวาแมผ เู ขยี นโปรแกรมคอมพวิ เตอรจ ะดาํ เนนิ การนับจากข้นั ตอนการวิเคราะห และกาํ หนดรายละเอยี ดของปญ หา การออกแบบโปรแกรม การเขียนโปรแกรม ตลอดจนการตรวจสอบ การทํางานในเวลาเพียงนอยนิด แตในข้ันตอนการบํารุงรักษาโปรแกรมจะมีชวงเวลานานไป ตลอดอายุการใชง านของโปรแกรม ซึ่งนบั เปนสดั สวนทม่ี ากกวา 4 ข้ันตอนแรกอยางมาก นอกจากนี้ การจัดทาํ เอกสาร/การบํารุงรักษา การเขยี นคาํ อธบิ าย/เขยี นเอกสาร เปนการแสดงขั้นตอนการ ใชง าน คมู อื การใชงานโปรแกรมทาํ ใหท ราบความเปน มาของโปรแกรม การวางแผนและทฤษฎี

ระบบการเขยี นโปรแกรม 9 การทํางานท่ีรวบรวมความผิดพลาดหรอื จุดแกปญหาไมได และเปนการเก็บขอเสนอแนะจุดดี จุดเสีย ลาํ ดับการแกป ญ หาการประเมินความพึงพอใจของผูใชโปรแกรมอีกดวย ความหมายของอัลกอริทึม อัลกอริทึม (Algorithm) หมายถึง วิธีการหรือกระบวนการทํางานใดงานหนึ่งท่ีสามารถ แบงข้ันตอนออกเปนยอย ๆ ที่แนนอน ซ่ึงเมื่อทราบข้ันตอนการทํางานท่ีแนนอนแลว ก็จะนํา อัลกอริทึมทีไ่ ดน ้ันมาวาดเปนผงั งานจากน้นั จึงแปลงเร่อื งราวในผังงานเปนภาษาระดับสูงเขียน เปน โปรแกรมส่ังงานใหเครื่องคอมพิวเตอรเ ขาใจ และปฏบิ ตั ิการทาํ งานตามท่อี อกคาํ ส่งั ขนั้ ตอนในการพฒั นาลาํ ดบั ขน้ั ตอนวิธีการแกปญหา นับวาเปนข้ันตอนที่สําคัญอีกข้ันตอน หนึ่ง เพราะเปน ขั้นตอนทนี่ าํ วิธีการแกปญ หาท่ไี ดทาํ การทดลองหาวิธีการแกปญหาในสวนของ การทดลองแกปญ หาดวยตนเอง (Hand Example) มาทาํ การเรียบเรยี งลําดับขั้นตอนการทํางาน ของวิธีการแกปญหา ตั้งแตขั้นตอนแรกจนถึงข้ันตอนสุดทาย วามีลําดับขั้นตอนการทํางาน อยา งไรบาง เพ่ือท่จี ะนําไปสงั่ การใหเ ครอ่ื งคอมพิวเตอรทาํ การแกไขปญ หาดว ยวิธีการน้ี คําวา อัลกอริทึม ในทางคณิตศาสตรจะหมายถึง ข้ันตอนหรือวิธีการคํานวณ แตในทาง การเขยี นโปรแกรมคอมพิวเตอร อลั กอรทิ ึม หมายถงึ วธิ ีการท่ไี ดแ บงออกเปน ขนั้ ตอนยอ ย ๆ ที่ มกี ารทาํ งานแนน อน หรือการอธิบายลาํ ดบั ขนั้ ตอนการทาํ งานในลกั ษณะของขอ ความ ตั้งแตตนจน จบ วา มลี าํ ดับข้ันตอนการทํางานอยา งไรบาง จดุ ประสงคข องการเขียนอลั กอริทมึ เปน การจดั ลาํ ดับความคดิ เปนขั้นตอนตาง ๆ เพ่ือ แกไ ขปญหาในขั้นตอนการเขียนโปรแกรมทส่ี อดคลองกรรมวิธีแกปญหาท่ีกําหนดไว การเขียน อัลกอริทึมจึงเปนการแสดงลําดบั การทํางานตามคุณสมบตั ดิ านการประมวลผลของคอมพิวเตอร ท่ี พรอมจะนําไปแปลงเปนลําดับคาํ ส่ังใหคอมพิวเตอรทาํ งาน การเขียนโปรแกรมคอมพิวเตอร ดวยภาษาทเี่ หมาะสม เพอื่ สั่งใหคอมพวิ เตอรทํางานตามอัลกอริทึมท่ีกําหนดไว และการเขียน อลั กอรทิ ึมออกมาควรท่ีจะใหม ีการตรวจสอบความถกู ตองดวย รูปแบบการเขียนอลั กอรทิ มึ การพฒั นาลําดับของอลั กอริทมึ เขยี นลาํ ดบั ข้ันตอนการทํางานได 2 วิธี คือ การอธิบาย ขน้ั ตอนการทํางานอยา งเหมาะสมตามความหมาย และการอธบิ ายข้ันตอนการทาํ งานอยา งละเอยี ด 1. การอธิบายขัน้ ตอนการทาํ งานอยา งงาย ๆ คือ การเขียนขนั้ ตอนการทํางานท้ังหมด โดยไมตอ งละเอยี ดมากนักแตเ ขาใจความหมายวาบง ถงึ อะไร และเขียนขั้นตอนการทํางานเปน ขอ ๆ เร่ิมตัง้ แตข้ันตอนแรกจนถึงข้ันตอนสดุ ทา ยทจ่ี ะสงใหเครือ่ งคอมพวิ เตอรทําการแกป ญหา

10 การเขยี นโปรแกรมเชงิ โครงสรางดว ยภาษาซี จะตองทาํ ตามลาํ ดบั ขั้นตอนใดบาง ตวั อยา งเชน การคํานวณหาอัตราผอนชําระรายเดือนของ เชาซ้ือบา น สามารถเรียบเรียงเปน การทาํ งานอยางงา ย ๆ ไดดังนี้ 1.1 เริ่มตนการทาํ งาน 1.2 รบั คา ของราคาของบา นท้งั หมด 1.3 รบั คาของอตั ราดอกเบีย้ ของบานทซ่ี ้ือเปนรายป 1.4 รับคา ของจาํ นวนเดือนทต่ี อ งการผอนชําระ 1.5 คาํ นวณหาคา ของจํานวนเงนิ ทตี่ องชําระรายเดอื น 1.6 แสดงคา ของจํานวนเงนิ ท่ีผอนชาํ ระรายเดือน 1.7 จบการทํางาน ในการเขียนอธบิ ายลําดับขัน้ ตอนการทํางานในลักษณะของขอความน้ัน จะเร่ิมตนขอแรก ดว ยคาํ วา “เริ่มตน” หรือ “เริม่ ตนการทาํ งาน” ถดั จากนั้นเปนลําดับขั้นตอนการทํางานท่ีใชใน การแกป ญ หา และจบดวยขนั้ ตอนสุดทาย จะใชขอความวา “จบการทาํ งาน” 2. การอธิบายขั้นตอนการทาํ งานอยางละเอียด คือ การที่นําข้ันตอนการทาํ งาน อยางงาย ๆ ทีไ่ มซ ับซอ นมาพิจารณาเพมิ่ เตมิ ขอ มลู บางอยา งที่ยังไมเรียบรอย แตละขั้นตอนที่ อธบิ ายในสว นของการอธบิ ายขั้นตอนการทํางานอยางหยาบน้ัน มีความละเอียดพอที่จะนําไป สัง่ งานใหเ ครอ่ื งคอมพวิ เตอรท ํางานแลว หรือยัง ถา ยงั ไมละเอียดตองเขียนขยายความใหละเอียด มากย่ิงข้นึ และสมบูรณม ากทส่ี ดุ เทา ที่จะทาํ ได หรือแยกการทาํ งานออกเปนขอยอยเพิ่มเติม อยางเชน ในการคํานวณหาคา ขอ มูลใดบางอยา ง จะคาํ นวณดว ยวธิ ีการใด จากตัวอยางในสวน ของการอธบิ ายขัน้ ตอนการทาํ งานอยา งงา ย เร่ืองการหาอัตราการผอนชําระรายเดือนของ การเชาซ้ือบา น เมือ่ พจิ ารณาการทาํ งานในแตละขอ จะเหน็ ไดวามขี ั้นตอนการทาํ งานอยูข้ันตอนหนึ่ง ที่ไมล ะเอียด กค็ อื ขน้ั ตอนท่ี 5 การคาํ นวณหาคา ของจาํ นวนเงินที่ตองการชําระรายเดือน ยังไมได บอกวาคํานวณดวยวิธีการใด ดังนั้นจึงตองทําการอธิบายเพิ่มเติมในสวนของขั้นตอนใน การคํานวณหาคาของจํานวนเงนิ ที่ตอ งชาํ ระรายเดือน โดยวิธีการคํานวณน้ันไดทําในสวนของ การทดลองแกป ญหาดวยตนเอง สามารถเขียนอธิบายขั้นตอนการทํางานอยางละเอียดของ การแกปญหาไดดังน้ี 2.1 เร่มิ ตนการทาํ งาน 2.2 รบั คาของราคาของบานทงั้ หมด 2.3 รับคาของอัตราดอกเบีย้ ของบา นท่ซี อ้ื เปนรายป 2.4 รับคาของจํานวนเดอื นทตี่ อ งการผอ นชําระ

ระบบการเขียนโปรแกรม 11 2.5 คํานวณหาดอกเบ้ยี จากสตู ร ดอกเบย้ี ราคาของบา นท่ีจะซื้อ x อตั ราดอกเบย้ี x (จํานวนเดือน / 12) 2.6 คาํ นวณหาจํานวนเงนิ ทตี่ อ งชําระรายเดือน จากสตู ร เงนิ ผอนรายเดือน (ราคาบา นทีจ่ ะซอื้ + ดอกเบยี้ ) / จํานวนเดอื น 2.7 แสดงคา ของจํานวนเงนิ ทีผ่ อนชาํ ระรายเดอื น 2.8 จบการทํางาน การพัฒนาลําดับข้ันตอนการทํางานจากผังงาน ใหแบงขั้นตอนการทํางานทั้งหมด ออกเปนขอ ๆ ตามลําดับและตามจาํ นวนของขัน้ ตอนการทํางานทั้งหมด และการเขียนตองไม ซับซอน เขาใจงา ย และตอ งเขียนใหถ กู ตองเสมอ เพราะถาเขียนไมถูกตองแลวการพัฒนาไปเปน รหสั จาํ ลอง (Pseudo Code) ก็จะผดิ พลาด และการเขยี นโปรแกรมก็จะผดิ ตามดวย การเขยี นโปรแกรมคอมพวิ เตอรตองเก่ียวของกบั การใชง านพ้ืนที่ในหนวยความจําของ ระบบคอมพิวเตอร ในภาษาคอมพิวเตอรใหแทนสัญลักษณกาํ หนดพ้ืนที่หนวยความจํา ดวย การกาํ หนดชอ่ื เปน ตวั แปรใชง าน เพือ่ ใชอ า งอิงถึงขอมูลในหนว ยความจํา เชน A = 8 หมายถงึ กาํ หนดคา 8 เกบ็ ไวใ นตัวแปร A POWER = X2 + Y2 หมายถงึ เอาคา X ยกกําลัง 2 บวกกับคา Y ยกกาํ ลังสอง แลว เก็บคา ผลลัพธท ไี่ ดไวที่ตัวแปร POWER Sum = Sum + Mark หมายถึง การเอาคา ในตัวแปร Mark ไปบวกเขากับคา ในตวั แปร Sum แลว เอาคา ผลลัพธใหมท ่ไี ดไ ปเก็บท่ีตัวแปร Sum ซึ่งคาใหมทไ่ี ดจ ะไปเก็บทับคาเดิมที่มีอยู คาํ สง่ั ลกั ษณะนใ้ี ชในการสะสมคา หรือเปลี่ยนแปลงคาในตัวแปรเดมิ การวเิ คราะหป ญ หาเชงิ อัลกอริทมึ ในชีวติ ประจําวนั เมอ่ื ประสบปญหาใด ๆ ส่ิงแรกท่ีกระทาํ คอื การวิเคราะหปญหาแลวถาม ตัวเองวา อะไรคอื ปญหาทเ่ี กดิ ขนึ้ หรือปญหาที่เกิดขึ้นน้ันตองการคําตอบอะไร และวิธีการ แกปญ หาควรตอ งเปนอยา งไร ในการวิเคราะหปญหาเพื่อเขียนโปรแกรมไมไดแตกตางกับ การแกปญหาในชีวิตประจาํ วันเพียงแตปญหาที่จะนํามาวิเคราะหจะเปนปญหาประเภทที่มี ลําดบั ขน้ั ในการแกปญหา เม่อื แกป ญ หาตามขนั้ ตอนกไ็ ดคําตอบตามตองการ ขนั้ ตอนการวิเคราะห ปญหาเชิงอัลกอริทึม มี 3 ข้ันตอน คือ ขั้นวิเคราะหผลลัพธ ขั้นวิเคราะหขอมูล ข้ันวิเคราะห กระบวนการแกป ญ หาหรอื ขนั้ การประมวลผล

12 การเขยี นโปรแกรมเชงิ โครงสรางดว ยภาษาซี ปญหา การแกป ญ หา ขนั้ ตอนที่ยาก ผลลพั ธใ นรูปอัลกอริทมึ ผลลพั ธใ นรูปภาษา ดาํ เนินการแกป ญหา โปรแกรมคอมพวิ เตอร รปู ที่ 1.7 แสดงขนั้ ตอนการแกป ญหาในเชงิ อลั กอริทมึ 1. ขั้นวิเคราะหผลลพั ธ คือ ทําเมอื่ ตองการเขยี นโปรแกรม โดยจะตอ งกําหนดขอบเขต ของงานหรือปญ หา รวบรวมรายละเอียดของปญหาวิเคราะหปญหาอยางละเอียดวาตองการ ใหคอมพิวเตอรทําอยางไร ผลลัพธท่ีตองการเปนอยางไรรูปแบบของขอมูลท่ีจะปอนเขาเครื่อง คอมพิวเตอรเ ปนอยา งไร 2. ขน้ั วิเคราะหขอ มูล คอื ศกึ ษาขอ มูลทต่ี องการเปน อยา งไร ขอมูลทจี่ ะปอนเขาเครื่อง คอมพิวเตอรเ ปนอยา งไร ถาตองการผลลัพธเ ชนน้ี การวิเคราะหขอมูลเปนการศึกษาผลลัพธ ขอ มูลนําเขา วิธีการประมวลผล และการกาํ หนดช่ือของตวั แปรทีจ่ ะใชใ นการเขียนโปรแกรม 3. ขั้นวิเคราะหก ระบวนการแกปญ หาหรือข้ันการประมวลผล คือ ข้ันตอนของวิธีการ แกป ญหาหรอื การคํานวณเพ่อื ใหไ ดผ ลลัพธตามท่ีตองการ ตั้งแตการส่ังใหเคร่ืองคอมพิวเตอร รบั ขอ มลู เขาไปทาํ การประมวลผลและแสดงผลลัพธอ อกมา ซึง่ เปน ขั้นตอนการทาํ งานทุกอยาง ตามลาํ ดับ จึงจาํ เปนจะตองจัดลําดับการทํางานตามลําดับกอนหลังใหละเอียดและถูกตอง ทุกขนั้ ตอน ใ น ก าร เ ขีย น วิเ ค ร าะหอัล ก อ ริทึม นั้น ตอ ง ม อ ง ปญ ห าข อ ง โ จ ท ยเ ปน ลําดับ ขั้น ต อ น อัลกอริทึมตองงา ย เปน สากล และไมสับสน มีความหมายเดียวไมกํากวม อีกทั้งขั้นตอนแต ละขนั้ ตอนตอ งเปนไปตามลําดับ มีจาํ นวนข้นั ตอนทน่ี ับเปน ขอ ๆ ได สว นการนําเสนออัลกอริทมึ กท็ ําได 2 แบบ คือ การเขียนในรปู ของผังงานและรหสั จาํ ลอง ซ่ึงจะไดก ลา วลาํ ดับตอ ไป

ระบบการเขียนโปรแกรม 13 ผังงานกบั รปู แบบการเขยี นโปรแกรมแบบโครงสราง ผงั งาน (Flowchart) คอื แผนภาพซงึ่ แสดงลาํ ดบั ขัน้ ตอนของการทํางาน โดยแตละขั้นตอน จะถูกแสดงโดยใชส ัญลกั ษณซึง่ มคี วามหมายที่บงบอกวา ข้ันตอนน้ัน ๆ มีลักษณะการทํางาน อยางไรทที่ ําใหง า ยตอ ความเขา ใจ วาในการทํางานนนั้ มีขน้ั ตอนอะไรบา ง และมลี าํ ดับอยา งไร เร่มิ ตน รับเงนิ ตน , อัตราดอกเบ้ีย และจํานวนปที่ฝากเงิน กําหนด n = 0 ยอดบญั ชี = เงนิ ตน n < จํานวนปท ฝ่ี ากเงนิ ไมใช ใช ยอดบญั ชี = ยอดบัญชี + (ยอดบญั ชี x อัตราดอกเบ้ยี ) แสดงยอดบญั ชี จบการทาํ งาน n=n+1 รูปที่ 1.8 แสดงขัน้ ตอนการทํางานโดยรูปแบบผังงาน

14 การเขยี นโปรแกรมเชิงโครงสรา งดว ยภาษาซี ประโยชนข องผงั งาน 1. ทาํ ใหเ ขา ใจและสามารถแยกแยะปญหาตาง ๆ ใหเ ขาใจงา ยขนึ้ 2. ทําใหเขียนโปรแกรมมองเห็นลําดับขั้นตอนในการทํางานโดยรูวาควรทําอะไรกอน ทําอะไรหลัง ชว ยใหส ามารถทําความเขา ใจลําดบั ขน้ั ตอนการทาํ งานของโปรแกรมหรือระบบใด ๆ ไดอ ยา งรวดเร็ว 3. เปน เคร่อื งมอื ชวยหาขอผดิ พลาดของโปรแกรมไดง า ยกวาการไปตรวจคนหาขอผิดพลาด ทีโ่ ปรแกรม ทําใหสามารถเขียนโปรแกรมไดอยา งเปนระบบไมส บั สน 4. เปนเอกสารรวบรวมและประกอบในการเขียนโปรแกรมอยางหนึ่งท่ีตองรวบรวมไว เพอื่ อางองิ ตอ ไป ประเภทของผังงาน 1. ผังงานระบบ (System flowchart) เปน ผังซึ่งแสดงขอบเขต และลําดับข้ันตอนการทํางานของระบบหนึ่ง ๆ รวมท้ังแสดงรูปแบบ ของขอมูลเขา (Input) และขอ มูลออก (Output) วาถูกรับเขาหรือแสดงผลโดยผา นส่ือประเภทใด เนื่องจากผังงานระบบเปนแผนภาพท่ีแสดงถึงระบบโดยรวม ดังนั้นกระบวนการหรอื โปรแกรม หนึง่ ๆ อาจถูกแสดงเปนเพียงขนั้ ตอนหน่งึ ในผงั งานระบบเทาน้ัน รปู ท่ี 1.9 ผังงานระบบท่แี สดงลาํ ดบั ข้นั ตอนการทํางานของระบบหนงึ่ ๆ

ระบบการเขยี นโปรแกรม 15 2. ผังงานโปรแกรม (Program flowchart) เปน ผังงานท่ีแสดงใหเ หน็ ถึงลาํ ดับข้ันตอนในการทํางานของโปรแกรม ต้ังแตการรับขอมูล การประมวลผล ตลอดจนผลลัพธท่ีไดจะทําใหเขียนโปรแกรมคอมพิวเตอรไดสะดวกขึ้น ซึ่ง ผังงานชนิดนี้อาจสรางมาจากผังงานระบบโดยดึงเอาจุดที่เกี่ยวของกับการเขียนโปรแกรม คอมพวิ เตอรมาวเิ คราะหว า จะใชทาํ งานสวนใดเพ่ือทจ่ี ะใหไดผ ลลัพธตามท่ีตองการ รปู ที่ 1.10 แสดงผังงานโปรแกรมทเ่ี หน็ ถึงลําดบั ขนั้ ตอนในการทํางานของโปรแกรม สญั ลักษณข องผงั งาน สัญลักษณที่นิยมใชในการเขียนผังงาน หนวยงานที่ชื่อวา American National Standards Institute (ANSI) และ International Standard Organization (ISO) ไดกําหนด สัญลกั ษณมาตรฐานเพ่อื ใชใ นการเขียนผังงาน ซึ่งผังงานเขียนขึ้นมาเพื่อแสดงลําดับขั้นตอน การทาํ งาน โดยนาํ เอาภาพท่เี ปน สญั ลกั ษณตาง ๆ มาเรียงตอกันอยางมีความหมายตามข้ันตอน ซึง่ สญั ลักษณของผงั งานที่ใชบ อย ๆ ในการเขยี นโปรแกรมมีดงั นี้

16 การเขยี นโปรแกรมเชิงโครงสรา งดว ยภาษาซี Term inator การเรมิ่ ตน/การสนิ้ สุดการทํางาน DATA การรบั ขอ มูลโดยไมระบอุ ปุ กรณ Manual Input การรับขอมลู ทางแปน พมิ พ (Keyboard) การประมวลผลขอมูล/การตัง้ คา สมการ Process Display การแสดงผลขอมูล/ตัวแปรออกทางจอภาพ Document การแสดงผลขอ มลู /ตัวแปรออกทางเครือ่ งพิมพ Decision N การตง้ั เงื่อนไข/การตัดสนิ ใจ (เขา 1 ออก 2) Y การเตรียมการวนลปู โดยการกาํ หนดคา จดุ เช่ือมตอหนากระดาษเดียวกนั Preparation Connect

ระบบการเขยี นโปรแกรม 17 จดุ เชือมตอ่ คนละหน้า ลูกศรแสดงทิศทางการไหล ลาํ ดับขั้นตอนโปรแกรม แสดงจานแมเ่ หลก็ หรือฮาร์ดดิสก์แหลง่ เกบ็ ข้อมลู วธิ กี ารเขยี นผังงานทด่ี ี 1. ควรเลือกสญั ลักษณท ่ีมกี ารกาํ หนดรปู แบบไวเปนมาตรฐาน สวนขนาดของสญั ลกั ษณ ใหขน้ึ อยกู ับความเหมาะสม 2. ควรเขยี นใหท ศิ ทางของผงั งานเร่มิ จากซายไปขวา บนลงลา ง และควรมีลูกศรกํากับ ทศิ ทางของผงั งานดว ยเขียนคําอธิบายทตี่ องการอธิบายการปฏิบตั งิ านข้นั ตอนนัน้ ๆ ภายในกรอบ รปู สัญลักษณ โดยใชข อความทเ่ี ขา ใจงาย ส้ัน กะทดั รัด และชดั เจนของเนื้อหาท่จี ะใช 3. ควรใชสัญลักษณท่ีเรียกวา “ตัวเชื่อมแทน” ในกรณีที่ตองการขีดเสนเชื่อมโยง การปฏิบัติงานตามขั้นตอนท่ีอยหู า งไกลกันมาก ไมว าจะอยหู นาเดียวกันหรือคนละหนา หรอื คน ละแผน กระดาษกต็ าม 4. ตอ งแนใ จวา สามารถเช่ือมโยงการปฏิบตั ิงานทุกจุดในผงั งานไมม ีการปลอ ยวางไวเฉย ๆ 5. ผงั งานจะตองครอบคลุมทุกข้นั ตอนเนอื้ หาหรือตามเง่ือนไขของการปฏิบัติงานในการ วเิ คราะหของงานโจทยน้นั ๆ 6. ความสะอาดชัดเจนเปน ระเบยี บเรยี บรอย ผอู น่ื สามารถตดิ ตามขนั้ ตอนการทาํ งานได 7. ควรทดสอบความถูกตองกอ นการนําไปเขียนโปรแกรมทกุ ครั้ง ลกั ษณะโครงสรา งของผังงาน ผังงานทัว่ ไปจะประกอบดว ยโครงสรา งพน้ื ฐาน 3 รปู แบบตอ ไปนี้ คอื 1. โครงสรา งแบบเปนลําดบั (Sequence structure) 2. โครงสรางแบบมกี ารเลอื ก (Selection structure) 3. โครงสรา งแบบทาํ ซาํ้ (Iteration structure)

18 การเขียนโปรแกรมเชงิ โครงสรางดว ยภาษาซี 1. โครงสรา งแบบเปนลําดับ (Sequence Structure) ข้นั ตอนการทาํ งานแบบลําดบั เปน ข้ันตอนวิธกี ารทํางานพื้นฐาน ข้นั ตอนวิธีการทํางาน แบบลาํ ดับไดรับการพัฒนาจากผังงานการทํางานของโปรแกรมที่เปนแบบลําดับ การเขียนอธิบาย การทํางานของวิธกี ารแกป ญหาโดยใชผ งั งาน ทําใหส ามารถเห็นลาํ ดับขัน้ ตอนวิธีการทํางานของการ แกป ญหาไดชัดเจนกวา การอธิบายข้นั ตอนวิธีการทาํ งานในลักษณะของขอความโดยตรง สําหรบั ผู ทเ่ี ริ่มตนฝกหดั การเขยี นโปรแกรม อาจจะไมสะดวก จึงตองมกี ารเปล่ียนจากผังงานใหเปนการ อธิบายข้ันตอนวิธีการทาํ งานในลักษณะของขอความกอน จากน้ันจึงทําการเปลี่ยนจากการ อธิบายขัน้ ตอนวธิ กี ารทาํ งานในลักษณะของขอความใหเปนรหัสเทียม และแปลงเปนโปรแกรม ภาษา คอมพวิ เตอรต ามลําดับตอ ไป การเขยี นอธิบายข้ันตอนวธิ ีการทํางานในลกั ษณะของขอความจากผังงาน ส่ิงท่ีตองทํา เปน ลาํ ดบั แรก คือ การแยกจํานวนของกระบวนการทํางานท้งั หมดของผงั งาน โดยพิจารณาวา ผังงานนั้นมีกระบวนการทํางานท้ังหมดจํานวนก่ีกระบวนการ ก่ีขั้นตอน สามารถทําการ พิจารณาไดจากการทํางานของกระบวนการหนึ่งกระบวนการน้ัน จะมีทิศทางเขาและทิศ ทางออกจากกระบวนการ มีเพยี งอยางละหนง่ึ ทิศทางเทา นน้ั โดยทําการเขียนอธิบายขั้นตอน วิธีการทํางานในลักษณะของขอความจํานวนหนึ่งขอความ ตอกระบวนการหนึ่ง กระบวนการ โครงสรางลักษณะน้ีเปน โครงสรางพ้ืนฐานของผังงาน และเปนลักษณะข้ันตอน การทาํ งานทพ่ี บมากท่ีสุด คอื ทาํ งานทลี ะขั้นตอนตามลาํ ดับ ดงั แสดงดังรปู ท่ี 1.11 รูปท่ี 1.11 แสดงผงั งานโครงสรา งผังงานแบบเปน ลําดบั

ระบบการเขียนโปรแกรม 19 ตวั อยา งผังงานท่มี ีโครงสรางแบบเปน ลําดบั รูปที่ 1.12 แสดงตัวอยางการใชงานของผังงานแบบเปน ลําดบั จากตัวอยางผังงานการคํานวณหาเสนรอบรูปและพ้นื ทสี่ ี่เหลย่ี ม สามารถอธิบายเปน ขนั้ ตอนได ดงั น้ี 1. เร่ิมตนการทํางาน 2. รบั คา ดา นกวางและรบั คาดา นยาวเพื่อใชในการคํานวณหาเสนรอบรูปและคาพื้นที่ ส่ีเหล่ียม 3. คาํ นวณหาสิ่งที่ตอ งการโดยใชสมการตอไปน้ี 3.1 เสนรอบรูป = (คา ดานกวาง + คาดานยาว) x 2 3.2 คาของพืน้ ท่ี = คา ดา นกวา ง x คาดานยาว 4. แสดงคาของเสน รอบรปู และคา ของพนื้ ท่ีสเ่ี หลีย่ ม 5. จบการทํางาน

20 การเขยี นโปรแกรมเชิงโครงสรา งดว ยภาษาซี 2. โครงสรา งแบบมตี ัวเลือก (Selection Structure) รูปที่ 1.13 แสดงผังงานโครงสรางผังงานแบบมีตัวเลอื ก โครงสรา งการทาํ งานแบบมีตัวเลอื ก มีรูปแบบท่ีซับซอนกวาโครงสรางแบบเปนลําดับ การเขียนข้ันตอนวิธีการทํางานแบบมีตัวเลือก ใชสําหรับกรณีที่ตองการเลือกวิธีการทํางาน สําหรับการแกไขปญหา ที่เหมาะสมกบั ลักษณะขอ มูลในขณะนัน้ น่ันคอื การเลือกแบบมที างออก สองทาง ในการเลอื กแบบมีทางออก สองทาง น้ีจะมที างออกจากสัญลักษณก ารตัดสินใจเพียง สองทาง คือ “ใช” หรือ “ไมใช” เทาน้ัน การเขียนข้ันตอนวิธีการทํางานแบบมีตัวเลือกไดรับการ พัฒนามาจากโครงสรางผังงานแบบมีตัวเลือก เม่ือไดทําการอธิบายข้ันตอนวิธีการทํางานใน ลักษณะของขอความแลว จากน้ันจึงทําการเปล่ียนใหเปนรหัสเทียม และโปรแกรม ภาษาคอมพวิ เตอรต อ ไป

ระบบการเขียนโปรแกรม 21 รปู ที่ 1.14 แสดงตวั อยา งผงั งานโครงสรา งผังงานแบบมตี ัวเลอื ก ตวั อยา งผังงานท่มี ีโครงสรา งแบบมตี ัวเลอื ก ผงั งานการคาํ นวณหาโบนัสซง่ึ มอี ตั ราการคดิ 2 รูปแบบ คือ ถายอดขายมากกวา 5,000 บาท จะใหคา โบนัส = รอยละ 5% ของยอดขาย และแสดงผลคา โบนสั ออกทางจอภาพ แตถ ายอดขายนอยกวา 5,000 บาท ก็จะ “ไมมีคาโบนัส” ใหส ามารถอธบิ ายเปนขั้นตอนไดด ังน้ี 1. เริม่ ตน การทาํ งาน 2. รบั คายอดขาย ทางแปนพิมพ 3. พิจารณายอดขายทร่ี บั คา เขามา ตรวจสอบวา ยอดขายมคี า มากกวา 5,000 บาท หรอื ไม 3.1 ถาใช ใหค ํานวณคา โบนสั = ยอดขาย * 5/100 และแสดงผลคาโบนสั ออก ทางจอภาพ และจบการทาํ งาน 3.2 ถา ไมใ ช ใหแสดงขอความ “ไมม คี าโบนสั ” ออกทางจอภาพ และจบการทาํ งาน

22 การเขยี นโปรแกรมเชิงโครงสรางดว ยภาษาซี 4. จบการทาํ งาน 3. โครงสรางแบบทาํ ซ้ํา (Iteration Structure) รูปที่ 1.15 แสดงตวั อยา งผงั งานโครงสรา งผงั งานแบบทาํ ซา้ํ ขั้นตอนวิธกี ารทํางานแบบทําซํา้ ใชส ําหรับกรณีทตี่ องการทาํ กระบวนการตา ง ๆ ซํา้ กนั หลายครั้ง โดยมีการตรวจสอบเง่อื นไขสําหรับการตัดสินใจ เพื่อเขาสูขนั้ ตอนของการทําซ้าํ หรือ ออกจากขัน้ ตอนของการทําซา้ํ การเขียนขั้นตอนวธิ สี าํ หรบั การทํางานแบบทาํ ซํา้ ไดร บั การพฒั นา มาจากโครงสรางผงั งานการทาํ ซํา้ วธิ ีการเขียนอธิบายขัน้ ตอนวิธีการทาํ งานและรหัสเทียมสําหรับ โครงสรางผังงานแบบทําซ้ํา มีวิธีการเขียนตางไปจากการทํางานแบบลําดับและแบบมี ตัวเลือก แตบางคร้ังการทํางานของขั้นตอนวิธีการแกปญหาที่มีขั้นตอนวิธีการทํางานแบบ ทําซํ้า อาจประกอบดวยข้ันตอนวิธีการทํางานแบบลําดับหรือข้ันตอนวิธีการทํางานแบบมี ตวั เลือกรว มอยูใ นขั้นตอนวิธีการทํางาน ดังนั้นการเขียนอธิบายขั้นตอนวิธีการทํางานแบบ ทําซํา้ จะใชการเขียนอธิบายขัน้ ตอน สําหรบั ข้ันตอนวิธกี ารทาํ งานในลกั ษณะน้ัน

ระบบการเขยี นโปรแกรม 23 ตวั อยางผังงานทม่ี โี ครงสรา งแบบทาํ ซา้ํ ผังงานการคํานวณยอดบัญชี (เงนิ ตนทบดอกเบย้ี ) เร่มิ ตน รับเงินตน , อัตราดอกเบ้ยี และจาํ นวนปท ี่ฝากเงนิ กาํ หนด n = 0 ยอดบญั ชี = เงินตน n < จํานวนปท ี่ฝากเงนิ ไมใช ใช ยอดบญั ชี = ยอดบญั ชี + (ยอดบัญชี x อตั ราดอกเบีย้ ) แสดงยอดบัญชี n=n+1 จบการทาํ งาน รปู ที่ 1.16 แสดงตัวอยางผงั งานโครงสรางผงั งานแบบทาํ ซํ้า

24 การเขียนโปรแกรมเชิงโครงสรา งดว ยภาษาซี จากตัวอยา งผงั งานสามารถอธิบายเปน ขนั้ ตอนไดด งั น้ี 1. เร่มิ ตนการทาํ งาน 2. รบั คา เงินตน อตั ราดอกเบีย้ และจํานวนปที่ฝากเงิน ซง่ึ เปน ขอ มูลทจ่ี ําเปนในการคํานวณ ยอดบญั ชี (เงนิ ตนทบดอกเบย้ี ตามจาํ นวนป ทฝี่ ากเงนิ ) 3. กาํ หนดให n มคี า เทากบั 0 ในผังงานน้ี n คือจํานวนรอบของการคิดดอกเบีย้ 4. กําหนดยอดบัญชีเร่มิ ตน ใหเทากับเงินตน ทรี่ บั คาเขา มา 5. เปรียบเทียบวา n นอยกวาจํานวนปท ีฝ่ ากเงนิ หรือไม 5.1 ถา “ใช” ใหทําตามขัน้ ตอนตอไปนี้ 5.1.1 คํานวณยอดบญั ชีใหมโ ดยทบดอกเบ้ียเพ่ิมเขาไปจากยอดบัญชีเดิมโดยใช สมการยอดบัญชี = ยอดบัญชี + (ยอดบญั ชี * อตั ราดอกเบี้ย) 5.1.2 เพมิ่ คา n ไปอีก 1 5.1.3 กลับไปเปรียบเทยี บเงอ่ื นไขในขอ 5 5.2 ถา “ไมใช” แสดงวา คดิ ดอกเบี้ยทบตน ครบตามจํานวนปท่ีฝากเงินซึ่งรับคาเขา มาแลว ใหทาํ ตามขนั้ ตอนตอไปน้ี 5.2.1 แสดงคายอดบญั ชีสดุ ทายท่ีคํานวณได 5.2.2 จบการทํางาน การเขียนรหสั จาํ ลอง การเขียนรหัสจาํ ลอง ถือเปนรูปแบบหนึ่งของการนาํ เสนอแบบแนวคิดอัลกอริทึม ท่ี สามารถนําไปเปนคาํ ส่ังรหัสจาํ ลองได ซึ่งบางคร้ังเรียกวา “คําสั่งเทียม (Pseudo Code)” ซึ่งหมายถึง คาํ สั่งที่ใชเขียนลําดับขั้นตอนแนวคิดเชิงการทาํ งาน โดยจะถูกพัฒนามาจาก การอธบิ ายลาํ ดบั ขนั้ ตอนการทํางานในลักษณะของขอ ความ และจะเขยี นเลยี นแบบเปนคาํ สัง่ จริง วิธีการเขียนจะเขียนดวยภาษาที่เขาใจงาย อาจใชภาษาอังกฤษในการเขียน เพราะเหมือนกับ การเขียนโปรแกรมจริง หรือเขียนดว ยภาษาไทยกอนก็ได เพราะการเขียนคําส่ังเทียมน้ีขอเนน อยางชัดเจนคือจะไมข ึน้ กบั ภาษาคอมพวิ เตอรภาษาใดภาษาหนึ่ง แตเ ปนคาํ สัง่ ทเี่ ขยี นเลียนแบบ คาํ ส่งั จรงิ อยางยอ ๆ และใชเปนแนวทางของคาํ สั่งควบคมุ ในภาษานัน้ ๆ เพ่อื ใหเ หน็ แนวทางของ การทาํ งานในโปรแกรม และยังไมส ามารถนาํ ไปใชงานได จะตอ งนําไปพัฒนาโดยการเขียนเปน โปรแกรม โดยเลอื กใชภ าษาใดภาษาหน่ึงในการเขียนซึง่ แลวแตความเหมาะสมของงาน เชน ใน โปรแกรมเราอาจตงั้ คาตวั แปรตา ง ๆ ของโปรแกรมใหมีคาเปนศูนยเพ่ือใหโปรแกรมทํางานได

ระบบการเขยี นโปรแกรม 25 อยา งถกู ตอ ง ซึ่งกระบวนการนี้หากเขียนเปนผังงานโปรแกรม (Program Flowchart) จะตอง กําหนดคาตัวแปรที่ใชในโปรแกรมทั้งหมดใหเปนศูนย ถามีตัวแปร 20 ตัวก็จะตองเขียนชื่อ ตัวแปรทั้ง 20 ตัว พรอมกับการกาํ หนดคา เร่ิมตนใหมคี าเปน 0 แตหากเขียนดว ยคาํ สงั่ เทยี มเรา สามารถเขยี นยอ ๆ วา “การกาํ หนดคา เริม่ ตน ” ได รหสั จาํ ลอง (Pseudo Code) เปน คาํ สง่ั ทเ่ี ขยี นข้ึนใกลเคียงกับภาษาคอมพิวเตอร แตไมใชคําส่ังในภาษาคอมพิวเตอรใด ๆ อยางแทจริง เปนคําสั่งที่เขียนเลียนแบบคําสั่งจริง อยา งยอ ๆ จึงไมส ามารถนําไปเขียนลงในเครื่องคอมพิวเตอรใหทํางานได และใชเปนแนวทาง ของคาํ สั่งควบคุมในภาษาน้ัน ๆ เพ่ือใหเห็นแนวทางของการทํางานในโปรแกรม ใหนักเขียน โปรแกรมนําไปแปลงเปนภาษาโปรแกรมคอมพิวเตอร ชวยใหเขียนโปรแกรมไดงายขึ้นกวา การอานสัญลักษณจากผังงาน การเขียนคําสั่งเทียมมีทั้งการทํางานแบบลําดับ การทํางาน แบบมีตัวเลอื ก และการทํางานแบบทําซ้าํ ลกั ษณะรหสั จําลอง 1. ใชข อ ความทส่ี น้ั ไดใ จความ 2. ใชขอความที่สอ่ื ใหผ ูอานเขาใจไดง าย 3. ตอ งเขียนเรียงลาํ ดับทีละบรรทดั 4. มลี กั ษณะใกลเ คียงกบั ภาษามนษุ ย 5. ไมข ้ึนอยกู ับภาษาคอมพิวเตอรภ าษาใดภาษาหนงึ่ หลักเกณฑท ่ัวไปในการเขียนรหัสจําลอง รูปแบบและคณุ สมบตั ิของการเขียนคาํ ส่ังเทียมโดยท่ัวไปจะมีลกั ษณะดงั ตอ ไปน้ี 1. กําหนดช่ือของรหสั เทยี มใหส ือ่ ความหมายและเขาใจงาย โดยกําหนดตอทายคําวา “BEGIN” ซง่ึ ถอื วาเปนจุดเร่ิมตนของอัลกอริทึม และมีคําวา “END” เพ่ือเปนตัวบอกจุดสิ้นสุด ของอัลกอริทึมตามดวยช่ือของคาํ ส่งั เทียมนั้น ๆ 2. เมื่อเขียนเปนคําส่ังเทียมแลวจะตองไมขึ้นกับภาษาใดภาษาหนึ่งในการพัฒนาเปน โปรแกรม 3. ใชค ําและวลที ่เี ขา ใจงาย 4. รูปแบบการเขียนคลายกับการเขยี นเปน ภาษาองั กฤษ 5. การเขียนแตล ะคาํ สั่งของคาํ สัง่ เทยี มควรแยกเปน บรรทัด ๆ ไมค วรเขียนหลายคําสั่ง อยูในบรรทดั เดียวกนั

26 การเขียนโปรแกรมเชงิ โครงสรางดว ยภาษาซี 6. ในการเขียนคําสง่ั เทยี มควรมีการยอหนา หรือเวนวรรคตอนในแตละประโยคคําส่ัง หรือกลมุ ของคําสง่ั เพือ่ ใหเกดิ ความสวยงามและเขาใจงาย สะดวกตอการอา นและการตรวจสอบ คําสง่ั เทยี มไดอีกทางหนง่ึ 7. การเขียนคําสง่ั เทียมจะเร่มิ เขยี นจากบนลงลาง (Top to Down) โดยมีทางเขา หนึ่งทาง และทางออกหนงึ่ ทาง 8. กลุมของคําสั่งท่ีเปนโปรแกรมที่ทําหนาท่ีอยางเดียวกัน ควรจะรวมเขาดวยกันเปน ลักษณะของโมดูล (Module) โดยตั้งช่อื กาํ กับไวใ นแตล ะโมดูล ขอ ตกลงในการเขยี นรหสั จาํ ลอง 1. ในการอธิบายการทาํ งานใชคําสั่งซึ่งเปนคํา กริยาในภาษาอังกฤษ เชน MOVE, INITIALIZE, READ, WRITE, SUBTRACT, ADD, DISPLAY, COMPUTE เปน ตน 2. คาํ สั่งหลาย ๆ คาํ สัง่ รวมเรยี กวา “โมดลู ” หรือ “กระบวนการ” กําหนดช่ือใหโมดูล น้ัน แลวใช do นําหนา 3. การทาํ งานใด ๆ จะเขยี นคําสงั่ เปน บรรทดั ๆ ไป เรยี งเปน ลําดบั Statement-1 Statement-2 ... ... Statement – n 4. การทาํ งานตามเงื่อนไข เปน การทํางานท่ี เมอ่ื ทดสอบเง่ือนไขแลวจะเลือกทําทางใด ทางหนึ่งเทาน้ัน เชน IF Condition THEN Statement-1 ELSE Statement-2 ENDIF อธบิ ายคาํ สง่ั การทาํ งานได ดงั น้ี คาํ สั่ง IF เปนการตรวจสอบเง่ือนไข หากเงื่อนไขเปนจริง จะทาํ คําสั่งที่ 1 แตหาก เง่ือนไขเปนเท็จจะทาํ คําส่ังที่ 2

ระบบการเขียนโปรแกรม 27 5. การวนรอบ เปนการวนรอบซาํ้ ตามจาํ นวนทตี่ อ งการ ซึ่งการวนรอบมีหลายลักษณะ ดงั น้ี - FOR วนรอบซํ้า เทา จํานวนรอบท่ีระบุ คือ รูจาํ นวนรอบทีแ่ นนอน FOR n TIMES Statement-1 Statement-2 ENDFOR อธิบายคําส่ังได ดงั น้ี คําสงั่ FOR เปนการวนรอบซาํ้ เปนจาํ นวน n ครั้ง เพอ่ื ทาํ คาํ ส่ังที่ 1 และคาํ สัง่ ที่ 2 - REPEAT UNTIL วนรอบซํ้าจนกระทงั่ เง่อื นไขทีก่ าํ หนดเปน จรงิ จงึ เสร็จสน้ิ REPEAT Statement-1 Statement-2 UNTIL condition อธิบายคาํ สงั่ ได ดงั น้ี คําสงั่ REPEAT UNTIL เปน การวนรอบซ้ําในขณะทเี่ งือ่ นไขเปน เทจ็ เพอ่ื ทําคําสง่ั ท่ี 1 และคาํ สงั่ ท่ี 2 แตหากเงือ่ นไขเปน จรงิ กจ็ บการวนซ้ําทนั ที - WHILE วนรอบซา้ํ ในขณะทเ่ี ง่ือนไขเปน จริง WHILE condition Statement-1 Statement-2 END WHILE อธิบายคําส่งั ได ดงั นี้ คาํ สง่ั WHILE เปน การวนรอบซา้ํ ในขณะท่เี ง่ือนไขเปน จริงเพ่อื ทําคําส่ังท่ี 1 และคาํ สง่ั ท่ี 2 แตห ากเง่อื นไขเปน เท็จก็จบการวนซ้าํ

28 การเขยี นโปรแกรมเชงิ โครงสรา งดว ยภาษาซี ตวั อยา งการใชงานรหัสจาํ ลอง 1. ใหนบั จํานวนนักศึกษาทีอ่ ายุ มากกวา หรือเทากบั 20 ป และจาํ นวนนกั ศึกษาท่อี ายุ นอยกวา 20 ป IF student’s age >= 20 THEN AdultCounter = AdultCounter + 1 ELSE JuniorCounter = JuniorCounter + 1 ENDIF 2. ใหนบั จาํ นวนพนักงานหญิง และพนกั งานชาย โดยนบั จากขอ มูลรหัสเพศ และตรวจสอบ ดว ยวา ขอมลู รหัสเพศทีไ่ มถูกตองมีกค่ี น IF employee’s sex is female THEN FemaleCounter = FemaleCounter + 1 ELSE IF employee’s sex is male THEN MaleCounter = MaleCounter + 1 ELSE ErrorCounter = ErrorCounter + 1 ENDIF ENDIF 3. ใหนับจํานวนช่วั โมงการทาํ งานทเ่ี กนิ 30 ชัว่ โมง IF hour worked > 30 THEN TotalIncome = HourlyWage x NumberOfHoursWorkedOT PRINT TotalIncome ENDIF 4. จงเขยี นรหสั จําลองหาพ้ืนทขี่ องวงกลมกาํ หนดให สตู รพนื้ ท่ีวงกลม = 3.1415 x รศั มี x รศั มี Area of cycle Read radius Compute Area = 3.1415 * radius * radius Display Area End

ระบบการเขียนโปรแกรม 29 5. ทาํ การวนรอบเพอ่ื พมิ พร ายชื่อลกู คา จํานวน 5 คน Print Heading Initialize Counter to 1 Repeat Read CustName Print CustName Increment Counter by 1 Until Counter > 5 End 6. ทําการวนรอบเพอ่ื พิมพช อ่ื และทอี่ ยูของลกู คา จนหมดแฟมขอ มลู Print Heading Read CustRecord Repeat While not EndOfFile Print CustName , CustAddress Read CustRecord EndRepeat ตัวอยา งการเขียนแนวคดิ การทาํ งานเชงิ อลั กอรทิ มึ และรหสั จําลอง ตามท่ีกลาวมาแลววา ขนั้ ตอนการแกป ญ หาโจทยท างคอมพิวเตอรตองใชแนวคิดอยาง เปน ขั้นตอนในเชงิ ของอัลกอริทึม จึงขอยกตัวอยางเพ่ือการแกโจทยใหลุลวงและสูผลสําเร็จ ซงึ่ อธบิ ายโดยสรุปดังน้ี 1. ระบสุ ่งิ ทโ่ี จทยต องการ 2. ระบขุ อ มลู นาํ เขา อาจสรุปไดวา มี 2 ลักษณะ 2.1 กาํ หนดขอมลู นําเขาลงในโปรแกรมโดยตรงเชน คา PI เปน ตน 2.2 รับขอมูลนําเขา จากสอื่ ตา ง ๆ ทเ่ี กย่ี วของ 3. ตง้ั ชือ่ ตวั แปรทเ่ี ก่ียวของโดยระบคุ วามหมายของตวั แปรทีใ่ ชแ ทนใหชดั เจน 4. กาํ หนดวิธีการประมวลผล เชน 4.1 กาํ หนดคาเริ่มตน 4.2 พิมพข อ ความทเ่ี กย่ี วขอ งเพื่อสอดคลองกับขอมลู 4.3 รับขอมูลนําเขาตามการวิเคราะหห รอื ตามที่โจทยบอก (ถา มี)

30 การเขยี นโปรแกรมเชงิ โครงสรางดว ยภาษาซี 4.4 ระบกุ ารดาํ เนินการเชน สมการ หรือการเปรยี บเทียบเงอ่ื นไข 4.5 แสดงผลลพั ธใ นสงิ่ ทตี่ องการ 5. นาํ เสนอแมแ บบดวยผงั งาน หรอื รหสั จําลอง ตัวอยาง จงเขียนโปรแกรมรับคารัศมีของวงกลมแลวคํานวณและแสดงผลคาพื้นท่ี และเสนรอบวงของวงกลมโดยใหนกั ศกึ ษาคิดสตู รเอง 1. วเิ คราะหโจทย 1.1 โจทยต อ งการหาคาของพนื้ ทีว่ งกลม และเสน รอบวง 1.2 ขอมลู นําเขา คารศั มี ทีเ่ ปน ตวั เลข โดยรับทางแปน พมิ พ 1.3 ขอ มูลนําออก คา ของพ้นื ท่ีวงกลม และเสน รอบวง แสดงออกทางจอภาพ 1.4 ตัวแปรทใ่ี ช Area = คาของพื้นทีว่ งกลม แสดงผลออกทางจอภาพ r = คาของรัศมี รบั ขอ มูลทางแปน พิมพ Circum = เสน รอบวง แสดงผลออกทางจอภาพ 2. การประมวลผล 2.1 เร่มิ ตนการทาํ งาน 2.2 รับคา r ทางแปน พมิ พ 2.3 คาํ นวณ Area = 3.1415926* r * r 2.4 คํานวณ Circum = 2 * 3.1415926 * r 2.5 แสดงผลคา Area ออกทางจอภาพ 2.6 แสดงผลคา Circum ออกทางจอภาพ 2.7 จบการทํางาน

ระบบการเขยี นโปรแกรม 31 3. ผังงานโปรแกรม รปู ท่ี 1.17 แสดงผังงานการทํางานของโปรแกรมหาคา พน้ื ท่แี ละเสนรอบวงของวงกลม 4. การเขียนรหสั จาํ ลอง Start Read variable r on keyboard Compute Area = 3.1415926 * r * r Compute Circum = 2 * 3.1415926 * r Display Area , Circum End

32 การเขียนโปรแกรมเชิงโครงสรา งดว ยภาษาซี ตัวอยา งท่ี 2 จงเขียนโปรแกรมปอนคะแนนทดสอบจํานวน 5 คา ทางแปนพิมพ แลว นาํ มาหาคาผลรวมและหาคาเฉล่ียของคา ที่ปอนเขา มา โดยแสดงผลคาํ ตอบออกทางจอภาพ 1. วเิ คราะหโ จทย 1.1 โจทยต องการ หาคาผลรวมและคาเฉล่ียของตัวเลขท่ีปอนเขามาทางแปนพิมพ จํานวน 5 คา 1.2 ขอ มูลนาํ เขา คะแนนทเ่ี ปน ตวั เลข จํานวน 5 คา โดยรับทางแปนพมิ พ 1.3 ขอมูลนาํ ออก คาผลรวมและคาเฉลี่ยของคะแนนตัวเลข 5 คา แสดงออกทาง จอภาพ 1.4 ตัวแปรทใี่ ช T1 = คะแนนทดสอบคา ท่ี 1 รับทางแปนพมิ พ T2 = คะแนนทดสอบคาท่ี 2 รับทางแปน พิมพ T3 = คะแนนทดสอบคา ที่ 3 รบั ทางแปน พมิ พ T4 = คะแนนทดสอบคา ท่ี 4 รับทางแปนพมิ พ T5 = คะแนนทดสอบคาที่ 5 รับทางแปนพมิ พ Sum = ผลรวมของคะแนน 5 คา Average = คา เฉลี่ยของคะแนน 5 คา 2. การประมวลผล 2.1 เริม่ ตน การทํางาน 2.2 รบั คา T1 ทางแปน พมิ พ 2.3 รับคา T2 ทางแปน พมิ พ 2.4 รบั คา T3 ทางแปน พมิ พ 2.5 รบั คา T4 ทางแปน พิมพ 2.6 รับคา T5 ทางแปนพมิ พ 2.7 คํานวณ Sum = T1 + T2 + T3 + T4 + T5 2.8 คํานวณ Average = Sum / 5 2.9 แสดงผลคา Sum ออกทางจอภาพ 2.10แสดงผลคา Average ออกทางจอภาพ 2.11 จบการทาํ งาน

ระบบการเขียนโปรแกรม 33 3. ผังงานโปรแกรม รปู ที่ 1.18 แสดงผังงานการทํางานของโปรแกรมหาคาผลรวมและคาเฉลีย่ ของคะแนน 5 คา 4. การเขียนรหัสจําลอง Start Read variable T1,T2,T3,T4,T5 on keyboard Compute Sum = T1 + T2 + T3 + T4 + T5 Compute Average = Sum / 5 Display Sum , Average End

34 การเขยี นโปรแกรมเชิงโครงสรา งดว ยภาษาซี ตวั อยา งท่ี 3 จงเขียนโปรแกรมคดิ คาโบนัสใหกับพนักงานของบริษัทเงินทุนแหงหน่ึง โดยกําหนดใหม ีเงื่อนไข ดังนี้ เงินเดือนระหวา ง 1 – 5,000 บาท ใหโบนสั 2.5 เทา ของเงินเดอื น เงนิ เดือนระหวา ง 5,001 - 9,000 บาท ใหโ บนสั 4.5 เทาของเงินเดอื น เงินเดอื นมากกวา 9,001 บาท ใหโ บนสั 8.5 เทาของเงินเดอื น ถา ทํางานตง้ั แต 1 - 7 ป เพ่ิมเงินพิเศษ 5,000 บาท ถา ทํางานต้งั แต 8 - 15 ป เพ่ิมเงินพิเศษ 7,000 บาท ถาทํางานมากกวา หรอื เทากบั 16 ป เพม่ิ เงินพิเศษ 10,000 บาท 1. วิเคราะหโจทย 1.1 โจทยต อ งการ หาคา โบนสั จากยอดเงนิ เดือนและระยะเวลาปของการทาํ งาน 1.2 ขอ มลู นําเขา คายอดเงนิ เดอื น และระยะเวลาปข องการทํางาน รบั ทางแปน พิมพ 1.3 ขอมูลนําออก คาโบนัสท่ไี ดหลงั จากการคาํ นวณ แสดงผลทางจอภาพ 1.4 ตัวแปรทใ่ี ช S = ยอดเงนิ รายไดเ งนิ เดอื น Y = ระยะเวลาการทํางานเปน ป B = ผลการคํานวณโบนสั จากเงินเดือน BONUS = เงินโบนัสทตี่ องจายตามเงื่อนไข 2. การประมวลผล 2.1 เริ่มตน การทํางาน 2.2 รบั คา S , Y ทางแปน พมิ พ 2.3 ถา S >= 1 และ S <= 5000 ใหค าํ นวณ B = 2.5 * S หากไมใชเงื่อนไขนี้ ใหไ ปทําขอ 2.4 2.4 ถา S>= 5001 และ S <= 9000 ใหค ํานวณ B = 4.5 * S หากไมใชเงื่อนไข นใี้ หไ ปทําขอ 2.5 2.5 ถา S>= 9001 ใหค าํ นวณ B = 8.5 * S 2.6 ถา Y >= 1 และ Y <= 7 ใหคํานวณ BONUS = B + 5000 หากไมใช เง่อื นไขน้ีใหไ ปทาํ ขอ 2.7 2.7 ถา Y >= 8 และ Y <= 15 ใหคํานวณ BONUS = B + 7000 หากไมใช เงอ่ื นไขนใ้ี หไปทาํ ขอ 2.8

ระบบการเขียนโปรแกรม 35 2.8 ถา Y >= 16 ใหคาํ นวณ BONUS = B + 10000 2.9 แสดงคา BONUS ออกทางจอภาพ 2.10จบการทาํ งาน 3. ผงั งานโปรแกรม รูปท่ี 1.19 ผังงานการทํางานของโปรแกรมหาโบนัสของเงอ่ื นไขจํานวนเงนิ รายรับ และจํานวนปทท่ี าํ งาน

36 การเขยี นโปรแกรมเชงิ โครงสรางดว ยภาษาซี 4. การเขียนรหสั จําลอง Start Read variable S , Y on keyboard IF Salary (S>=1 && S<=5000) THEN Compute B=2.5*S; ELSE IF Salary (S>=5001 && S<=9000) THEN Compute B=4.5*S; ELSE IF Salary (S>=9001) THEN Compute B=8.5*S; ENDIF IF Year (Y>=1 && Y<=7) THEN Compute BONUS=B+5000; ELSE IF Year (Y>=8 && Y<=15) THEN Compute BONUS=B+7000; ELSE IF Year (Y>=16 ) THEN Compute BONUS=B+10000; ENDIF Display BONUS END ตัวอยางท่ี 4 จงเขียนโปรแกรมเพื่อหาผลรวมของเลข 1 ถึง เลข 100 แลวแสดงผล คา ผลรวมออกทางจอภาพ 1. วเิ คราะหโจทย 1.1 โจทยต องการ คาผลรวมของเลข 1 ถึงเลข 100 แสดงผลออกทางจอภาพ 1.2 ขอ มลู นาํ เขา ไมม ี เพราะเปน การกําหนดคา การทํางานในโปรแกรม 1.3 ขอ มูลนาํ ออก คาผลรวมของเลข 1 ถึงเลข 100 แสดงผลออกทางจอภาพ 1.4 ตัวแปรทใ่ี ช ให Sum = เกบ็ ผลรวมของเลข 1 ถึง 100 X = คา เคล่ือนท่ีของตัวแปรตงั้ แตค าเรม่ิ ตน และเคลื่อนไหวตาม X +1 2. การประมวลผล 2.1 เร่ิมตนการทาํ งาน 2.2 ให Sum = 0 เพอ่ื ใหเกบ็ คา เริม่ จาก 0 2.3 ให X = 1 เพราะโจทยก ําหนดใหเรม่ิ จาก 1 2.4 ให Sum = Sum + X 2.5 ให X = X + 1 เพราะตอ งการเคลื่อนเพม่ิ คาครงั้ ละ 1

ระบบการเขยี นโปรแกรม 37 2.6 ถา X <= 100 หากเงือ่ นไขเปน จรงิ ใหท าํ ขอ 2.4 , ขอ 2.5 และขอ 2.6 เปรยี บเทยี บจนกวา คาของ X จะมคี า มากกวา 100 (เปนเทจ็ ) จึงไปทาํ ขอ 2.7 2.7 ใหแ สดงคา Sum ออกทางจอภาพ 2.8 จบการทํางาน 3. ผังงาน เรมิ่ ตน Sum = 0 X=1 X <= 100 No แสดงคา Sum Yes Sum = Sum + X X=X+1 จบการทํางาน รปู ท่ี 1.20 ผงั งานการทํางานของโปรแกรมเพอ่ื หาผลรวมของเลข 1 ถึงเลข 100 4. การเขยี นรหสั จําลอง Start Let variable Sum = 0; Let variable x = 1 REPEAT WHILE (X<=100) Sum = Sum + X; X = X + 1; END REPEAT Display Sum END

38 การเขียนโปรแกรมเชงิ โครงสรางดว ยภาษาซี สรุปเนือ้ หาทา ยบท โปรแกรม คือ สวนของคําสั่งที่นํามาเรียงตอกัน เกิดกระบวนการหรืองานและมี ความหมายของระบบปฏิบัติงานหรอื ผลการทํางานขึ้นอยางใดอยางหน่ึงอยางชัดเจน แลวเมื่อ นําเอาเคร่อื งคอมพิวเตอรม าทาํ งานตามคําสั่งทเ่ี ราวางตอ ๆ กันไวท ลี ะคําส่ัง ภาษาคอมพิวเตอร ประกอบดว ย ภาษาเครื่อง ภาษาระดบั ตา่ํ และภาษาระดบั สงู ภาษาเคร่ือง (Machine Language) ทาํ งานเปน ระบบไฟฟาสญั ญาณไฟฟา คอื 0 และ 1 เราเรียกวารหัสเลขฐานสอง เมื่อมีการปอนรหัสเลขฐานสองเขาไปในตัวเคร่ืองคอมพิวเตอร เครื่องก็สามารถรูและเขาใจไดทันทีวาเปนคําส่ังอะไร แตดวยตัวภาษาระดับตํา่ เปนรหัสของ เลขฐานสองทอี่ อกแบบยากมากและใชเวลา และเปนภาษาทเ่ี ขา ใจยากในมนษุ ยป ุถุชน ภาษาแอสเซมบลี (Assembly Language) เปนคาํ สน้ั ๆ ในรปู ของภาษาองั กฤษแทนรหสั เลขฐานสอง ทาํ งานไดเร็ว เพราะมีการประมวลผลไดเ รว็ ทส่ี ดุ บางครัง้ เราเรียกภาษาเคร่ืองวา “ภาษาระดับต่ํา” ภาษาระดับสูง (High Language) คือ ชุดคาํ ส่ังท่ีส่ือสารกันอยางคลองตัวและเขาใจ ความหมายใกลเคยี งกับภาษามนษุ ยเปนภาษาคอมพิวเตอรห ลายภาษาข้ึนมา แตเครอื่ งคอมพิวเตอร จะรบั รไู ดก ็ตอเม่ือมกี ารแปลภาษาเทา นนั้ การเขยี นโปรแกรมดว ยภาษาระดับสูงโดยแปลจากตนฉบับโปรแกรม (Source Program) หรือ รหสั ตนฉบบั (Source Code) ใหเปนภาษาเคร่อื ง (Executable Program) ท่ีสามารถทํางาน ไดท ันที การแปลภาษาสามารถแบง ตามลักษณะการแปลออกเปน 2 ประเภท คือ อินเทอรพ รเี ตอร (Interpreter) และคอมไพเลอร (Compiler) อินเทอรพ รเี ตอร (Interpreter) จะทําการแปลคําส่ังท่เี ขยี นดวยภาษาชั้นสูงใหเปนภาษา เครอื่ งทลี ะคาํ สงั่ และทาํ งานตามคาํ ส่งั นนั้ ทันที กอ นท่ีจะแปลคําสงั่ ตอ ไปจนจบโปรแกรม คอมไพเลอร (Compiler) ทําหนา ที่ แปลตนฉบบั ของโปรแกรม (Source Program) ภาษา ระดบั สงู ทั้งโปรแกรมใหเปนรหสั ออ็ บเจกต (Object Code) ซึ่งประกอบดวยภาษาเครื่องท่ีมีรหัส สั่งงาน ออปเจกตโ ปรแกรมน้ยี ังไมสามารถทํางานได จะตองผานการลิงค (Link) หรือรวมเขา กบั ไลบราร่ี (Library) ของระบบกอนจึงจะเปนโปรแกรมที่สามารถทํางานไดหรือเปนภาษา เคร่ืองทเี รยี กวา “เอก ซิคิ๊วโปรแกรม (Executable Program)” การพัฒนาโปรแกรมคอมพิวเตอรมี 5 ข้ันตอน คือ การกําหนดและวิเคราะหปญหา ของงาน มกี ารออกแบบโปรแกรมโดยเขยี นผังงานและรหัสจําลองหรือซูโดโคด นําการออกแบบมา

ระบบการเขยี นโปรแกรม 39 เขยี นโปรแกรมตามการออกแบบ นําโปรแกรมทดลองใชเ พือ่ ทดสอบและแกไขโปรแกรม และมี การจัดทําเอกสารและบํารงุ รักษาโปรแกรม อัลกอรทิ ึม (Algorithm) หมายถงึ วิธีการหรือกระบวนการทาํ งานใดงานหน่ึงท่ีสามารถ แบงขนั้ ตอนออกเปนยอ ย ๆ ที่แนนอน ซ่ึงเมื่อทราบขั้นตอนการทาํ งานท่ีแนนนอนแลว ก็จะนาํ อลั กอรทิ มึ ที่ไดน ้ันมาวาดเปนผังงานจากนนั้ จึงแปลงเรื่องราวในผังงานเปนภาษาระดับสูงเขียน เปนโปรแกรมส่งั งานใหเครือ่ งคอมพวิ เตอรเขา ใจ และปฏบิ ัติการทาํ งานตามทอี่ อกคําส่ัง ปญหาประเภทท่ีมีลาํ ดับข้ันในการแกปญหา เมื่อแกปญหาตามขั้นตอนก็ไดคําตอบ ตามตองการ ขัน้ ตอนการวเิ คราะหป ญหาเชงิ อลั กอริทึม มี 3 ข้ันตอน คือ ข้นั วิเคราะหผลลัพธ ขน้ั วเิ คราะหข อ มูล ข้ันวิเคราะหก ระบวนการแกป ญ หาหรอื ข้ันการประมวลผล ผงั งาน (Flowchart) คอื แผนภาพซงึ่ แสดงลาํ ดบั ขัน้ ตอนของการทาํ งาน โดยแตล ะข้ันตอน จะถกู แสดงโดยใชส ญั ลักษณซ่งึ มคี วามหมายบงบอกวา ข้ันตอนน้ัน ๆ มีลักษณะการทํางานที่ ทําใหงายตอความเขาใจ วาในการทํางานน้ันมีขั้นตอนอะไรบาง และมีลําดับอยางไร ผังงาน ทั่วไปจะประกอบดวยโครงสรางพ้ืนฐาน 3 รูปแบบ คือโครงสรางแบบเปนลําดับ (Sequence structure) โครงสรางแบบมีตัวเลือก (Selection structure) และโครงสรางแบบทําซํ้า (Iteration structure) การเขียนแนวคดิ การทํางานของการสรางโปรแกรมจะประกอบไปดวย วิเคราะหโจทย การประมวลผล ผังงาน และการเขียนรหัสจําลอง

40 การเขยี นโปรแกรมเชิงโครงสรา งดว ยภาษาซี แบบทดสอบทา ยบท ตอนท่ี 1 จงใชเ ครอ่ื งหมาย X ทับตัวเลอื กท่ถี กู ตอ งที่สดุ 1. ขอ ใดเปน ความหมายของโปรแกรมระดบั สูง ก. ภาษาที่มนุษยใชส อ่ื สารกนั เชน ภาษาองั กฤษ ภาษาไทย เปน ตน ข. ภาษาท่ีประกอบดวยตัวเลขฐานสอง ซึง่ คอมพิวเตอรใ ชป ระมวลผลไดท นั ที ค. ภาษาที่สรา งขึ้นเพื่ออาํ นวยความสะดวกในการเขยี นโปรแกรมคําสง่ั จากคาํ ศพั ท ภาษาอังกฤษ ง. ภาษาท่ีมีความใกลเคยี งกับภาษาเคร่ืองหรอื ทเ่ี รยี กวา ภาษาองิ เครอ่ื ง (machine- oriented language) 2. อนิ เทอรพ รีเตอรเ ปน ตวั แปลภาษาคอมพิวเตอรใด ก. ภาษาปาสคาล ข. ภาษาฟอรแ ทน ค. ภาษาซี ง. ภาษาเบสิค 3. โปรแกรมแอสเซมเบอร คอื อะไร ก. ตัวแปลภาษาซี ข. ตวั แปลภาษาเบสคิ ค. ตวั แปลภาษาแอสเซมบลี ง. ตัวแปลภาษาฟอรแทน 4. การแปลภาษาคอมพิวเตอรเปน รหสั ภาษาเคร่อื งทแ่ี ปลทลี ะกลมุ คําสง่ั เรียกวาอะไร ก. ไทเมอร ข. คอมไพเลอร ค. อินเทอรพรีเตอร ง. แอสเซมเบอร 5. ขอใดใชตัวแปลภาษาแบบอนิ เทอรพรเี ตอร ก. ASP ข. Perl ค. PHP ง. ถกู ทกุ ขอ 6. คําวา “อลั กอริทมึ ” หมายถึงขอใด ก. ระเบียบวิธกี ารเพอ่ื สกู ารปฏิบัติ ข. กฎเกณฑแนวทางความเขาใจการทาํ งานรวมกนั ค. วธิ ีคิดแสดงแกป ญ หาการทํางาน ง. ถกู ทกุ ขอ 7. ขอ ใดกลาวถงึ ผงั งานไดถ กู ตอ งที่สดุ ก. ใชใ นการชวยเขียนอธิบายข้นั ตอนการประมวลผลไดด กี วาขอความ ข. การอธบิ ายการทาํ งานดว ย Flowchart ไมสามารถอธิบายการทาํ งานไดช ดั เจน ค. เปน การอธิบายขน้ั ตอนการประมวลผลดวยสัญลกั ษณต า ง ๆ ประกอบกัน ง. สามารถเลือกใชส ญั ลักษณไ ดต ามสะดวกและความพอใจ

ระบบการเขยี นโปรแกรม 41 8. ขอใดกลาวไมถกู ตองเกย่ี วกับสัญลักษณท ี่ใชเ ปน จุดเริ่มตนของผังงาน ก. มีทศิ ทางเขา และออกอยา งละ 1 ทิศทาง ข. ในแตละผงั งานมไี ดเ พียง 1 สัญลกั ษณ ค. เปนสัญลกั ษณทใี่ ชบ อกจดุ เริม่ ตน ของผังงาน ง. ทกุ ผังงานจะตองประกอบดว ยจดุ เรมิ่ ตน 9. ขอใดกลาวถกู ตองท่สี ดุ เกีย่ วกับการทาํ งานของโครงสรางผังงานแบบการเลอื กทํา หลังจาก การตรวจสอบเงือ่ นไขเสรจ็ เรยี บรอยแลว ก. จะทําขัน้ ตอนการทํางานสองทศิ ทางพรอ มกัน ข. จะทาํ ขน้ั ตอนการทํางานทง้ั สองทศิ ทาง แตจ ะทาํ ครั้งละหนงึ่ ทศิ ทาง ไมพ รอมกนั ค. จะเลอื กทาํ ขนั้ ตอนการทาํ งานเพยี งทศิ ทางใดทิศทางหน่งึ ตามเงื่อนไขเทา นนั้ ง. ผดิ ทกุ ขอ 10. คุณลกั ษณะของโปรแกรมทด่ี ีควรเปน อยางไร ก. มคี วามเขา กนั ได ข. มคี วามสามารถนํากลับมาใชใ หม ค. ตองอานงา ย ง. ถูกทกุ ขอ 11. สญั ลกั ษณของผงั งานในขอ ใด ใชสําหรับการแสดงผลทางจอภาพ ก. ข. ค. ค. ง. 12. สญั ลกั ษณของผงั งานในขอ ใด ใชในการรบั คาเขาและแสดงผลขอ มลู ออกโดยไมร ะบุอปุ กรณ ก. ก. ข. ค. . ง. 13. ในโครงสรางผังงาน การมีตัวเลอื ก การทํางานในขอใดจะตอ งทาํ เปนอันดับแรก ก. การคาํ นวณ ข. การตดั สินใจ ค. การรับคา ขอมลู ง. บอกจดุ ส้ินสุดของผงั งาน 14. เมอื่ ตอ งการพัฒนาสรา งโปรแกรมคอมพวิ เตอร สงิ่ แรกทตี่ องทําคอื อะไร ก. เลอื กภาษาท่ตี อ งใชเขยี น ข. วเิ คราะหปญหา

42 การเขียนโปรแกรมเชิงโครงสรา งดว ยภาษาซี ค. เขยี นรหสั จาํ ลอง ง. เขียนโปรแกรม จากโจทยท ีก่ าํ หนดใหตอไปนี้ ใชตอบคาํ ถามขอ 15 ถงึ ขอ 19 จงแกปญ หาโจทย เพื่อคาํ นวณและแสดงผลคาพ้ืนที่สี่เหลี่ยมผืนผาบนจอภาพ โดยรับ ขนาดความกวา งและตามยาวของส่เี หลีย่ มทางแปน พิมพ 15. จากการวิเคราะหร ะบบงาน สง่ิ ทต่ี องการ คอื ขอใด ก. ขนาดพ้นื ทส่ี เ่ี หลี่ยมผืนผา ข. ใหร บั ขนาดความกวา งและความยาวของพ้ืนทสี่ ี่เหลยี่ มทางแปนพิมพ ค. สูตรคํานวณขนาดพื้นที่สีเ่ หลยี่ ม ง. สงิ่ ท่ีตองการคือ ขอ ก. และขอ ข. 16. จากการวิเคราะหระบบงาน รปู แบบผลลพั ธคือขอ ใด ก. แสดงขนาดพนื้ ท่ีส่เี หล่ียมผนื ผา ข. แสดงขนาดความกวางและความยาวของพน้ื ที่ส่ีเหลย่ี มทางแปนพมิ พ ค. แสดงสูตรคาํ นวณขนาดพน้ื ทสี่ ีเ่ หลี่ยม ง. ถูกทกุ ขอ 17. จากการวเิ คราะหร ะบบงาน ขอ มูลนําเขา คือขอใด ก. ขนาดพนื้ ทส่ี ี่เหล่ียมผืนผา ข. ขนาดความกวา งและความยาวของพ้นื ทสี่ เ่ี หลย่ี มทางแปนพิมพ ค. สตู รคํานวณขนาดพน้ื ท่ีสี่เหล่ยี ม ง. ขอ มลู นาํ เขา คอื ขอ ข. และขอ ค. 18. จากการวิเคราะหโ จทยร ะบบงาน ตวั แปรทใี่ ชม ีทง้ั หมดกตี่ วั แปร ก. 2 ตัวแปร ข. 3 ตัวแปร ค. 4 ตวั แปร ง. 5 ตัวแปร 19. จากการวิเคราะหร ะบบงาน อลั กอรทิ มึ ปญหาโจทยน มี้ ีจาํ นวนกีข่ อ ก. 5 ขอ ข. 6 ขอ ค. 7 ขอ ง. 8 ขอ

ระบบการเขยี นโปรแกรม 43 Start Start c=a a=b i=1 Read b=c Read a,b a,b a > b No i=i+5 x=a+b+i Yes Print x Print a , b End End รูปที่ 1 รปู ที่ 2 จากผังงานรปู ท่ี 1 ใชตอบคําถามขอที่ 20 ถงึ ขอท่ี 21 20. ตัวแปร x จะมีคา เทาใด หากตัวแปร a รบั คา 5 และตวั แปร b รบั คา 7 ก. 10 ข. 12 ค. 13 ง. 18 21. ตัวแปร x จะมคี าเทาใด หากตวั แปร a รบั คา 2 และตวั แปร b รบั คา 4 ก. 7 ข. 11 ค. 12 ง. 18 จากผังงานรปู ที่ 2 ใชต อบคาํ ถามขอที่ 22 ถึงขอท่ี 25 22. หากรบั คาใหต วั แปร a คอื 10 และตวั แปร b คือ 7 หลงั จากที่ผงั งานน้ีทาํ งานเสรจ็ เรยี บรอยแลว คาของตวั แปร a และ b จะแสดงผลเทากบั เทาใด ก. 3 , 17 ข. 7 , 10 ค. 10 , 7 ง. 17 , 3 23. หากรบั คา ใหตวั แปร a คอื 7 และตัวแปร b คือ 10 หลงั จากทผี่ ังงานนที้ าํ งานเสรจ็ เรียบรอ ยแลว คาของตัวแปร a และ b จะแสดงผลเทา กบั เทาใด ก. 3 , 17 ข. 7 , 10 ค. 10 , 7 ง. 17 , 3 24. เม่ือตรวจสอบเงื่อนไขเรยี บรอ ยแลว ขอมลู เขา a และ b จะมีลักษณะแบบใด ทศิ ทางของ ผงั งานจึงจะไปในทศิ ทางท่ีมีตวั อกั ษร No กาํ กบั อยู ก. a นอ ยกวา หรือเทา กับ b ข. a นอยกวา b ค. a มากกวาหรอื เทา กบั b ง. a มากกวา b

44 การเขียนโปรแกรมเชิงโครงสรางดว ยภาษาซี 25. การตรวจสอบเงอ่ื นไขของ a และ b ของผังงานทกี่ าํ หนดให จดั เปนโครงสรางการทาํ งาน แบบใด ก. โครงสรางผังงานการทําซา้ํ ข. โครงสรางการทาํ งานแบบมเี งอ่ื นไข ค. โครงสรางผงั งานแบบตอ เน่ือง ง. ไมส ามารถจาํ แนกลักษณะของโครงสรางผังงานได ตอนท่ี 2 จงตอบคาํ ถามที่กาํ หนดใหตอ ไปน้ี ใหถกู ตองสมบรู ณ 1. จงอธิบายความหมายของผังงานและประโยชนข องผงั งาน 2. ใหน กั ศกึ ษาเขยี นและอธิบายขัน้ ตอนการสรางและพฒั นาโปรแกรมท้งั หมด 3. จงเขยี นผังงานโดยใชเครอ่ื งหมายสญั ลกั ษณใหถกู ตอ งแสดงรายละเอยี ดเกีย่ วกับขนั้ ตอน ระบบการวดั ประเมนิ ผลการเรยี นของนกั ศกึ ษา โดยมกี ารแสดงผลการเรยี นเกรดตง้ั แต 0 - 4 มรี ายละเอียดดงั น้ี คะแนน 0 - 49 ไดผ ลการเรียนเกรด 0 คะแนน 50 - 54 ไดผลการเรียนเกรด 1 คะแนน 55 - 59 ไดผลการเรยี นเกรด 1.5 คะแนน 60 - 64 ไดผลการเรยี นเกรด 2 คะแนน 65 - 69 ไดผลการเรยี นเกรด 2.5 คะแนน 70 - 74 ไดผลการเรยี นเกรด 3 คะแนน 75 - 79 ไดผ ลการเรียนเกรด 3.5 คะแนน 80 - 100 ไดผลการเรยี นเกรด 4 4. จงแกปญ หาโจทยรบั เงนิ คาโทรศพั ทจ ํานวน 3 เดือน โดยใหร ับขอมูลทางแปนพิมพ แลว หาคา ผลรวม และคาเฉลีย่ ของเงินทจี่ ายคาโทรศพั ท 3 เดอื นกาํ หนดใหผ ลรวมและคาเฉล่ยี ของการจายคา โทรศพั ท แสดงออกทางจอภาพดังนี้ Input : Input mounts 1 => 200 Input mounts 2 => 300 Input mounts 3 => 350 Output : Result Sum pay money => ???? Result value Average => ???


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook