บทที่ 1 หลักการเขยี นโปรแกรม ขัน้ ตอนทางานของคอมพวิ เตอร์ หลกั การทางานของคอมพวิ เตอร์ คอมพิวเตอรเ์ ป็นอปุ กรณท์ ่มี นษุ ยป์ ระดิษฐม์ าเพอื่ อานวยความสะดวกในดา้ นต่างๆ ไม่วา่ จะเป็นดา้ นการคานวนการเก็บขอ้ มลู การตดั สนิ ใจ และอนื่ ๆในอดตี คอมพวิ เตอร์ ถกู นามาใชใ้ นงานดา้ นวิทยาศาสตรเ์ ป็นส่วนใหญ่ แต่ปัจจบุ นั คอมพิวเตอรถ์ กู พฒั นา ขดี ความสามารสงู ขนึ้ มีการนาไปประยกุ ตใ์ ชใ้ นหน่วยงานตา่ งๆมากมาย เช่น ราชการ ธุรกิจ การแพทย์ การทหาร เป็นตน้ ซงึ่ การเรียนรูข้ นั้ ตอนการทางานของคอมพิวเตอร์ ทาใหเ้ ราสามารถเลือกซือ้ คอมพิวเตอรไ์ ดต้ รงตามความตอ้ งการ โดยหลกั การทางาน ของคอมพวิ เตอรจ์ ะเป็นตามท่ีโปรแกรมกาหนดไว้ โดยตวั เครอ่ื ง หรอื ทเี่ รียกว่า ฮารด์ แวร(์ Hardware) จะมสี ว่ นประกอบทีส่ าคญั พนื้ ฐาน 5 หน่วย คือ 1. หน่วยรบั ขอ้ มลู (input unit) 2. หนว่ ยประมวลผลกลาง (central processing unit) 3. หนว่ ยความจาหลกั (main memory unit) 4. หนว่ ยความจารอง (secondary storage) 5. หนว่ ยแสดงผล (output unit)
1. หน่วยรับข้อมลู (input unit) เป็นหนว่ ยทที่ าหนา้ ท่ีรบั ขอ้ มลู จากผใู้ ชเ้ ขา้ สคู่ อมพวิ เตอร์ เชน่ ตวั อกั ษร ตัวเลข สญั ลกั ษณ์ เป็นตน้ โดยจะแปลงขอ้ มลู ใหอ้ ย่ใู นรูปของสญั ญาณไฟฟ้าทีคอมพิวเตอร์ สามารถเขา้ ใจได้ โดยนามาจดั เก็บไวท้ ี่หนว่ ยความจาหลกั และใชป้ ระมวลผลได้ อปุ กรณห์ น่วยรบั ขอ้ มลู ที่นยิ มใชใ้ นปัจจบุ นั 2. หน่วยประมวลผลกลาง (central processing unit)
ซีพยี ู (CPU) หรอื Central Processing Unit หมายถงึ “หน่วยประมวลผลกลาง” หรือ เรียกอีกชื่อหนึง่ ว่า “ไมโครโพรเซสเซอร์ (Microprocessor)” เป็นอปุ กรณ์ อเิ ล็คทรอนคิ สท์ ี่ใชใ้ นการประมวลผลขอ้ มลู ตามชดุ คาส่งั ท่มี าจากซอฟตแ์ วร์ ตวั ของ ซพี ยี นู น้ั มีลกั ษณะเป็นชิป (Chip) ตวั เล็กๆ ซึ่งภายในบรรจทุ รานซิสเตอรจ์ านวนหลาย ลา้ นตวั ต่อเขา้ เป็นวงจรอิเล็คทรอนิคสจ์ านวนมหาศาล มีหนา้ ทคี่ านวณตวั เลขจาก ชดุ คาส่งั ท่ผี ใู้ ชป้ อ้ นโปรแกรมเขา้ ไป โดยซีพียจู ะทาการอา่ นชดุ คาส่งั มาแปล ความหมาย และทาการคานวณ เมื่อไดผ้ ลลพั ธก์ ็จะส่งผลลพั ธอ์ อกไปแสดงผลทาง หนา้ จอ ซพี ยี ู จึงเปรยี บไดก้ บั “สมอง”ของคอมพิวเตอร์ ทาหนา้ ทค่ี วบคมุ การ ปฏบิ ตั ิงานหลกั ของเครอื่ ง ทาหนา้ ท่ีในการคานวณ ประมวลผล และควบคมุ อปุ กรณ์ อ่นื ๆ ในระบบ ประกอบดว้ ย หนว่ ยคณติ ศาสตรแ์ ละตรรกะหรือหนว่ ยคานวณทา หนา้ ท่ีประมวลผลขอ้ มลู ทางคณติ ศาสตรแ์ ละทางตรรกะ และหน่วยควบคมุ ทาหนา้ ที่ ควบคมุ การทางานของอปุ กรณต์ า่ งๆ ในระบบทงั้ หมด ใหท้ างานอยา่ งถกู ตอ้ ง อกี ทงั้ ยงั ควบคมุ การทางานของอปุ กรณอ์ นื่ ๆ ในระบบอกี ดว้ ย 3. หน่วยความจาหลกั (main memory unit) หน่วยความจาหลกั เป็นอแุ กรรท์ ใี่ ชใ้ นการเกบ็ ขอ้ มลู และคาส่งั ทีอ่ ยรู่ ะหวา่ งการ ประมวลผลของคอมพวิ เตอรห์ รือในขณะท่ีเปิดเคร่ืองคอมพิวเตอร์ บางครงั้ อาจ เรียกว่าหน่วยเก็บขอ้ มลู หลกั (primary storage) หน่วยความจาจะทางานควบคไู่ ป
กบั CPU และช่วยใหก้ ารทางานของ CPU มปี ระสิทธิภาพมากยิง่ ขนึ้ โดยวงรอบการ ทางานของซพี ยี นู น้ั เร็วมาก หากไม่มีทีเ่ กบ็ ขอ้ มูลหรอื ที่พกั ขอ้ มลู และความเรว็ ในการ เขา้ ถงึ ขอ้ มลู ที่ไมม่ ีขนาดเพียงพอจะทาใหก้ ารประมวลผลชา้ ลง หน่วยความจาหลกั แบง่ ออกเป็น 2 ประเภท คอื 1. หน่วยความจาแรม (RAM: Random Access Memory) แรม เป็นหนว่ ยความจาหลกั ทจ่ี าเป็น สามารถเกบ็ ขอ้ มลู ไดเ้ ฉพาะเวลาท่ีมี กระแสไฟฟา้ หล่อเลยี้ งเทา่ นน้ั หากไมม่ ีกระแสไฟฟ้ามาเลยี้ งขอ้ มลู ที่เกบ็ ไวจ้ ะหายไป ทนั ที หน่วยความจาแรม ทาหนา้ ทเ่ี ก็บชดุ คาส่งั และขอ้ มลู ที่ระบบคอมพวิ เตอรท์ างาน อยู่ แรมหลายชนดิ ขอ้ มลู จะหายไปหากปิดเครอ่ื ง แต่ปัจจบุ นั มกั เก็บขอ้ มลู บิตในรูป ของประจไุ ฟฟ้าในตวั เกบ็ ประจุ
2. หน่วยความจารอม (ROM: Read-only Memory) ROM ย่อมาจาก Read-only Memory คือหน่วยความจาถาวร ทเ่ี ราสามารถเขียน หรอื ลบโปรแกรมต่างๆได้ แตก่ ็มี ROM บางชนิดไม่สามารถทจ่ี ะลบขอ้ มลู ในรอมได้ เหมอื นกนั ซึ่งROM เป็นหน่วยความจาทไี่ มต่ อ้ งการไฟเลยี้ ง แมไ้ ม่มไี ฟเลยี้ งขอ้ มลู ทอี่ ยู่ ในรอมกจ็ ะไม่หายหรอื ถกู ลบออกจากหน่วยความจาถาวร 4. หน่วยความจารอง (secondary storage)
หนว่ ยความจารอง เป็นหนว่ ยความจาทีใ่ ชเ้ กบ็ ขอ้ มลู และโปรแกรมทตี่ อ้ งการใชง้ าน ในคราวต่อไปได้ ซ่ึงสามารถบรรจขุ อ้ มลู และโปรแกรมไดเ้ ป็นจานวนมาก เป็นหนว่ ย เกบ็ ขอ้ มลู ถาวรทีผ่ ใู้ ชส้ ามารถยา้ ยขอ้ มลู และคาส่งั ท่อี ย่ใู นหน่วยความจาแรม ขณะท่ี เคร่อื งคอมพวิ เตอรท์ างานมาจดั เกบ็ ไวไ้ ดด้ ว้ ยคาส่งั บนั ทึกของโปรแกรมประยกุ ต์ ทา ใหผ้ ใู้ ชส้ ามารถเรยี กขอ้ มลู และคาส่งั มาใชใ้ นภายหลงั ซ่งึ หนว่ ยความจารองมีความจุ ขอ้ มลู มากกวา่ หน่วยความจาหลกั และมีราคาถกู กว่า แตเ่ ขา้ ถงึ ขอ้ มลู ไดช้ า้ กวา่ หน่วยความจาแรม 5. หน่วยแสดงผล (output unit) เป็นหนว่ ยท่ีทาหนา้ ทแ่ี สดงผลท่ีไดจ้ ากการประมวลผลขอ้ มลู ที่เตรียมไวใ้ น หน่วยความจาหลกั เพือ่ ส่งขอ้ มลู หรือสื่อสารกบั ผรู้ บั โดยมีฮารด์ แวรท์ าหนา้ ที่เป็นส่วน
แสดงผลหรอื ส่งขอ้ มลู ทไี่ ดจ้ ากการประมวลผลจากซีพยี มู ายงั ผรู้ บั ทงั้ ในรูปแบบภาพ เสียง และส่งิ พมิ พ์ ฮารด์ แวรท์ ีทาหนา้ ที่ในหนว่ ยนีม้ ีหลายประเภทดว้ ยกนั ตวั อย่างเช่น จอภาพหรอื มอนิเตอร์ ลาโพง หฟู ัง เครอื่ งพมิ พ์ และเครือ่ งแอลซีดีโพรเจคเตอร์ แตล่ ะ ประเภทจะมลี กั ษณะและการนาเสนอขอ้ มลู ทแ่ี ตกตา่ งกนั ภาษาของคอมพวิ เตอร์ (Programming Languages) ภาษาคอมพิวเตอร์ มนษุ ย์ ใชภ้ าษาในการสอ่ื สารมาตงั้ แต่สมยั โบราณ การใชภ้ าษาเป็นเรือ่ งที่มนษุ ย์ พยายามถ่ายทอดความคิดและความรูส้ กึ ต่าง ๆ เพ่ือการโตต้ อบและสื่อความหมาย ภาษาท่ีมนษุ ยใ์ ชต้ ดิ ตอ่ สอ่ื สารในชวี ติ ประจาวนั เชน่ ภาษาไทย ภาษาองั กฤษ หรอื ภาษาจนี ตา่ งเรยี กวา่ “ภาษาธรรมชาติ” (Natural Language) เพราะมีการศึกษา ได้ ยิน ไดฟ้ ัง กนั มาตงั้ แต่เกดิ การใชง้ านคอมพิวเตอร์ ซง่ึ เป็นเครือ่ งมือทางอิเล็กทรอนกิ ส์ ใหท้ างานตามท่ตี อ้ งการ จาเป็นตอ้ งมกี ารกาหนดภาษา สาหรบั ใชต้ ิดตอ่ ส่งั งานกบั คอมพิวเตอร์ ภาษาคอมพวิ เตอรจ์ ะเป็น ”ภาษาประดษิ ฐ”์ (Artificial Language) ที่ มนษุ ยค์ ิดสรา้ งมาเอง เป็นภาษาที่มีจดุ มุ่งหมายเฉพาะ มีกฎเกณฑท์ ี่ตายตวั และจากดั คอื อย่ใู นกรอบใหใ้ ชค้ าและไวยากรณท์ กี่ าหนดและมกี ารตคี วามหมายที่ชดั เจน จึงจดั ภาษาคอมพิวเตอรเ์ ป็นภาษาทีม่ รี ูปแบบเป็นทางการ (Formal Language) ต่างกบั ภาษาธรรมชาติท่ีมขี อบเขตกวา้ งมาก ไมม่ ีรูปแบบตายตวั ทีแ่ นน่ อน กฎเกณฑข์ อง
ภาษาจะขนึ้ กบั หลกั ไวยากรณแ์ ละการยอมรบั ของกล่มุ ผใู้ ชน้ น้ั ๆ ภาษา คอมพวิ เตอรอ์ าจแบ่งไดเ้ ป็น 3 ระดบั คอื ภาษาเคร่อื ง (Machine Language) ภาษาระดบั ตา่ (Low Level Language) และภาษาระดบั สงู (High Level Language) 1. ภาษาเครื่อง (Machine Language) การ เขยี นโปรแกรมเพ่ือส่งั ใหค้ อมพิวเตอรท์ างานในยคุ แรก ๆ จะตอ้ งเขียนดว้ ยภาษา ซึ่งเป็นท่ยี อมรบั ของเคร่ืองคอมพวิ เตอรท์ ่ีเรียกวา่ “ภาษาเครื่อง” ภาษานปี้ ระกอบดว้ ย ตวั เลขลว้ น ทาใหเ้ ครื่องคอมพิวเตอรส์ ามารถทางานไดท้ นั ที ผทู้ จ่ี ะเขยี นโปรแกรม ภาษาเคร่ืองได้ ตอ้ งสามารถจารหสั แทนคาส่งั ต่าง ๆ ได้ และในการคานวณตอ้ ง สามารถจาไดว้ ่าจานวนตา่ ง ๆ ท่ใี ชใ้ นการคานวณนนั้ ถกู เก็บไวท้ ต่ี าแหน่งใด ดงั นนั้ โอกาสทจ่ี ะเกดิ ความผิดพลาดในการเขยี นโปรแกรมจึงมีมาก นอกจากนีเ้ ครอื่ ง คอมพิวเตอรแ์ ต่ละระบบมีภาษาเครอื่ งท่แี ตกตา่ งกนั ออก ทาใหเ้ กดิ ความไมส่ ะดวก เม่อื มีการเปลีย่ นเครื่องคอมพิวเตอรเ์ พราะจะตอ้ งเขียน โปรแกรมใหมท่ งั้ หมด 2. ภาษาระดับตา่ (Low Level Language) เนื่อง จากภาษาเครือ่ งเป็นภาษาทม่ี ีความยงุ่ ยากในการเขียนดงั ไดก้ ลา่ วมาแลว้ จงึ ไม่ มีผนู้ ยิ มและมีการใชน้ อ้ ย ดงั นนั้ ไดม้ ีการพฒั นาภาษาคอมพิวเตอรข์ นึ้ อีกระดบั หน่งึ โดยการใชต้ วั อกั ษรภาษาองั กฤษเป็นรหสั แทนการทางาน การใชแ้ ละการตงั้ ช่อื ตวั แปร แทนตาแหนง่ ท่ีใชเ้ กบ็ จานวนตา่ ง ๆ ซ่งึ เป็นคา่ ของตวั แปรนน้ั ๆ การใชส้ ญั ลกั ษณช์ ว่ ย ใหก้ ารเขียนโปรแกรมนีเ้ รียกวา่ “ภาษาระดบั ต่า”ภาษาระดับต่าเป็นภาษาทม่ี ี ความหมายใกลเ้ คยี งกบั ภาษาเครือ่ ง มากบางครง้ั จึงเรียกภาษานวี้ ่า “ภาษาอิง เคร่อื ง” (Machine – Oriented Language) ตัวอย่างของภาษาระดบั ต่า ไดแ้ ก่ ภาษาแอสเซมบลี เป็นภาษาที่ใชค้ าในอกั ษรภาษาองั กฤษเป็นคาส่งั ใหเ้ ครอ่ื งทางาน
เชน่ ADD หมายถึง บวก SUB หมายถึง ลบ เป็นตน้ การใชค้ าเหล่านชี้ ว่ ยใหก้ ารเขียน โปรแกรมง่ายขนึ้ กว่าการใชภ้ าษาเคร่อื งซ่งึ เป็นตวั เลขลว้ น ดงั ตารางแสดงตวั อย่าง ของภาษาระดบั ตา่ และภาษาเครอ่ื งท่สี ่งั ใหม้ กี ารบวกจานวน ท่เี กบ็ อย่ใู น หน่วยความจา ตารางที่ 5.1 แสดงความสมั พนั ธข์ องคาส่งั ในภาษาระดบั ตา่ และภาษาเครอ่ื ง ภาษาระดบั ต่า ภาษาเครื่อง รหสั เลขฐานสบิ หก MOV AL,05 10110000 00000101 B0 05 MOV BL,08 10110011 00001000 B3 08 ADD AL,BL 00000000 11011000 00 D8 MOV CL,AL 10001000 11000001 88 C1 จาก ตารางบรรทดั แรก 10110000 00000101 เป็นคาส่งั ใหน้ าจานวน 5 (หรอื เขยี นใน รูปของเลขฐานสองเป็น 00000101) ไปเกบ็ ในรจี ิสเตอรช์ ื่อ AL โดยสว่ นแรก 10110000 คือรหสั คาส่งั MOV ซึ่งเป็นการเคล่ือนยา้ ยขอ้ มลู จานวนมาเก็บไวใ้ น รจี สิ เตอร์ AL บรรทดั ท่ี สอง 10110011 00001000 เป็นคาส่งั ใหน้ าจานวน 8 (หรอื เขยี นในรูปของ เลขฐานสองเป็น 00001000) ไปเกบ็ ในรจี ิสเตอรช์ ือ่ BL โดยสว่ นแรก 10110011 คอื รหสั คาส่งั MOV ซึง่ เป็นการเคลือ่ นยา้ ยขอ้ มลู จานวนมาเกบ็ ไวใ้ นรจี ิสเตอร์ BL บรรทดั ท่ีสาม เป็นคาส่งั การบวกระหว่างรีจสิ เตอร์ AL กบั BL หรือนา 5 บวก 8 ผลลพั ธเ์ ก็บในรีจิสเตอร์ AL บรรทดั ที่ส่ี เป็นการนาผลลพั ธจ์ ากรจี ิสเตอรช์ อื่ AL ไปเก็บไวใ้ นรีจิสเตอรช์ ื่อ CL การ ใชโ้ ปรแกรมทเี่ ขยี นดว้ ยภาษาแอสเซมบลีนนั้ เคร่ืองคอมพวิ เตอรไ์ ม่สามารถ ทางานไดท้ นั ที จาเป็นตอ้ งมกี ารแปลโปรแกรมในการแปลที่มีช่ือว่า “แอสเซมเบลอร”์ (Assembler) ซ่ึงแตกตา่ งไปตามเครือ่ งคอมพิวเตอรแ์ ตล่ ะชนดิ ดงั นั้นแอสเซมเบลอร์
ของเครอ่ื งชนิดหนงึ่ จะไมส่ ามารถใชแ้ ปลโปรแกรมภาษาแอสเซ มบลีของเครอ่ื งชนดิ อนื่ ๆ ไดภ้ าษาแอสเซมบลีนยี้ งั คงใชย้ าก เพราะผเู้ ขียนโปรแกรมจะตอ้ งเขา้ ใจในการ ทางานของเครือ่ งคอมพวิ เตอรอ์ ยา่ ง ละเอียด ตอ้ งรูว้ ่าจานวนทีจ่ ะนามาคานวณนน้ั อยู่ ณ ตาแหนง่ ใดในหน่วยความจาในทานองเดยี วกบั การเขียนโปรแกรมเป็นภาษาเครอ่ื ง ภาษาแอสเซมบลจี ึงมีผใู้ ชน้ อ้ ย และมกั จะใชใ้ นกรณีท่ีตอ้ งการควบคมุ การทางาน ภายในของตวั เครอื่ งคอมพิวเตอร์ 3.ภาษาระดับสงู (High Level Language) ภาษา ระดบั สงู เป็นภาษาทสี่ รา้ งขนึ้ เพือ่ ช่วยอานวยความสะดวกในการเขียนโปรแกรม กล่าวคือลกั ษณะของคาส่งั จะประกอบดว้ ยคาต่าง ๆ ในภาษาองั กฤษ ซึง่ ผอู้ า่ น สามารถเขา้ ใจความหมายไดท้ นั ที ผเู้ ขียนโปรแกรมจึงเขยี นโปรแกรมดว้ ยภาษา ระดบั สงู ไดง้ า่ ยกวา่ เขยี นดว้ ยภาษาแอ สเซมบลีหรอื ภาษาเครอ่ื ง ภาษาระดบั สงู มี มากมายหลายภาษา อาทิเชน่ ภาษาฟอรแ์ ทรน (FORTRAN) ภาษาโคบอล (COBOL) ภาษาปาสคาล (Pascal) ภาษาเบสกิ (BASIC) ภาษาวิชวลเบสิก (Visual Basic) ภาษาซี (C) และภาษาจาวา (Java) เป็นตน้ โปรแกรมท่เี ขยี นดว้ ยภาษา ระดบั สงู แต่ละภาษาจะตอ้ งมีโปรแกรมท่ที าหนา้ ทแี่ ปล ภาษาระดบั สงู ใหเ้ ป็น ภาษาเคร่ือง เชน่ โปรแกรมแปลภาษาฟอรแ์ ทรนเป็นภาษาเคร่ือง โปรแกรมแปลภาษา ปาสคาลเป็นภาษาเครอ่ื ง คาส่งั หนง่ึ คาส่งั ในภาษาระดบั สงู จะถกู แปลเป็น ภาษาเคร่ืองหลายคาส่งั ภาษาระดบั สงู ทีจ่ ะกลา่ วถึงในที่นี้ ไดแ้ ก่ 1) ภาษาฟอรแ์ ทรน (Formula Translation : FORTRAN) จดั เป็นภาษาระดบั สงู ที่เก่าแก่ทส่ี ุด ไดร้ บั การคิดคน้ ขนึ้ เป็นครง้ั แรก ราว พ.ศ. 2497 โดยบริษทั ไอบเี อม็ เป็นภาษาทเี่ หมาะสาหรบั งานทตี่ อ้ งการการคานวณ เช่น งาน
ทางดา้ นวิทยาศาสตร์ วิศวกรรมศาสตร์ และงานวจิ ยั ตา่ ง ๆ เนื่องจากแนวคิดในการ เขียนโปรแกรมในระยะหลงั นเี้ ปลย่ี นมานยิ มการเขยี น โปรแกรมแบบโครงสรา้ งมาก ขนึ้ ลกั ษณะของคาส่งั ภาษาฟอรแ์ ทรนแบบเดิมไม่เออื้ อานวยท่จี ะใหเ้ ขยี นได้ จึงมกี าร ปรบั ปรุงโครงสรา้ งของภาษาฟอรแ์ ทรนใหส้ ามารถเขยี นโปรแกรมแบบโครง สรา้ ง ขนึ้ มาไดใ้ นปี พ.ศ. 2509 เรียกวา่ FORTRAN 66 และในปี พ.ศ. 2520 สถาบนั มาตรฐานแห่งชาตขิ องสหรฐั อเมริกา (American National Standard Institute หรือ ANSI) ไดป้ รบั ปรุง FORTRAN 66 และยอมรบั ใหเ้ ป็นภาษาฟอรแ์ ทรนที่เป็นมาตรฐาน เรียกวา่ FORTRAN 77 ใชไ้ ดก้ บั เครือ่ งคอมพิวเตอรท์ ่มี ีตวั แปลภาษานี้ 2) ภาษาโคบอล (Common Business Oriented Language : COBOL) เป็น ภาษาทพี่ ฒั นาขนึ้ ในราว พ.ศ. 2502 ต่อมาไดร้ บั การปรบั ปรุงจากคณะกรรมการ ซงึ่ เป็นตวั แทนของหน่วยงานธรุ กจิ และ รฐั บาลของสหรฐั อเมรกิ า เป็นภาษาโคบอล มาตรฐานในปี พ.ศ. 2517 เป็นภาษาทเ่ี หมาะสมสาหรบั งานดา้ นธรุ กิจ เครอื่ ง คอมพวิ เตอรข์ นาดใหญส่ ว่ นมากมีโปรแกรมแปลภาษาโคบอล 3) ภาษาเบสกิ (Beginner’s All – purpose Symbolic Instruction Code : BASIC) เป็น ภาษาทไี่ ดร้ บั การคดิ ขนึ้ เป็นครงั้ แรกท่ีวิทยาลยั ดารท์ มธั (Dartmouth College) และเผยแพรเ่ ป็นทางการในปี พ.ศ. 2508ภาษาเบสกิ เป็นภาษาทส่ี รา้ งขนึ้ โดยมี จดุ ประสงคเ์ พ่อื ใชส้ อนเพือ่ ใชส้ อน เขียนโปรแกรมแทนภาษาคอมพวิ เตอรภ์ าษาอ่ืน เช่น ภาษาฟอรแ์ ทรน ซง่ึ มีขนาดใหญแ่ ละตอ้ งใชห้ น่วยความจาสงู ในการทางาน ซึ่งไม่ เหมาะกบั เครือ่ งคอมพิวเตอรใ์ นสมยั นน้ั ภาษาเบสิกเป็นภาษาทีม่ ีขนาดเลก็ เป็นตวั แปลภาษาชนดิ ท่ีเรียกว่าอนิ เทอรพ์ รีเตอร์ นอก จากนี้ ภาษาเบสิกเป็นภาษาที่ง่ายต่อการเขยี น ซึ่งผเู้ ขยี นจะสามารถนาไป ประยกุ ตก์ บั การแกป้ ัญหาตา่ ง ๆ ไดท้ กุ สาขาวิชา ผทู้ ี่เพิง่ ฝึกเขียนโปรแกรมใหม่ ๆ
หรือผทู้ ีไ่ ม่ใชน่ กั เขยี นโปรแกรมมอื อาชพี แต่เป็นเพยี งวศิ วกรหรอื นกั วจิ ยั จะสามารถ หดั เขยี นโปรแกรมภาษาเบสิกไดใ้ นเวลาไม่นานนกั ปกตภิ าษาเบสิกส่วนใหญใ่ ชก้ บั ไมโครคอมพิวเตอร์ 4) ภาษาปาสคาล (Pascal) ตงั้ ชอ่ื ตามนกั คณิตศาสตรช์ าวฝร่งั เศส ชื่อ เบลส ปาสคาล (Blaise Pascal) ซ่งึ เป็น ผผู้ ลิตเครอ่ื งคิดเลขโดยใชเ้ ฟืองหมนุ ภาษาปาสคาลคดิ ขนึ้ ในปี พ.ศ. 2514 โดยนิ คลอส เวยี ซ (Niklaus Wirth) ศาสตราจารยว์ ชิ าคอมพิวเตอรช์ าวสวติ ภาษาปาสคาล ไดร้ บั การออกแบบใหใ้ ชง้ า่ ยและมโี ครงสรา้ งท่ีดี จึงเหมาะกบั การใชส้ อนหลกั การเขยี น โปรแกรม ปัจจบุ นั ภาษาปาสคาลยงั คงไดร้ บั ความนิยมใชใ้ นการเรยี นเขยี นโปรแกรม คอมพวิ เตอร์ 5) ภาษาซแี ละซพี ลสั พลสั (C และ C++) ภาษา ซีเป็นภาษาทพี่ ฒั นาจากหอ้ งปฏบิ ตั กิ ารเบลลข์ องบรษิ ัทเอทแี อนดท์ ใี นปี พ.ศ. 2515 หลงั จากท่ีพฒั นาขนึ้ ไดไ้ มน่ าน ภาษาซกี ก็ ลายเป็นภาษาทน่ี ิยมในหม่นู กั เขียน โปรแกรมมาก และมใี ชง้ านในเครื่องทกุ ระดบั ทงั้ นเี้ น่ืองจากภาษาซีไดร้ วมเอาขอ้ มลู ของภาษาระดบั สงู และภาษาระดบั ตา่ เขา้ ไวด้ ว้ ยกนั กล่าวคอื เป็นภาษาท่ีมไี วยากรณ์ ทเ่ี ขา้ ใจง่าย ทาใหเ้ ขียนโปรแกรมไดง้ า่ ยเชน่ เดยี วกบั ภาษาระดบั สงู ท่วั ไป แต่ ประสทิ ธิภาพและความเรว็ ในการทางานดกี วา่ มาก เนื่องจากมกี ารทางานเหมือน ภาษาระดบั ต่า สามารถทางานไดใ้ นระดบั ทเ่ี ป็นการควบคมุ ฮารด์ แวรไ์ ดม้ ากกวา่ ภาษาระดบั สงู อนื่ ๆ ดงั จะเห็นว่าภาษาซเี ป็นภาษาท่ีสามารถพฒั นาระบบปฏิบตั ิการ ได้ เชน่ ระบบปฏบิ ตั ิการยนู ิกซ์ นอก จากนเี้ ม่ือแนวคดิ ของการเขยี นโปรแกรมแบบเชงิ วตั ถุ (Object Oriented Programming : OOP) ไดเ้ ขา้ มามบี ทบาทในวงการคอมพวิ เตอรม์ ากขนึ้ ภาษาซกี ย็ งั ไดร้ บั การพฒั นาโดยประยกุ ตใ์ ชก้ ับการเขยี นโปรแกรมดงั กล่าว เกิดเป็นภาษาใหม่ช่ือ
ว่า “ภาษาซีพลสั พลสั ” (C++) 6) ภาษาวชิ วลเบสกิ (Visual Basic) เป็น ภาษาทพี่ ฒั นาตอ่ มาจากภาษาเบสกิ ใชไ้ วยากรณบ์ างสว่ นของภาษาเบสิกใน การเขยี นโปรแกรม แตม่ แี นวคิดและวิธีการพัฒนาโปรแกรมทีแ่ ตกต่างจากภาษา เบสกิ โดยสิน้ เชิง รวมทงั้ การใชเ้ นอื้ ที่ในหนว่ ยความจาก็แตกต่างกนั มาก ทงั้ นเี้ น่อื งจาก ภาษาวิชวลเบสิกใชแ้ นวคิดทต่ี ่างออกไป 7) การเขียนโปรแกรมแบบจินตภาพ (Visual Programming) ภาษา นพี้ ฒั นาขนึ้ โดยบริษัทไมโครซอฟตอ์ อกแบบเพ่ือเขียนโปรแกรมท่สี ามารถใช้ งานได้ บนระบบปฏิบตั ิการแบบจยี ไู อ เชน่ ระบบปฏบิ ตั กิ ารไมโครซอฟตว์ นิ โดวส์ มี การตดิ ตอ่ กบั ผใู้ ชโ้ ดยใชร้ ูปภาพ การเขียนโปรแกรมทาไดง้ ่ายกวา่ การเขียนโปรแกรม แบบเกา่ มาก 8) ภาษาจาวา (Java) พฒั นา ขนึ้ ในปี พ.ศ. 2534 โดยบริษัทซนั ไมโครซิสเตมส์ เป็นภาษาทไ่ี ดร้ บั ความนยิ ม สงู มาโดยตลอด เนื่องจากเป็นภาษาที่มคี วามยืดหยนุ่ สงู สามารถเขียนโปรแกรมและ ใชง้ านไดบ้ นเคร่อื งคอมพิวเตอรท์ กุ ประเภทและระบบ ปฏิบตั กิ ารทกุ รูปแบบ ในชว่ ง แรกท่ีเร่ิมมีการนาภาษาจาวามาใชง้ านจะเป็นการใชง้ านบนเครือข่ายอนิ เทอรเ์ นต็ เป็นภาษาทเ่ี นน้ การทางานบนเวบ็ แตป่ ัจจบุ นั สามารถสามารถนามาประยกุ ตส์ รา้ ง โปรแกรมใชง้ านท่วั ไปได้ นอก จากนี้ เมอ่ื เทคโนโลยีของการสอื่ สารกา้ วหนา้ ขนึ้ จนกระท่งั เคร่ืองคอมพวิ เตอร์ ปาลม์ ทอ็ ป หรือ แมแ้ ตโ่ ทรศพั ทเ์ คล่ือนท่ีสามารถเชื่อมตอ่ เขา้ ส่รู ะบบอินเทอรเ์ น็ตและ ใชง้ าน ระบบเวลิ ดไ์ วดเ์ ว็บได้ ภาษาจาวาก็สามารถสรา้ งสว่ นท่เี รยี กวา่ “แอปเพลต็ ” (Applet) ใหอ้ ปุ กรณอ์ ิเลก็ ทรอนกิ สท์ ีก่ ลา่ วขา้ งตน้ เรยี กใชง้ านจากเครอ่ื งทเ่ี ป็นแม่ข่าย (Server) ได้
9) ภาษาเดลฟาย (Delphi) เป็น ภาษาท่ีไดร้ บั ความนิยมภาษาหน่งึ แนวคดิ ในการเขยี นโปรแกรมภาษาเดลฟาย เหมือนกบั แนวคิดในการเขียนโปรแกรมภาษาวิ ชวลเบสิก คือเป็นการเขียนโปรแกรม เชิงจินตภาพ แตภ่ าษาพนื้ ฐานที่ใชใ้ นการเขียนโปรแกรมจะเป็นภาษาปาสคาล ใน การเขียนโปรแกรมเชิงจินตภาพนมี้ ีคอมโพเนนต์ (Component) ทีส่ ามารถใชเ้ ป็น สว่ นประกอบเพอื่ สรา้ งสว่ นตดิ ตอ่ ผใู้ ชท้ ี่เป็นแบบกราฟิก ทาใหซ้ อฟตแ์ วรท์ ่พี ฒั นามี ความน่าสนใจและใชง้ านง่ายขนึ้ การเขียนโปรแกรมดว้ ยภาษาเดลฟายจึงเป็นทีน่ ิยม ในการนาไปพฒั นาเป็นโปรแกรมใช้ งานมาก รวมทงั้ ภาษาปาสคาลเป็นภาษาที่เขา้ ใจ งา่ ย เหมาะแกก่ ารนามาใชส้ อนเขียนโปรแกรม 4. ภาษาระดบั สูงมาก เป็น ภาษาโปรแกรมยคุ ที่ 4 ซึ่งเป็นภาษาระดบั สงู มาก จดั เป็นภาษาไรก้ ระบวนคาส่งั หมายความว่าผใู้ ช้ เพยี งบอกแต่วา่ ใหค้ อมพวิ เตอรท์ าอะไร โดยไม่ตอ้ งบอก คอมพิวเตอรว์ ่าส่ิงนน้ั ทาอย่างไร เรยี กวา่ เป็นภาษาเชงิ ผลลพั ธ์ คอื เนน้ วา่ ทาอะไร ไมใ่ ชท่ าอย่างไร ดงั นน้ั จงึ เป็นภาษาโปรแกรมท่ีเขียนงา่ ย 5. ภาษาธรรมชาติ เป็น ภาษาโปรแกรมยคุ ท่ี 5 ซงึ่ คลา้ ยกบั ภาษาพดู ตามธรรมชาติของคน การเขยี น โปรแกรมงา่ ยทส่ี ดุ คือการเขยี นคาพดู ของเราเองว่าเราตอ้ งการอะไร ไม่ตอ้ งใชค้ าส่งั งานใดๆ เลย ตวั อยา่ งภาษาในยคุ ต่างๆ ดงั นี้
Fortran: ภาษาระดบั สงู ภาษาแรก เป็นภาษาโปรแกรมที่ใชง้ านดา้ นวิทยาศาสตร์ วิศวกรรมศาสตร์ และดา้ นคณติ ศาสตร์ ภาษาฟอรเ์ ทนจะประกอบดว้ ยขอ้ ความ คาส่งั ทีละบรรทดั Colbol: ภาษาโปรแกรมสาหรบั ธุรกิจ ท่ีมีลกั ษณะคลา้ ยกบั ภาษาองั กฤษ และที่ สาคญั คือ เป็นภาษาโปรแกรมทีอ่ ิสระจากเคร่อื ง หมายความว่า โปรแกรมทีเ่ ขียนขนึ้ ใชง้ านบนคอมพิวเตอรช์ นิดหนง่ึ เพยี งแค่ปรบั ปรุงเลก็ นอ้ ย กส็ ามารถรนั ไดบ้ น คอมพวิ เตอรอ์ ีกชนดิ หน่งึ Basic: ภาษาโปรแกรมสาหรบั ผเู้ รมิ่ ตน้ เป็นภาษาโปรแกรมทเ่ี รียนรูง้ า่ ย ไมซ่ บั ซอ้ น เหมาะสาหรบั ใชใ้ นวงการศกึ ษา Pascal: เป็นภาษาสาหรบั การเรยี นการสอนโดยเฉพาะ เป็นภาษาท่ีเขยี นงา่ ย ใช้ ถอ้ ยคานอ้ ย Ada: ภาษามาตรฐาน ซงึ่ พฒั นาขนึ้ โดย โปรแกรมเมอรค์ นแรก คือ เคาต์ Add Lovelace เป็นภาษาทปี่ ระสบความเรจ็ กบั งานดา้ นธุรกจิ C: ภาษาสมยั ใหม่ เป็นภาษาท่ใี ชส้ าหรบั เขียนโปรแกรมระบบปฎบิ ตั กิ าร เหมาะ สาหรบั โปรแกรมเมอรท์ ม่ี ีความสามารถสงู ALGOL: เป็นภาษาทใี่ ชเ้ ขียนโปรแกรมดา้ นวิทยาศาสตร์ LISP: เป็นภาษาที่ใชเ้ มื่อประมวลผลดา้ นสญั ลกั ษณ,์ อกั ขระ, หรอื คาต่างๆ ซ่ึงเป็น การไดต้ อบระหวา่ งคนกบั คอมพิวเตอร์ ภาษานนี้ ยิ มใชเ้ ขียนโปรแกรมดา้ น ปัญญาประดิษฐ์
Prolog: เป็นภาษาโปรแกรมสาหรบั งานดา้ นปัญญาประดิษฐ์ ซง่ึ แทนการใชภ้ าษา LISP PL/1: เป็นภาษาท่เี รยี นรูง้ า่ ย ใชง้ านทงั้ ดา้ นวทิ ยาศาสตร์ และดา้ นธรุ กิจ ดงั นนั้ ภาษา นีจ้ ะมีขนาดใหญ่ มี option มาก ALP: เป็นภาษท่ีเหมาะสมกบั การทาตาราง มสี ญั ลกั ษณต์ า่ งๆ มาก Logo: เป็นภาษายอ่ ยของ lisp เป็นโปรแกรมสาหรบั เดก็ มีการสนทนาโตต้ อบกบั คอมพิวเตอร์ โดยใช้ \"เต่า\" เป็นสญั ลกั ษณโ์ ตต้ อบกบั คาส่งั ง่ายเชน่ forward, left Pilot: เป็นภาษาโปรแกรมท่ีนยิ มใชม้ ากทีส่ ดุ ในการเขยี นโปรแกรมบทเรียน คอมพิวเตอร์ ช่วยสอน(CAI) เชน่ งานเก่ยี วกบั คาส่งั ฝึกหดั การทดสอบ เป็นตน้ Smalltalk: เป็นภาษาเชงิ โตต้ อบกบั เคร่ืองคอมพิวเตอรป์ ระกอบดว้ ยการจา และการ พมิ พ์ เป็นภาษาท่ีสนบั สนนุ ระบบคอมพวิ เตอรภ์ าพ เป็นภาษาเชิงวตั ถไุ มใ่ ชเ่ ชิง กระบวนการ Forth: เป็นภาษาสาหรบั งานควบคมุ แบบทนั ที เช่นการแนะนากลอ้ งดาราศาสตร์ และเป็นภาษาโปรแกรมทมี่ ีความเร็วสงู Modula-2: คลา้ ยคลงึ กบั ภาษาปาสคาล ออกแบบมาเพือ่ ใหเ้ ขียนซอฟตแ์ วรร์ ะบบ RPG: เป็นภาษาเชิงปัญหา ออกแบบมาเพื่อใชแ้ กป้ ัญหาการทารายงานเชิงธรุ กิจ เช่น การปรบั ปรุงแฟม้ ขอ้ มลู ขน้ั ตอนการพฒั นาโปรแกรม หลักการเขยี นโปรแกรม
ชุดคาส่งั ทีท่ าใหค้ อมพิวเตอรท์ างาน หรอื ท่ีเรียกว่า โปรแกรม คอมพิวเตอร์ ขนั้ ตอนหรือวธิ ีการพฒั นาโปรแกรมประกอบดว้ ย 6 ขนั้ ตอนดงั ตอ่ ไปนี้ 1. การวเิ คราะหป์ ัญหา 2. การออกแบบโปรแกรม 3. การเขียนโปรแกรมดว้ ยภาษาคอมพวิ เตอร์ 4. การทดสอบและแกไ้ ขโปรแกรม 5. การทาเอกสารประกอบโปรแกรม 6. การบารุงรกั ษาโปรแกรม 1. การวิเคราะหป์ ัญหา (Problem Analysis) การวเิ คราะหป์ ัญหา ประกอบดว้ ยขนั้ ตอนต่างๆ ดงั นี้ 1. กาหนดวตั ถปุ ระสงคข์ องงาน เพื่อพิจารณาวา่ โปรแกรมตอ้ งทาการประมวลผล อะไรบา้ ง 2. พิจารณาขอ้ มลู นาเขา้ (Input) เพ่อื ใหท้ ราบว่าจะตอ้ งนาขอ้ มลู อะไรเขา้ คอมพิวเตอร์ ขอ้ มลู มีคณุ สมบตั ิ 3. เป็นอยา่ งไร ตลอดจนลกั ษณะและรูปแบบของขอ้ มลู ทจี่ ะนาเขา้ 4.พิจารณาการประมวลผล (Process) เพ่ือใหท้ ราบวา่ โปรแกรมมีขนั้ ตอนการ ประมวลผลอยา่ งไรและมเี งอ่ื นไขการประมวลผลอะไรบา้ ง
5.พจิ ารณาขอ้ สนเทศนาออก (Output) เพือ่ ใหท้ ราบวา่ มขี อ้ สนเทศอะไรท่จี ะแสดง ตลอดจนรูปแบบและส่ือทจ่ี ะ 6.ใชใ้ น การแสดงผล เช่นการแสดงออกทางจอภาพ การแสดงออกทางเคร่อื งพมิ พ์ กระบวนการทางานของคอมพิวเตอร์ 2. การออกแบบโปรแกรม (Design) การออกแบบขนั้ ตอนการทางานของโปรแกรมเป็นขนั้ ตอนท่ีใชเ้ ป็นแนวทางใน การลงรหสั โปรแกรม ผอู้ อกแบบขนั้ ตอนการทางานของโปรแกรมอาจใชเ้ ครอ่ื งมือ ตา่ งๆ ชว่ ยในการออกแบบ อาทิเชน่ คาส่งั ลาลอง (Pseudocode) หรือ ผงั งาน (Flow chart) การออกแบบโปรแกรมนนั้ ไม่ตอ้ งพะวงกบั รูปแบบคาส่งั ภาษาคอมพิวเตอร์ แต่ ใหม้ งุ่ ความสนใจไปทล่ี าดบั ขนั้ ตอนในการประมวลผลของโปรแกรมเทา่ นนั้ 3. การเขยี นโปรแกรมดว้ ยภาษาคอมพวิ เตอร์ (Programming) การเขียนโปรแกรมเป็นการนาเอาผลลพั ธข์ องการออกแบบโปรแกรม มา เปลี่ยนเป็นโปรแกรมภาษาคอมพวิ เตอรภ์ าษา ใดภาษาหนึง่ ผเู้ ขียนโปรแกรมจะตอ้ งใหค้ วามสนใจตอ่ รูปแบบคาส่งั และกฎเกณฑ์ ของภาษาท่ใี ชเ้ พือ่ ใหก้ ารประมวลผลเป็น
ไปตามผลลพั ธท์ ไ่ี ดอ้ อกแบบไว้ นอกจากนน้ั ผเู้ ขียนโปรแกรมควรแทรกคาอธิบายการ ทางานต่างๆ ลงในโปรแกรมเพ่ือให้ โปรแกรมนน้ั มีความกระจา่ งชดั และงา่ ยตอ่ การตรวจสอบและโปรแกรมนีย้ งั ใช้เป็น สว่ นหนึ่งของเอกสารประกอบ 4. การทดสอบและแกไ้ ขโปรแกรม การทดสอบโปรแกรมเป็นการนาโปรแกรมท่ีลงรหสั แลว้ เขา้ คอมพิวเตอร์ เพอื่ ตรวจสอบรูปแบบกฎเกณฑข์ องภาษา และผลการทางานของโปรแกรมนนั้ ถา้ พบว่ายงั ไมถ่ กู ก็แกไ้ ขใหถ้ กู ตอ้ งต่อไป ขนั้ ตอนการทดสอบและแกไ้ ขโปรแกรม อาจแบ่งไดเ้ ป็น 3 ขนั้ ตอนตอ่ ไปนสี้ รา้ ง แฟ้มเก็บโปรแกรมซึง่ ส่วนใหญ่นยิ มนาโปรแกรมเขา้ ผา่ นทางแป้นพมิ พโ์ ดยใช้ โปรแกรมประมวลคา 1. ใชต้ วั แปลภาษาคอมพิวเตอรแ์ ปลโปรแกรมท่ีสรา้ งขนึ้ เป็นภาษาเคร่ือง โดย ระหวา่ งการแปลจะมีการตรวจสอบความถกู ตอ้ งของรูปแบบและกฎเกณฑใ์ น การใชภ้ าษา ถา้ คาส่งั ใดมรี ูปแบบไมถ่ ูกตอ้ งกจ็ ะแสดงขอ้ ผิดพลาดออกมา เพอื่ ใหผ้ เู้ ขียนนาไปแกไ้ ขต่อไป ถา้ ไม่มขี อ้ ผดิ พลาด เราจะไดโ้ ปรแกรม ภาษาเครอื่ งท่ีสามารถใหค้ อมพวิ เตอรป์ ระมวลผลได้ 2. ตรวจสอบความถกู ตอ้ งของการประมวลผลของโปรแกรม โปรแกรมท่ถี กู ตอ้ ง ตามรูปแบบและกฎเกณฑข์ องภาษา แต่อาจใหผ้ ลลพั ธข์ องการประมวลผลไม่ ถกู ตอ้ งก็ได้ ดงั นน้ั ผเู้ ขยี นโปรแกรมจาเป็นตอ้ งตรวจสอบวา่ โปรแกรม ประมวลผลถกู ตอ้ งตามตอ้ งการหรอื ไม่ วธิ ีการหนึ่งก็คอื สมมติขอ้ มลู ตวั แทน จากขอ้ มลู จรงิ นาไปใหโ้ ปรแกรมประมวลผลแลว้ ตรวจสอบผลลพั ธว์ า่ ถกู ตอ้ ง หรือไม่ ถา้ พบว่าไมถ่ กู ตอ้ งกต็ อ้ งดาเนินการแกไ้ ขโปรแกรมตอ่ ไป การสมมติ
ขอ้ มลู ตวั แทนเพ่ือการทดสอบเป็นสิง่ ที่มคี วามสาคญั เป็นอยา่ งมาก ลกั ษณะ ของขอ้ มลู ตวั แทนทีด่ ีควรจะสมมตทิ งั้ ขอ้ มลู ทีถ่ กู ตอ้ งและขอ้ มลู ทผี่ ิดพลาด เพอื่ ทดสอบว่าโปรแกรมท่ีพฒั นาขนึ้ สามารถครอบคลมุ การปฏิบตั งิ านใน เง่ือนไขตา่ งๆ ไดค้ รบถว้ น นอกจากนอี้ าจตรวจสอบการทางานของโปรแกรม ดว้ ยการสมมตติ วั เองเป็นคอมพวิ เตอรท์ จี ะประมวลผล แลว้ ทาตามคาส่งั ทีละ คาส่งั ของโปรแกรมนนั้ ๆ วธิ ีการนอี้ าจทาไดย้ ากถา้ โปรแกรมมีขนาดใหญ่ หรอื มี การประมวลผลท่ีซบั ซอ้ น 5. การทาเอกสารประกอบโปรแกรม การทาเอกสารประกอบโปรแกรมเป็นงานที่สาคญั ของการพฒั นาโปรแกรม เอกสารประกอบโปรแกรมช่วยใหผ้ ใู้ ชโ้ ปรแกรมเขา้ ใจวตั ถปุ ระสงค์ ขอ้ มลู ที่จะตอ้ งใช้ กบั โปรแกรม ตลอดจนผลลพั ธท์ ี่จะไดจ้ ากโปรแกรม การทาโปรแกรมทกุ โปรแกรมจงึ ควรตอ้ งทาเอกสารกากบั เพื่อใชส้ าหรบั การอา้ งองิ เมอ่ื จะใชง้ านโปรแกรมและเม่อื ตอ้ งการแกไ้ ขปรบั ปรุงโปรแกรม เอกสารประกอบโปรแกรมท่ีจดั ทา ควรประกอบดว้ ย หวั ขอ้ ตอ่ ไปนี้ 1. วตั ถปุ ระสงค์ 2. ประเภทและชนดิ ของคอมพิวเตอรแ์ ละอปุ กรณท์ ีใ่ ชใ้ นโปรแกรม 3. วธิ ีการใชโ้ ปรแกรม 4. แนวคิดเก่ยี วกบั การออกแบบโปรแกรม 5. รายละเอียดโปรแกรม 6. ขอ้ มลู ตวั แทนทใี่ ชท้ ดสอบ 7. ผลลพั ธข์ องการทดสอบ
6. การบารุงรกั ษาโปรแกรม เมอ่ี โปรแกรมผ่านการตรวจสอบตามขนั้ ตอนเรยี บรอ้ ยแลว้ และถกู นามาใหผ้ ใู้ ช้ ไดใ้ ชง้ าน ในชว่ งแรกผใู้ ชอ้ าจจะยงั ไม่คนุ้ เคยกอ็ าจทาใหเ้ กดิ ปัญหาขนึ้ มาบา้ ง ดงั นนั้ จงึ ตอ้ งมีผคู้ อยควบคมุ ดแู ลและคอยตรวจสอบการทางาน การบารุงรกั ษาโปรแกรมจึง เป็นขนั้ ตอนทผี่ เู้ ขยี นโปรแกรมตอ้ งคอยเฝา้ ดแู ละหาขอ้ ผิดพลาดของโปรแกรมใน ระหวา่ งทผ่ี ใู้ ชใ้ ชง้ านโปรแกรม และปรบั ปรุงโปรแกรมเม่อื เกิดขอ้ ผดิ พลาดขนึ้ หรือใน การใชง้ านโปรแกรมไปนานๆ ผใู้ ชอ้ าจตอ้ งการเปลี่ยนแปลงการทางาน ของระบบงาน เดิมเพ่ือใหเ้ หมาะกบั เหตกุ ารณ์ นกั เขยี นโปรแกรมกจ็ ะตอ้ งคอยปรบั ปรุงแกไ้ ข โปรแกรมตามความตอ้ งการของ ผใู้ ชท้ ่ีเปล่ียนแปลงไปน่นั เอง การแปลภาษาโปรแกรมคอมพิวเตอร์
การทางานของโปรแกรมแปลภาษา ใน การประมวลผลโปรแกรมทเ่ี ขียนขนึ้ ดว้ ยภาษาระดบั สงู จาเป็นตอ้ งอาศยั โปรแกรม ท่ที าหนา้ ทช่ี ่วยในการแปลโปรแกรมภาษาระดบั สงู ใหเ้ ป็น ภาษาเครอ่ื ง โปรแกรม แปลภาษาที่ใชแ้ บง่ ออกเป็น 2 ลกั ษณะ ไดแ้ ก่ 1) คอมไพเลอร์ (Compiler) เป็น โปรแกรมทท่ี าหนา้ ที่ในการแปลโปรแกรมท่ีเขยี นดว้ ยภาษาระดบั สงู ท่เี รียกกนั วา่ “โปรแกรมตน้ ฉบบั ” (Source Program) ใหเ้ ป็นโปรแกรมภาษาเคร่ือง (Object Program) ถา้ มขี อ้ ผิดพลาดเครอื่ งจะพิมพร์ หสั หรอื ขอ้ ผิดพลาดออกมาดว้ ย ภายหลงั การแปลถา้ ไมม่ ีขอ้ ผดิ พลาด ผใู้ ชส้ ามารถส่งั ประมวลผลโปรแกรม และสามารถเก็บ โปรแกรมท่ีแปลภาษาเครอื่ งไวใ้ ชง้ านต่อไปไดอ้ กี โดยไมต่ อ้ งทาการแปลโปรแกรมซา้ อีก ตวั อยา่ งโปรแกรมแปลภาษาแบบนี้ ไดแ้ ก่ โปรแกรมแปลภาษาฟอรแ์ ทรน โปรแกรมแปลภาษาโคบอล โปรแกรมแปลภาษาปาสคาล โปรแกรมแปลภาษาซี 2) อินเทอรพ์ รเี ตอร์ (Interpreter) เป็น โปรแกรมท่ที าหนา้ ทใี่ นการแปลโปรแกรมที่เขียนดว้ ยภาษาระดบั สงู ใหเ้ ป็น โปรแกรม ภาษาเครื่องเช่นเดียวกบั คอมไพเลอร์ ความแตกต่างจะอย่ทู ีอ่ นิ เทอรพ์ รี เตอรจ์ ะทาการแปลและประมวลผลทลี ะคาส่งั ขอ้ เสียของอนิ เทอรพ์ รเี ตอรก์ ค็ อื ถา้ นา โปรแกรมนน้ั มาใชง้ านอกี จะตอ้ งทาการแปล โปรแกรมทกุ ครง้ั ภาษาบางภาษามี โปรแกรมแปลทงั้ สองลกั ษณะ เช่น ภาษาเบสิก เป็นตน้ บทท่ี 2 การวิเคราะห์ การวเิ คราะหง์ าน การวเิ คราะหง์ านเป็นขนั้ ตอนแรกท่ตี อ้ งกระทาเมื่อตอ้ งการเขยี นโปรแกรมและเป็น ขนั้ ตอนที่สาคญั ทส่ี ดุ โดยจะตอ้ งกาหนดขอบเขตของงานหรอื ปัญหา รวบรวม
รายละเอียดของปัญหาวเิ คราะหป์ ัญหาอย่างละเอียดวา่ ตอ้ งการใหค้ อมพวิ เตอรท์ า อยา่ งไร ผลลพั ธท์ ตี่ อ้ งการเป็นอยา่ งไรรูปแบของขอ้ มลู ท่ีจะป้อนเขา้ เครือ่ งเป็น อย่างไร ถา้ ตอ้ งการผลลพั ธเ์ ช่นนี้ การวิเคราะหง์ านเป็นการศึกษาผลลพั ธ์ (Output) ขอ้ มลู นาเขา้ (Input) วิธีการประมวลผล (Process) และการกาหนดชื่อ ของตวั แปรทจี่ ะใชใ้ นการเขยี นโปรแกรม ในการวิเคราะหง์ านเราจะตอ้ งกาหนดจดุ ประสงคข์ องการวิเคราะหง์ าน และ ขนั้ ตอนวิธีการวเิ คราะหง์ านแตล่ ะอยา่ งใหไ้ ด้ ซ่ึงงานแตล่ ะอย่างมีรายละเอียดดงั นี้ จดุ ประสงคข์ องการวิเคราะหง์ าน ในการวิเคราะหง์ านแตล่ ะอยา่ งมจี ดุ ประสงคข์ องการวิเคราะหง์ านท่ี สาคญั ดงั นี้ 1. เพื่อหาวตั ถปุ ระสงคข์ องการเขียนโปรแกรม 2. เพื่อหารูปแบบผลลพั ธท์ ตี่ อ้ งการ 3. เพอ่ื หาขอ้ มลู นาเขา้ ทตี่ อ้ งใสเ่ ขา้ ไปในโปรแกรม 4. เพื่อหาตวั แปรท่จี าเป็นตอ้ งใชใ้ นโปรแกรม 5. เพือ่ หาขนั้ ตอนวธิ ีการทางานของโปรแกรม ขน้ั ตอนวิธีการวเิ คราะหง์ าน ในการวเิ คราะหง์ านแตล่ ะอย่างมีขนั้ ตอนวิธีการวเิ คราะหง์ านทส่ี าคญั ดงั นี้ 1) การหาวตั ถปุ ระสงคข์ องการเขียนโปรแกรม ผเู้ ขียนโปรแกรมจะตอ้ งหา วตั ถปุ ระสงคจ์ ากงานที่จะเขียนโปรแกรมวา่ ตอ้ งการเขยี นโปรแกรมเพอ่ื แกป้ ัญหา
อะไรบา้ งซึ่งจะทาใหเ้ ขยี นโปรแกรมไดต้ รงกบั ความตอ้ งการหรือวตั ถปุ ระสงคข์ องงาน นนั้ ๆ 2) การหารูปแบบผลลพั ธท์ ่ีตอ้ งการ เม่ือผเู้ ขียนโปรแกรมหาวตั ถปุ ระสงคข์ อง การเขียนโปรแกรมไดแ้ ลว้ ขนั้ ตอนต่อมาคือการกาหนดรูปแบบผลลพั ธท์ ี่ตอ้ งการจาก โปรแกรม ซึง่ รูปแบบผลลพั ธอ์ าจอย่ใู นลกั ษณะของขอ้ ความหรอื ตวั เลข หรือ ตาราง หรอื แผนภมู ิ หรืออาจใชผ้ สมกนั ระหว่างตวั เลขกบั ขอ้ ความ หรือขอ้ ความกบั ตวั เลข และตารางก็ได้ ขนึ้ อย่กู บั ผเู้ ขยี นโปรแกรมเป็นผกู้ าหนดเอง แตโ่ ดยส่วนมาก นิยมแสดงผลลพั ธข์ องโปรแกรมใหอ้ ยใู่ นรูปแบบท่ีเขา้ ใจงา่ ยมากกวา่ รูปแบบท่ี ซบั ซอ้ น 3) การหาขอ้ มลู นาเขา้ ทต่ี อ้ งใส่เขา้ ไปในโปรแกรม ผเู้ ขียนโปรแกรมจะตอ้ งหา ขอ้ มลู นาเขา้ จากผลลพั ธท์ ีไ่ ดจ้ ากโปรแกรม โดยคานงึ ถึงขนั้ ตอนวิธีการคานวณ และ ขอ้ มลู ทจ่ี าเป็นตอ้ งใสเ่ ขา้ ไปเพ่อื ใหไ้ ดผ้ ลลพั ธท์ ต่ี อ้ งการ 4) การหาตวั แปรที่จาเป็นตอ้ งใชใ้ นโปรแกรม ตวั แปร หมายถึง ชื่อที่ผเู้ ขียน โปรแกรมสามารถตงั้ ขนึ้ เองตามหลกั การตงั้ ชือ่ ตวั แปรของภาษาคอมพิวเตอรท์ ่นี ามา เขยี นโปรแกรม (หลกั เกณฑก์ ารตงั้ ชื่อตวั แปรกลา่ วไวใ้ นหวั ขอ้ 2.5.3.1) เพื่อใชใ้ นการ อา้ งอิงการเก็บขอ้ มลู และเรยี กใชข้ อ้ มลู ภายในตวั แปร ดงั นนั้ ผเู้ ขยี นโปรแกรมจะตอ้ ง ตงั้ ช่อื ตวั แปรท่ีใชใ้ นการเก็บขอ้ มลู ทงั้ หมดภายในโปรแกรม รวมถึงตวั แปรบางตวั ท่ีใช้ ในการนบั จานวนรอบของการทางานในโปรแกรมอีกดว้ ย ตวั แปร ในการเขยี นผงั งานหรอื การเขียนโปรแกรมของระบบงานใดกต็ าม ขอ้ มลู คอื สิ่งที่จา เป็นท่สี ดุ ของระบบ เม่อื ทาการเตรียมขอ้ มลู ไวแ้ ลว้ การจะนาขอ้ มลู เขา้ มาใชใ้ น
โปรแกรม ตอ้ งมกี ารกาหนดตวั แปร หรือ สรา้ งตวั แปรขนึ้ มาใชแ้ ทนขอ้ มลู เหลา่ นน้ั เพ่ือใหอ้ ย่ใู นรูปแบบทค่ี อมพิวเตอรเ์ ขา้ ใจ เมอื่ สรา้ งตวั แปร ไวแ้ ลว้ การทจ่ี ะกาหนดค่า ใหก้ บั ตวั แปร หรอื การนาตวั แปรไปคานวณตามสตู รตา่ ง ๆ ตอ้ งใชเ้ ครื่องหมายหรอื ตวั ดาเนินการทางคณิตศาสตร์ เครอ่ื งหมายทางตรรกศาสตร์ หรอื การเปรียบเทียบ จึงจะ ไดผ้ ลลพั ธต์ ามทตี่ อ้ งการ ข้อมลู และชนิดของข้อมลู ขอ้ มลู ท่ีใชใ้ นการเขียนโปรแกรมเป็นขอ้ มูลท่ีจะตอ้ งศกึ ษาว่าจะนาไปใชใ้ นการ ทางานขนั้ ตอนใดของระบบไม่วา่ จะเป็นขอ้ มลู ทีจ่ ะตอ้ งนาเขา้ ขอ้ มลู ทต่ี อ้ งนาไปแปล ผลหรอื ประมวลผล หรอื แมแ้ ต่ขอ้ มลู ที่ตอ้ งนาไปแสดงผลลพั ธต์ ามความตอ้ งการของ โปรแกรม ซึ่งขอ้ มลู หมายถึง ขอ้ เท็จจริงของสงิ่ ที่เราสนใจ ในการเขยี นโปรแกรม ขอ้ เท็จจริงนน้ั จะตอ้ งมคี วามสมั พนั ธแ์ ละเก่ยี วขอ้ งกบั ระบบงานหรือสิ่งทก่ี าลงั ศกึ ษา ขอ้ เทจ็ จริงอาจเป็นตวั เลข ตวั อกั ขระ หรือรายละเอยี ดซ่งึ อาจอยใู่ นรูปแบบตา่ ง ๆ เชน่ ภาพ เสียง วีดิโอ เป็นตน้ ขอ้ มลู ทมี่ ีความหมายและใชง้ านกนั โดยท่วั ไปในการเขยี นโปรแกรมดว้ ย ภาษาคอมพวิ เตอร์ ซ่ึง่ เป็นขอ้ มลู พนื้ ฐานที่ใชใ้ นการประมวลผล สามารถแบง่ ออกเป็น 2 ชนิด ดงั นี้ 1. ขอ้ มลู ชนิดตวั เลข (Numeric Data) หมายถึง ขอ้ มลู ที่ใชแ้ ทนจานวนทสี่ ามารถนา ไปคานวณได้ เขยี นได้ 2 รูปแบบ คอื 1.1 ขอ้ มลู ชนดิ ตวั เลขจานวนเต็ม (Integer)
ขอ้ มลู ชนดิ ตวั เลขจานวนเต็ม เป็นไปไดท้ งั้ จานวนเต็มบวก จานวนเต็มศนู ย์ และจานวนเต็มลบ ตวั อย่างขอ้ มลู ชนดิ ตวั เลขจานวนเต็ม ไดแ้ ก่ 5, 0, -10 เป็นตน้ โดย ทค่ี า่ Integer มคี า่ ตงั้ แต่ -2,147,483,648 ถงึ 2,147,483,647 1.2 ขอ้ มลู ชนิดตวั เลขทศนิยม (Float) ขอ้ มลู ชนิดตวั เลขทศนิยม คือ ตวั เลขที่ไม่ใช่จานวนเต็ม โดยอาจจะเป็น ตวั เลขทศนยิ มคงที่ หรือทศนิยมไม่รูจ้ บ ตวั อยา่ งขอ้ มลู ชนิดตวั เลขทศนิยม ไดแ้ ก่ 10.50, 7.00, -0.35, 19.3333…, -22.222… เป็นตน้ ค่า Float มคี ่าตงั้ แต่ ±1.5 x 10-45 ถึง ±3.4 x 1038 2. ขอ้ มลู ทีเ่ ป็นตวั อกั ขระ (Character Data) หมายถงึ ขอ้ มลู ท่ี ไมส่ ามารถนาไป คานวณได้ แต่อาจนาไปเรียงลาดบั ไดเ้ ชน่ การเรยี งลาดบั ตัวอกั ษร ขอ้ มลู อาจเป็น ตวั หนงั สอื ตวั เลข หรือเครื่องหมายใด ๆ เขียนได้ 2 รูปแบบ คือ 2.1 ขอ้ มลู ชนิดอกั ขระ (Character) ขอ้ มลู ชนดิ อกั ขระ คอื ตวั อกั ษรหรือสญั ลกั ษณอ์ น่ื ๆ ท่ีมีความหมายและมี ความยาวเพยี ง 1 ตวั อกั ษร โดยขอ้ มลู ชนิดอกั ขระจะตอ้ งเขียนไวภ้ ายในเครือ่ งหมาย ‘ ’ (Single Quote) เช่น ‘F’, ‘M’, ‘T’, ‘0’, ‘1’, ‘{‘, ‘#’, ‘@’ เป็นตน้ 2.2 ขอ้ มลู ชนดิ ขอ้ ความ (String) ขอ้ มลู ชนดิ ขอ้ ความ คือ ตวั อกั ขระทม่ี ากกวา่ 1 ตวั เรียงตอ่ กนั เป็นขอ้ ความ โดยขอ้ มลู ชนดิ ขอ้ ความตอ้ งเขยี นอย่ภู ายในเครื่องหมาย “”(Double Quote) เชน่ “John”, “Phayao”, “081-4312553”, “98/1”, “[email protected]”, “Hello World” เป็นตน้
ตวั แปรและหน้าท่ีของตัวแปร เม่อื ทาการเตรียมขอ้ มลู ไวพ้ รอ้ มแลว้ การจะนาขอ้ มลู เขา้ มาใชใ้ นโปรแกรม ตอ้ ง ทาใหอ้ ย่ใู นรูปแบบที่คอมพวิ เตอรเ์ ขา้ ใจและรูจ้ กั ขอ้ มลู เสียก่อนจงึ จะใชง้ านได้ ซงึ่ วธิ ีการกค็ ือ การสร้างตวั แปร หรือ การกาหนดตัวแปร เพื่อจดั เกบ็ ขอ้ มลู เหล่านนั้ ขนึ้ มา ดงั นนั้ ตวั แปร (Variable) หมายถึง การจองพนื้ ที่ในหน่วยความจาหลกั (RAM) ของเคร่ืองคอมพิวเตอร์ โดยการกาหนดชื่อเรียกแทนขอ้ มลู ถา้ หากตอ้ งการนาขอ้ มลู เหล่านนั้ ขนึ้ มาใชง้ าน ไม่วา่ จะเป็นการกาหนดค่า การคานวณ หรอื การแสดงผล ให้ เรียกผา่ นช่อื ของตวั แปร เชน่ กาหนดตวั แปรขนึ้ มา โดยใชช้ ่อื วา่ num สาหรบั เก็บคา่ ตวั เลข 60 เมอ่ื ตอ้ งการนาจานวน 60 มาใชง้ าน เพยี งแต่เรยี กชอื่ num เทา่ นน้ั ก็ สามารถนามาใชง้ านได้ เชน่ กาหนดสตู ร out = num+10 แทนท่ีสตู รจะได้ out = 60 + 10 ผลลพั ธต์ วั แปร out จะมีค่าเทา่ กบั 70 ตวั อย่างการกาหนดช่ือตัวแปรแทนข้อมลู
ชนิดตวั แปร ตวั แปรสามารถแบง่ ไดเ้ ป็น 2 ประเภทใหญ่ๆ คอื ตวั แปรพนื้ ฐาน (Scalar) ซึ่ง หมายถงึ ตวั แปรท่ีเก็บขอ้ มลู ไดเ้ พยี งคา่ เดียว และตวั แปรชดุ (Array) ซ่งึ ก็คอื ตวั แปรที่ สามารถเก็บขอ้ มลู ไวไ้ ดห้ ลายค่าในตวั แปรตวั เดยี ว โดยในที่นจี้ ะอธิบายเฉพาะตวั แปร พนื้ ฐานเพยี งอยา่ งเดยี ว การต้ังชอ่ื ตวั แปร หลกั การตงั้ ช่อื ตวั แปร การสรา้ งตวั แปรขนึ้ มาสาหรบั ใชแ้ ทนขอ้ มลู ชื่อของตวั แปรท่จี ะใชเ้ ป็นสว่ นทต่ี อ้ ง คานึงถึงเพอื่ ไม่ใหเ้ กดิ ขอ้ ผิดพลาดเมือ่ ตอ้ งนา ตวั แปรไปใชใ้ นการเขียนโปรแกรม การตงั้ ช่อื ตัวแปรมหี ลกั การและขอ้ กาหนดเป็น มาตรฐาน ดงั นี้
1. ช่ื่อของตวั แปรตอ้ งขนึ้ ตน้ ดว้ ยตวั อกั ษรภาษาองั กฤษ A-Z หรอื a-z หรอื เครือ่ งหมาย _ (Underscore) เท่านน้ั 2. ใชต้ วั อกั ษรภาษาองั กฤษ ตวั เลข และสญั ลกั ษณ์ “_” ในการตงั้ ชอื่ ตวั แปร 3. หา้ มเคาะช่องวา่ งหรอื ใชเ้ ครื่องหมายใดใดในการตงั้ ชอ่ื ตวั แปร เชน่ !, @, #, $, %, &, |, (, ), =, \\, +, -,* ,/ 4. ตอ้ งคานงึ ถงึ การใชต้ วั อกั ษรตวั ใหญ่และตวั เล็ก ภาษาคอมพิวเตอรบ์ างภาษา มองเหน็ ว่ามีความแตกต่างกนั โดย Score จะถือว่าเป็นคนละตวั กบั SCORE และ score 5. ควรตงั้ ชอื่ ใหส้ ่ือความหมายกบั ขอ้ มลู เพื่อใหง้ ่ายต่อการทาความเขา้ ใจและไม่ สบั สน กรณีที่มตี วั แปรเป็นจานวนมากเชน่ ตวั แปร age หมายถึงอายุ ตวั แปร id หมายถงึ รหสั ประจาตวั tax หมายถึงภาษี เป็นตน้ 6. หา้ มตงั้ ชอ่ื ตวั แปรซา้ กบั คาสงวน (Reserved Word) ซ่งึ ภาษาคอมพวิ เตอรแ์ ต่ ละภาษาจะกาหนดคาสงวนไวใ้ ชง้ าน ตวั อยา่ งคาสงวนในภาษา C เชน่ if ,short, switch, break, int, default, while, case, do, float, long, char, double, for, else, return, goto, void เคร่อื งหมายหรือตัวดาเนินการทางคณิตศาสตร์ เม่อื เตรียมขอ้ มลู และกาหนดตวั แปรสาหรบั เกบ็ ขอ้ มลู ขนึ้ มาแลว้ ขนั้ ตอนต่อไป เป็นการนาตวั แปรเหลา่ นนั้ มาดาเนนิ การเพือ่ เขยี นโปรแกรมใหท้ างานตามที่ตอ้ งการ โดยการดาเนินการดงั กล่าวนนั้ หมายถงึ
การกาหนดคา่ เร่ิมตน้ ใหก้ บั ตวั แปร การนาตวั แปรมาคานวณโดยใชเ้ คร่อื งหมายหรือ ตวั ดาเนนิ การ ทางคณิตศาสตร์ การเปรียบเทียบ หรือการใชเ้ ครื่องหมายทาง ตรรกศาสตร์ เพื่อใหไ้ ดผ้ ลลพั ธต์ ามตอ้ งการ ซง่ึ เคร่ืองหมายหรือตวั ดาเนนิ การทาง คณติ ศาสตร์ มีดงั นี้ ตารางแสดงเครือ่ งหมายหรอื ตวั ดาเนินการทางคณิตศาสตร์ ตวั อยา่ ง หากกาหนดค่าเรมิ่ ตน้ ใหต้ วั แปร x = 10, y = 5 หมายเหตุ ลาดบั การทางานของเคร่อื งหมายหรอื ตวั ดาเนินการทางคณิตศาสตรไ์ ดแ้ ก่ *, /, % +, - เช่น Z = 50 + 40 – 30 * 20 / 10 % 5 ผลลพั ธ์ Z = 90 ตามลาดบั เครือ่ งหมายดงั นี้ ตวั อย่าง การคานวณค่าโดยใชต้ วั ดาเนนิ การทางคณิตศาสตร์
คาสงวน คาสงวนในภาษา C และ C++ คาสงวนในภาษา C มีทงั้ หมด 32 คา ไดแ้ ก่ auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
คาสงวนในภาษา C ++ มที งั้ หมด 30 คา ไดแ้ ก่ asm bool catch class const_cast delete dynamic_cast explicit false friend inline mutable namespace new operator private protected public reinterpret_cast static_cast template this throw true try typeid typename using virtual wchar_t ตัวอยา่ งการวเิ คราะหง์ าน ตัวอย่างที่ 1.1 ผลลพั ธท์ ีต่ อ้ งการ คอื พนื้ ท่ีสามเหล่ียมมมุ ฉากขอ้ มลู นาเขา้ ที่ตอ้ ง ใสเ่ ขา้ ไปในโปรแกรมคอื 1) สตู รคานวณพนื้ ทส่ี ามเหล่ียมมมุ ฉาก พนื้ ที่สามเหลย่ี มมมุ ฉาก = ? x ฐาน x สงู 2) ความยาวของฐานและความสงู ของรูปสามเหลี่ยม จากตวั อย่างที่ 1.1 สามารถแสดงการวิเคราะหง์ านตงั้ แตข่ นั้ ตอนท่ี 1 ถงึ 4 ไดด้ งั นี้ 1) วตั ถปุ ระสงคข์ องการเขียนโปรแกรม เพอื่ คานวณหาค่าพนื้ ที่สามเหลีย่ มมมุ ฉาก
2) รูปแบบผลลพั ธท์ ่ตี อ้ งการ พิมพผ์ ลลพั ธท์ ีต่ อ้ งการออกทางภาพดงั นี้ * ** output *** Base = 5 High = 4 Area = 10 3) ขอ้ มลู นาเขา้ คอื ความยาวฐานและความสงู 4) ตวั แปรทใี่ ช้ B = ตวั แปรที่เก็บความยาวของสามเหล่ยี มมมุ ฉาก H = ตวั แปรทเี่ กบ็ ความสงู ของสามเหล่ยี มมมุ ฉาก Area = ตวั แปรท่ีเก็บผลลพั ธท์ ีไ่ ดจ้ ากการคานวณตามสตู ร Area = 1/2*B*H หรือ Area = 0.5*B*H 5) การหาขนั้ ตอนวิธีการทางานของโปรแกรม การหาขนั้ ตอนวธิ ีการทางานของ โปรแกรมจะขนึ้ อย่กู บั ลกั ษณะของการแกป้ ัญหา ดงั นนั้ นกั เขยี นโปรแกรมท่ีมีความ ชานาญในระดบั หนงึ่ แลว้ จะสามารถหาขนั้ ตอนวธิ ีการทางานของโปรแกรมไดโ้ ดยไม่ ยาก แต่สาหรบั ผทู้ ่เี ริ่มตน้ ศึกษาการเขยี นโปรแกรม ควรหาขนั้ ตอนวิธีการทางานของ โปรแกรมตามคาแนะนาโดยเรยี งตามลาดบั ดงั นี้ ขนั้ ตอนวิธีการทางานของโปรแกรมทีแ่ นะนา
5.1) เร่ิมตน้ ทางาน 5.2) กาหนดค่าเริ่มตน้ ใหก้ บั ตวั แปร 5.3) พมิ พห์ วั รายงาน (ถา้ มีรายงาน) 5.4) รบั ขอ้ มลู เขา้ ทีละเรคอรด์ 5.5) ตรวจสอบขอ้ มลู ว่าเป็นชดุ สดุ ทา้ ยหรอื ไม่ 5.5.1 ถา้ เป็นขอ้ มลู ชดุ สดุ ทา้ ย ใหไ้ ปทางานขอ้ 5.11 5.5.2 ถา้ ไม่ใชข่ อ้ มลู ชดุ สดุ ทา้ ย ใหท้ างานขอ้ ตอ่ มา (ขอ้ 5.6) 5.6) คานวณผลลพั ธ์ 5.7) เปรียบเทียบผลลพั ธ์ (ถา้ มี) 5.8) เพ่มิ คา่ ตวั แปรสะสม (ถา้ มี) 5.9) พิมพค์ ่าผลลพั ธท์ ีละเรคอรด์ 5.10) ยอ้ นกลบั ไปทางานขอ้ 5.4 5.11) พมิ พส์ รุป (ถา้ มี) 5.12) จบการทางาน ทงั้ นกี้ ารวเิ คราะหง์ านเพื่อแกป้ ัญหาแตล่ ะอยา่ งอาจมีบางขนั้ ตอนแตกตา่ งกนั ไป ดงั นนั้ คาแนะนาขา้ งตน้ จงึ เป็นเพยี งแนวทางของการหาขนั้ ตอนวธิ ีการทางานของ โปรแกรมเท่านนั้ ซึง่ เวลาใชง้ านจรงิ ผวู้ ิเคราะหง์ านตอ้ งประยกุ ตใ์ หเ้ ขา้ กบั ปัญหาท่ี ตอ้ งการแกไ้ ขต่อไป
เพื่อความเขา้ ใจเก่ยี วกบั ขนั้ ตอนวิธีการวเิ คราะหง์ านมากยงิ่ ขนึ้ ใหศ้ ึกษา จากตวั อย่างการวิเคราะหง์ านดงั ตอ่ ไปนี้ ตวั อยา่ งที่ 1.2 จงเขียนวเิ คราะหง์ าน เพอ่ื เขยี นโปรแกรมคานวณ พนื้ ท่ี ส่เี หลี่ยมผืนผา้ จานวน 1 รูป โดยทผ่ี ใู้ ชโ้ ปรแกรม จะตอ้ งปอ้ นความกวา้ ง และความ ยาวของส่เี หล่ยี มผืนผา้ เขา้ ไปในโปรแกรม วธิ ีทา ขนั้ ตอนการวเิ คราะหง์ านทงั้ 5 ขนั้ ตอน สามารถแสดงไดด้ งั นี้ 1) วตั ถปุ ระสงคข์ องการเขียนโปรแกรม เพื่อคานวณพนื้ ท่ีสเ่ี หลีย่ มผนื ผา้ จานวน 1 รูป 2) รูปแบบผลลพั ธท์ ต่ี อ้ งการ พิมพผ์ ลลพั ธอ์ อกทางจอภาพ ดงั นี้ 3) ขอ้ มลู นาเขา้ 3.1) สตู รคานวณพืน้ ทีส่ เ่ี หล่ียมผืนผา้ Area = Width*Length 3.2) รบั คา่ ความกวา้ งและความยาวของส่ีเหลีย่ มผืนผา้ ผา่ นทาง คยี บ์ อรด์ 4) ตวั แปรท่ตี งั้ ขนึ้ เพอื่ ใชใ้ นโปรแกรม Width = ตวั แปรท่ใี ชเ้ ก็บความกวา้ งของสเ่ี หล่ียมผืนผา้ Length = ตวั แปรทีใ่ ชเ้ กบ็ ความยาวของสีเ่ หล่ยี มผนื ผา้
Area = ตวั แปรท่ีใชเ้ ก็บพนื้ ที่ของสเ่ี หลี่ยมผนื ผา้ โดยคานวณไดจ้ ากสตู ร Area = Width*Length 5) ขนั้ ตอนวิธีการทางานของโปรแกรมมีดงั นี้ 5.1) เรม่ิ ตน้ ทางาน 5.2) รบั ขอ้ มลู ค่าความยาวและความกวา้ งของส่ีเหลีย่ มผนื ผา้ ผ่าน ทางคยี บ์ อรด์ 5.3) คานวณพนื้ ทส่ี ี่เหลยี่ มผืนผา้ ตามสตู ร Area = Width*Length 5.4) พิมพค์ ่าความยาว ความกวา้ งและพนื้ ที่สเ่ี หลย่ี มผืนผา้ ออกทาง จอภาพ 5.5) จบการทางาน บทท่ี 3 การเขียนผังงาน และรหัสเทยี ม ผังงาน
สญั ลักษณผ์ ังงานการเขียนโปรแกรม หลกั การเขียนผงั งานโปรแกรม
รหสั เทยี ม รหสั เทยี ม หรอื ซูโดโคด้ (Pseudo Code) เป็นคาส่งั ทจ่ี าลองความคดิ เป็นลาดบั ขนั้ ตอนโดยใชส้ ญั ลกั ษณเ์ ป็น ประโยค ภาษาองั กฤษ ซ่ึงซูโดโคด้ ไมใ่ ช่ภาษาโปรแกรมทางคอมพิวเตอรจ์ ึงไม่ สามารถนาไป ประมวลผลได้ คอื ไมส่ ามารถส่งั ใหค้ อมพิวเตอรท์ างานตามคาส่งั แตเ่ ป็นการเขยี น จาลองคาส่งั จรงิ แบบย่อๆ ตามอลั กอรทิ ึมของโปรแกรมระบบ เพอื่ นาไปพฒั นาเป็น การเขียนโปรแกรมภาษาคอมพิวเตอรไ์ ด้
รหสั เทยี ม (Pseudocode) คือ การเขยี นโปรแกรมในรูปแบบภาษาองั กฤษท่มี ีขนั้ ตอน และรูปแบบแน่นอนกะทดั รดั และมองดคู ลา้ ยภาษาระดบั สงู ทใ่ี ชก้ บั เครอ่ื ง คอมพิวเตอรซ์ ึ่งไม่เจาะจงภาษาใดภาษาหนึง่ ประโยชนข์ องซูโดโคด้ • เป็นเครื่องมอื ในการกาหนดโครงรา่ งกระบวนการทางานของการเขียน โปรแกรมแต่ละโปรแกรม • เป็นตน้ แบบในการทบทวน ปรบั ปรุงแกไ้ ข และพัฒนาโปรแกรมของ โปรแกรมเมอร์ และนกั วเิ คราะหร์ ะบบ • เป็นตวั กาหนดงานเขียนโปรแกรม เพอ่ื ใหโ้ ปรแกรมเมอรน์ าไปพฒั นาเป็น โปรแกรมคอมพวิ เตอร์ เพื่อส่งั ให้ คอมพวิ เตอรท์ างานตามกระบวนการทไ่ี ด้ จาลองกระบวนการจริงไวใ้ นซูโดโคด้ วิธีการเขยี นซโู ดโคด้ • ประโยคคาส่งั (Statement) จะอยใู นรูปแบบของภาษาองั กฤษอยา่ งงา่ ย • ในหนง่ึ บรรทดั ใหเ้ ขยี นประโยคคาส่งั เพยี งคาส่งั เดยี ว • ควรใชย้ ่อหนา้ เพอื่ แยกคาเฉพาะ (Keywords) ไดช้ ดั เจน รวมถงึ จดั โครงสรา้ งการควบคมุ ใหเ้ ป็นสดั ส่วน ซง่ึ ชว่ ยใหอ้ า่ นโคด้ ไดง้ ่าย • แตล่ ะประโยคคาส่งั ใหเ้ ขียนลาดบั จากบนลงลาง โดยมที างเขา้ เพยี งทาง เดียว และมที างออกทางเดียวเท่านน้ั • กลมุ่ ของประโยคคาส่งั ตา่ งๆ อาจจดั รวมกล่มุ เขา้ ดว้ ยกนั ในรูปแบบของ โมดลู แตต่ อ้ งมกี ารกาหนดช่่อื ของโมดลู ดว้ ย เพ่ือใหส้ ามารถเรยี กใชง้ านโมดลู นนั้ ได้
ตวั อยา่ งการเขยี นรหสั เทยี ม Pseudo Code Algorithm Problem_1 Variables : mLoop, Sum, testScore, average Begin Input mLoop Sum = 0 For I = 1 to mLoop Input testScore Sum = Sum + testScore Next average = Sum / mLoop Print average End Problem_1 รูปแบบการเขียน Pseudo Code 1. การกาหนดคา่ และการคานวณ name = expression name คอื ชอ่ื ตวั แปรทใ่ี ชส้ าหรบั เกบ็ ค่า
expression คือ ค่าขอ้ มลู หรือนิพจน์ ตวั อยา่ ง salary = 1000 overTime = 2500 tax = 125 Income = salary + overTime - tag 2. การอา่ น/รับข้อมลู การอา่ นขอ้ มลู สามารถใชค้ าส่งั READ, INPUT หรอื GET ได้ โดย Read variables_1, variables_2, variables_3 Input variables_1 ,variables_2, variables_3 Get variables_1 ,variables_2, variables_3 READ ใชส้ าหรบั การอ่านค่าทมี่ อี ย่แู ลว้ มาเกบ็ ไวใ้ นตวั แปร เช่น การอ่าน ขอ้ มลู จากไฟล์ โดยจะทางานรว่ มกบั OPEN (การเปิดไฟล)์ INPUT และ GET ใชส้ าำาหรบั การรบั คา่ ขอ้ มลู ผ่านทางแป้นพิมพ์ Variable คือ ตวั แปรที่ใชเ้ กบ็ ขอ้ มลู ท่ีอ่านหรอื รบั เขา้ มา ซึ่งสามารถกาหนด ได้ ตามจานวนตวั แปรท่ีตอ้ งการ โดยใชเ้ คร่อื งหมาย “,” ค่นั ระหว่างช่อื ตวั แปร ตวั อยา่ ง Input a, b, c Answer = a + b + c
Get current_date expire_date = current_date + 120 Open student_file Read Id, Name, Address, Sex 3. การแสดงผลขอ้ มลู การแสดงผลขอ้ มลู สามารถใชค้ าส่งั Print , Prompt, Write print variables_1, variables_2, variables_3 prompt variables_1, variables_2, variables_3 write variables_1, variables_2, variables_3 PRINT และ PROMPT ใชส้ าหรบั การพมิ พค์ า่ ขอ้ มลู หรอื ขอ้ ความ WRITE ใชส้ าหรบั การบนั ทึกขอ้ มลู ลงในแฟม้ ขอ้ มลู ตวั อย่าง Prompt \" Enter 3 Value ==> \" Input Value1 , Value2 , Value3 Sum = Value1 + Value2 + Value3 Print Sum Open Student _file Input Id, Name, Address, Sex
Write Id, Name, Address, Sex 4. การกาหนดเงอ่ื นไข If < condition > Then Activity 1 Else Activity 2 Endif <condition> คอื เง่ือนไขทก่ี าหนด ซ่งึ หากเงอ่ื นไขเป็นจริง จะทากจิ กรรม หลงั THEN (activity1) แตถ่ า้ เงอื่ นไขเป็นเทจ็ กจ็ ะทากจิ กรรมหลงั ELSE (activity2) ตวั อย่าง IF sex = “M” THEN male = male + 1 ELSE female = female + 1 ENDIF IF score >= 80 grade = “A” ELSEIF score >= 70
grade = “B” ELSEIF score >= 60 grade = “C” ELSEIF score >= 50 grade = “D” ELSE grade = “F” ENDIF 5. ในกรณีท่มี ีหลายเงอ่ื นไข การใช้ IF อาจทาใหต้ รวจสอบโปรแกรมไดย้ าก สามารถใชค้ าส่งั CASE …. END CASE แทนได้ ตวั อย่าง CASE score OF >= 80: grade = “A” >= 70: grade = “B” >= 60: grade = “C” < 60 : grade = “F” ENDCASE
6. การทางานเป็ นรอบ (Loop) การทางานเป็นรอบดว้ ยลปู WHILE … ENDWHILE WHILE<condition> activity1 activity2 activity3 ENDWHILE การทางานของลปู WHILE จะมีการตรวจสอบเงอื่ นไขกอ่ น โดยหากเง่อื นไข เป็นจรงิ จะทากิจกรรมภายในลปู ซา้ ไปเรือ่ ยๆ จนกระท่งั เงื่อนไขเป็นเท็จ กจ็ ะออกจาก ลปู แต่หากเง่ือนไขทต่ี รวจสอบครงั้ แรกเป็นเทจ็ ก็จะไม่มีการทากจิ กรรมภายในลปู เลย ตวั อยา่ ง num = 1 WHILE num <= 20 PRINT num num = num + 1 ENDWHILE PRINT “STOP RUN” 7. การทางานเป็ นรอบ (Loop) การทางานเป็นรอบดว้ ยลปู DO … UNTIL
DO activity1 activity2 activity3 UNTIL <condition> การทางานของลปู DO … UNTIL จะทากจิ กรรมภายในลปู กอ่ นหนง่ึ รอบ จากนนั้ จะทาการตรวจเงื่อนไข โดยจะวนซา้ ไปเร่ือยๆ จนกว่าเง่ือนไขจะเป็นจรงิ จงึ หลดุ ออกจากลปู และถงึ แมเ้ ง่ือนไขทีต่ รวจสอบเป็นจริงตงั้ แต่แรก แต่ลปู DO…UNTIL กจ็ ะมีการทากิจกรรมภายในลปู อยา่ งนอ้ ยหนึ่งรอบเสมอ ตวั อยา่ ง num = 0 DO PRINT “HELLO…” num = num + 1 UNTIL num > 20 8. การทางานเป็ นรอบ (Loop) การทางานเป็นรอบดว้ ยลปู FOR … NEXT
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125