หนว่ ยท่ี 1 หลกั การเขยี นโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวิท เอกสารประกอบการเรียนหน่วยที่ 1 หลกั การเขียนโปรแกรมบนมาตรฐานเปิด รายวิชา การเขียนโปรแกรมบนมาตรฐานเปดิ รหัสวชิ า 2304 - 2007 ระดบั ปวช. 2/1-4 คอมพวิ เตอรธ์ ุรกิจ ประเภทวิชา พาณิชยกรรม โดย นางสาวชูศรี เกลยี วสกลุ โกวิท
หนว่ ยที่ 1 หลกั การเขยี นโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวิท1.1 ความร้ทู วั่ ไปเกี่ยวกับคอมพิวเตอร์ ในการพัฒนาโปรแกรม ผู้เขียนควรมีความรูพ้ น้ื ฐานเกี่ยวกับคอมพิวเตอร์ ภาษาคอมพิวเตอร์ และขน้ั ตอนการพัฒนาโปรแกรม 1.1.1 ความหมายของคอมพวิ เตอร์ คอมพิวเตอร์ คืออุปกรณอ์ เิ ล็กทรอนิกส์ทส่ี ามารถรับข้อมลู เข้ามาเกบ็ ในหน่วยความจาขนาดใหญ่ และทาการประมวลผลตามวตั ถุประสงคท์ ีผ่ ใู้ ช้ต้องการ โดยต้องมีความสามารถในการทางานได้ด้วยความเร็วสูง สามารถเกบ็ บนั ทกึ ข้อมูลและคาส่ังตา่ ง ๆ และสามารถทางานอตั โนมัตติ ามคาสั่งงานที่ได้โปรแกรมไว้ 1.1.2 องคป์ ระกอบของคอมพิวเตอร์ ระบบคอมพิวเตอรห์ นง่ึ ๆ ควรมอี งค์ประกอบดังน้ี 1.1.2.1 ฮารด์ แวร์ (Hardware) คอื อปุ กรณ์ หรอื ช้ินสว่ นของเคร่ืองคอมพิวเตอร์ ที่มีวงจร ไฟฟา้ อยู่ภายในเป็นสว่ นใหญ่ สามารถจับตอ้ งได้ เชน่ กลอ่ งซีพียู (Case) จอภาพ (Monitor) แป้นพิมพ์ (Keyboard)สแกนเนอร์ (Scanner) เมนบอร์ด (Mainboard) ฮาร์ดดิสก์ (Hard disk) เครือ่ งพิมพ์ (Printer) เปน็ ตน้ 1.1.2.2 ซอฟต์แวร์ (Software) คอื โปรแกรมหรือชุดคาส่ังทส่ี ง่ั ใหฮ้ าร์ดแวร์ (อปุ กรณค์ อมพิวเตอร์)ทางานรวมไปถงึ การควบคมุ การทางานของอุปกรณแ์ วดลอ้ มตา่ ง ๆ ซึ่งชุดคาส่งั ดังกล่าวเรียกวา่ โปรแกรม (Program)ซึ่งสามารถแบ่งเป็นกลมุ่ ใหญ่ ๆ ได้ 2 ประเภท ได้แก่ 1.) ซอฟตแ์ วร์ระบบ (System Software) ประกอบดว้ ยโปรแกรมต่าง ๆ ท่ชี ว่ ยให้คอมพวิ เตอร์สามารถทางานร่วมกันได้อย่างมีประสิทธภิ าพประกอบดว้ ย - ระบบปฏิบัตกิ ารหรือ OS (Operating System) เปน็ โปรแกรมที่เป็นตัวกลางระหว่างฮารด์ แวรแ์ ละซอฟตแ์ วรอ์ น่ื ๆ ซ่ึงเปน็ โปรแกรมที่บริษทั ผผู้ ลิตเครื่องคอมพวิ เตอร์จดั ทาข้นึ เพอ่ื ควบคุมข้ันตอนการทางานของเครื่องคอมพวิ เตอรแ์ ละอุปกรณป์ ระกอบ อน่ื ๆ - โปรแกรมอรรถประโยชน์ (Utility) เปน็ โปรแกรมที่ใชท้ าหนา้ ทใี่ นการดูแล อานวยความสะดวกให้กับผใู้ ช้งานคอมพิวเตอร์ บารงุ รักษาและเพม่ิ ประสทิ ธิภาพการทางานของคอมพิวเตอร์ เชน่ โปรแกรมตรวจสอบความเร็วของคอมพิวเตอร์, โปรแกรมตรวจสอบตัวเครอื่ ง, โปรแกรมตรวจหาไวรัส เปน็ ตน้ - โปรแกรมแปลภาษาคอมพวิ เตอร์ (Language Translator) เปน็ โปรแกรมทเ่ี ขียนข้ึนเพื่อทาหน้าที่ในการแปลคาส่ังท่เี ขยี นด้วยภาษาคอมพิวเตอร์ ภาษาใดภาษาหนึง่ ใหเ้ ป็นภาษาเคร่ืองเพอ่ื ใหเ้ ครอื่ งคอมพิวเตอรเ์ ขา้ ใจ เช่น Compiler ของภาษาต่าง ๆ 2.) ซอฟตแ์ วร์ประยุกต์ (Application Software) เปน็ โปรแกรมทเี่ ขยี นข้นึ เพอ่ื ใชท้ างานด้านใดด้านหน่งึ เฉพาะอยา่ ง โดยมกี ารแบง่ กลมุ่ ได้แก่ - โปรแกรมประยกุ ต์ (User’s written program) เปน็ โปรแกรมที่มนุษยเ์ ขยี นข้ึน เพ่ือใช้งานเฉพาะบางอยา่ ง เช่น โปรแกรมควบคุมสินค้าคงคลัง (Inventory Control) โปรแกรมเงินเดอื น (Payroll)โปรแกรมจัดระบบบัญชี (Ledder) โปรแกรมระบบการบรหิ ารงานโรงเรียน เปน็ ตน้
หนว่ ยที่ 1 หลกั การเขียนโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวทิ - โปรแกรมสาเรจ็ รปู (Package) เป็นโปรแกรมท่ีมนุษย์เขยี นขึน้ เพ่ือใช้งานและไดร้ บั ความนยิ มอย่างแพรห่ ลาย สามารถใชง้ านได้ทว่ั ๆ ไป ซงึ่ อาจจัดแบ่งกล่มุ ได้แก่ - โปรแกรมสาเร็จรูปสาหรับงานระบบฐานข้อมูล (DataBase Management) เป็นโปรแกรมทช่ี ว่ ยในการจัดเก็บขอ้ มูลตา่ ง ๆ ใหเ้ ปน็ หมวดหมู่ และงา่ ยต่อการทีจ่ ะนาออกมาใช้งานไดใ้ นภายหลงันอกจากน้ยี ังชว่ ยจดั การเก่ยี วกับระบบฐานข้อมลู ต่าง ๆ ตวั อย่างของโปรแกรมจัดระบบฐานขอ้ มลู ทีม่ ใี ชก้ นั อยู่ เช่นdBASE III+, FOX Pro, Microsoft Access เปน็ ตน้ - โปรแกรมสาเรจ็ รปู สาหรับงานคานวณ (Calculation Software) เปน็ โปรแกรมสาเรจ็ รปู ทีใ่ ชใ้ นการคานวณและพิมพผ์ ลลัพธต์ ่าง ๆ ออกมาในลักษณะของตารางและกราฟตา่ ง ๆ ตามความต้องการของผ้ใู ช้ การใชโ้ ปรแกรมประเภทนผ้ี ้ใู ช้จะมีความสะดวกมากเหมือนกาลงั คานวณตัวเลขต่าง ๆ ในกระดาษทาการ(Spread Sheet) ซึง่ จะประกอบดว้ ยแถวนอนและแถวแนวต้งั ปรากฏในหน้าจอ ทาให้สามารถจดั คอลัมน์และจัดแถวได้อยา่ งสะดวกและรวดเรว็ นอกจากนย้ี ังหาผลรวมของคอลัมน์และแถวหรือนาค่าต่าง ๆ ไปคานวณเพ่อื หาผลลพั ธ์เป็นค่าของอีกคอลมั นห์ นึ่งไดเ้ ช่นเดยี วกัน โปรแกรมสาเร็จรูปประเภทน้ไี ด้แก่ LOTUS 1-2-3, Microsoft Excelเปน็ ตน้ - โปรแกรมสาเรจ็ รปู สาหรบั จดั พิมพ์รายงาน (Word Processing Software) เป็นโปรแกรมทีใ่ ชใ้ นการจัดทารายงานและพิมพ์จดหมายหรือหนังสอื ได้อย่างรวดเร็ว เช่น ใช้ในการแกไ้ ขขอ้ ความบนจอภาพให้ถูกต้องก่อนท่ีจะส่ังพิมพ์ ชว่ ยจดั ชอ่ งไฟระหวา่ งบรรทัด ช่วยในการตดั คาเพือ่ ขึ้นบรรทัดใหม่หรอื ชว่ ยในการแทรกข้อความเพิ่มเตมิ จากสิ่งทตี่ ้องการพิมพ์แลว้ เครอื่ งจะทาการจัดเรยี งบรรทดั และย่อหน้าใหใ้ หม่โดยอตั โนมตั ินอกจากนย้ี ังสามารถสงั่ พิมพ์ได้หลายสาเนา ตัวอยา่ งของโปรแกรมประเภทน้ีได้แก่Microsoft Word ซอฟตแ์ วรภ์ าษาเปน็ ซอฟต์แวรส์ ว่ นหน่ึงท่ใี ช้ควบคมุ การทางานของคอมพวิ เตอรใ์ หด้ าเนนิ การตามแนวความคิดที่ไดก้ าหนดไวล้ ่วงหน้าแลว้ คอมพิวเตอร์ต้องทางานตามโปรแกรมเท่านัน้ ไมส่ ามารถทางานที่นอกเหนือจากทกี่ าหนดไว้ในโปรแกรม 1.1.2.3 บุคลากร (People ware) คอื บคุ คลในงานดา้ นคอมพวิ เตอร์ ซ่ึงมคี วามรู้เก่ยี วกบั คอมพวิ เตอร์สามารถใชง้ าน ส่งั งานคอมพวิ เตอรใ์ หท้ างานตามทีต่ ้องการได้ แบง่ ได้ 4 กลมุ่ คอื 1.) ผจู้ ดั การระบบ (System manager) เป็นผู้วางนโยบายการใช้คอมพวิ เตอร์ใหเ้ ป็นไปตามเปา้ หมาย 2.) นักวิเคราะหร์ ะบบ (System Analyst) ผทู้ ศ่ี ึกษาระบบงานเดิมหรอื งานใหม่และทาการวเิ คราะหค์ วามเหมาะสม ความเปน็ ไปได้ เพ่ือใหโ้ ปรแกรมเมอรเ์ ขียนโปรแกรมให้กับระบบงานได้ 3.) โปรแกรมเมอร์ (Programmer) คือ ผูเ้ ขยี นโปรแกรมส่งั งานเครอ่ื งคอมพวิ เตอรเ์ พ่ือให้ทางานตามความต้องการของผใู้ ช้ 4.) ผใู้ ช้ (User) คอื ผูใ้ ชง้ านคอมพวิ เตอรท์ ั่วไป ซึ่งต้องเรียนร้วู ธิ ีการใช้เครอ่ื ง และวิธกี ารใช้งานโปรแกรม เพื่อให้โปรแกรมที่มีอยสู่ ามารถทางานได้ตามที่ต้องการ
หนว่ ยท่ี 1 หลกั การเขยี นโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวทิ1.2 ระดบั ของภาษาคอมพิวเตอร์ จากภาษาคอมพิวเตอรทไ่ี ดยกตวั อยางไวขางตน เปนเพยี งสวนหน่ึงทม่ี กี ารใชงานอยูในปจจบุ ันเทานั้น ซึ่งจากการยกตัวอยางของภาษาคอมพิวเตอรจะสังเกตไดวาแตละภาษาคอมพิวเตอรจะมีหนาที่การทางานที่มีความโดดเดนแตกตาง ๆ กนั ไป ทั้งน้ียังมสี ิ่งหนึ่งทีผ่ ูพฒั นาโปรแกรมควรทราบคือ ระดับของภาษาคอมพิวเตอร โดยระดับของภาษาคอมพิวเตอรสามารถแบงออกเปนกวาง ๆ ไดเปน 3 ระดบั ดงั น้ี 1.2.1 ภาษาระดบั ต่า (Low level language) เป็นภาษาที่มนษุ ย์ทาความเข้าใจได้ยาก ส่วนใหญ่ต้องทาความเข้าใจเกย่ี วกับสถาปัตยกรรมคอมพิวเตอร์และฮาร์ดแวร์เป็นอย่างดี การเขียนโปรแกรมจะมีคาสั่งยาวทาให้เกิดข้อผิดพลาดได้ง่ายเมื่อคาสั่งเข้าสู่เครื่องคอมพิวเตอร์จะสามารถทางานได้ทันทีและสามารถสร้างคาส่ังใหม่ ๆ ได้โดยที่ภาษาอื่นทาไม่ได้และต้องการหน่วยความจาน้อย ตัวอยางของภาษาระดับต่าคือ ภาษาเครื่อง(Machine language), ภาษาแอสเซมบลี(Assembly language) 1.2.2 ภาษาระดับกลาง (Medium level language) เป็นภาษาทม่ี ลี กั ษณะผสมกนั ระหว่างภาษาระดับสงู กับภาษาระดับต่า มลี กั ษณะของคาสั่งคลา้ ยกับประโยคทางภาษาอังกฤษ สามารถทางานได้เรว็ และใชเ้ วลาในการศึกษาและเขียนโปรแกรมน้อยกว่าภาษาระดบั ต่าการสั่งงานใหค้ อมพิวเตอร์ทางานตอ้ งมีการแปลความหมายใหเ้ ป็นภาษาเคร่ืองก่อนโดยใช้ตัวแปลภาษาที่เรยี กวา่คอมไพเลอร์ (Compiler) ภาษาระดบั กลางจงึ เป็นทีน่ ยิ มใช้กนั แพรห่ ลาย ตัวอย่างของภาษาระดับกลางไดแ้ ก่ ภาษาซีเปน็ ตน้ 1.2.3 ภาษาระดับสูง (High level language) ภาษาระดบั สงู เปนภาษาท่ีทาความเขาใจไดไมยากสามารถเขาใจคาส่งั โปรแกรมไดงาย โดยคาสงั่ การทางานมีลกั ษณะเหมือนภาษาอังกฤษ สามารถสื่อความหมายในการเขยี นโปรแกรมหรือคาสัง่ ไดงายและสะดวกตอการใชงานหรอื แกไขคาสั่งการของโปรแกรม ปจจุบันเปนท่นี ิยมอยางมากในการพัฒนาโปรแกรมคอมพิวเตอร ตวั อยางของภาษาระดับสูง เชน ภาษาปาสคาล ภาษาเบสกิ ภาษาจาวา ภาษา HTML ภาษา PHP เปนตน1.3 ยคุ ของภาษาคอมพิวเตอร์ 1.3.1 ยุคท่ี 1 ภาษาเครื่อง (Machine Language) ภาษาเครื่องเปนภาษาของเคร่ืองคอมพวิ เตอร โดยเครื่องคอมพิวเตอรจะสามารถทางานได้ ตองเปนภาษาเครื่องเทานัน้ ในงานคอมพิวเตอรทวั่ ไปจะไมเขยี นเปนภาษาเคร่ือง เพราะเครื่องคอมพิวเตอรแตละเครอ่ื งจะมลี กั ษณะแตกตางกันไป ภาษาเครื่องจะใชสาหรับผูทท่ี าหนาที่ทางานเกย่ี วกบั ระบบชุดคาสงั่ เวลาเขียนตองเขยี นในรปู ของเลขฐานสอง เมื่อเขยี นเสรจ็ ตองคดิ กลับมา เปนตวั เลขฐานสิบ หรือเปนตวั อกั ษร หรอื พยญั ชนะตาง ๆ ทจ่ี ะให
หนว่ ยท่ี 1 หลกั การเขยี นโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวิทเคร่ืองรับกลบั เขาไปเปนเลขฐานสอง พรอมกับประกอบเปนคาสงั่ และรวมกนั เปนชดุ คาส่ัง การเขียนชดุ คาสั่งภาษาเครอื่ งไมจาเปน ตองใชตวั แปลชดุ คาสั่งหรือชดุ คาสั่งควบคมุ ในชวงการทางาน รปู ที่ 1.1 ตวั อยางชดุ คาสัง่ ภาษาเครื่อง (ทีม่ า http://disinfo.s3.amazonaws.com/wp-content/uploads/2013/03/binary-code.jpg) 1.3.2 ยคุ ที่ 2 ภาษาแอสเซมบลี (Assembly language) ภาษาแอสเซมบลเี ปน็ ภาษาท่ีพฒั นาต่อมาจากภาษาเครื่อง ภาษาแอสเซมบลีมีความใกล้เคียงกบัภาษาเครอ่ื ง คอื 1 คาสั่งของภาษาแอสเซมบลีจะเท่ากบั 1 คาสง่ั ของภาษาเคร่ือง โดยจะเขยี นเป็นตัวอกั ษรภาษาองั กฤษเพื่อใช้แทนคาสั่งภาษาเครือ่ ง ทาใหน้ ักเขยี นโปรแกรมสามารถเขียนโปรแกรมไดง้ า่ ยขึน้ภาษาแอสเซมบลจี ะมีตวั แปลภาษาที่เรียกว่า แอสเซมเบลอ (Assembler) เพ่อื แปลภาษาแอสเซมบลใี ห้เป็นภาษาเคร่อื งทาใหส้ ามารถสงั่ คอมพวิ เตอร์ให้ทางานได้ รูปท่ี 1.2 ตวั อยางชดุ คาสั่งภาษาแอสแซมบลี (ทมี่ า http://www.johnloomis.org/ece314/notes/carch/img357.gif) ในยคุ ที่ 1 และยคุ ที่ 2 คาส่ังที่เขยี นด้วยภาษาโปรแกรมคอมพิวเตอร์จะต้องใชเ้ ทคนิค การเขยี นโปรแกรมสูง เพราะมีความยืดหยุ่นในการเขยี นน้อยมาก และมคี วามยากในการเขยี นคาส่งั แตก่ ารเข้าถึงการทางานของเคร่อื งคอมพิวเตอรไ์ ด้โดยตรงและมีความรวดเรว็ กวา่ การใช้ภาษาอนื่ ๆ
หนว่ ยท่ี 1 หลกั การเขียนโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวทิ 1.3.3 ยคุ ที่ 3 ภาษาระดบั สูง (High-level language) ภาษาระดบั สงู เป็นภาษาทสี่ รา้ งขึ้นเพ่ืออานวยความสะดวกในการเขยี นโปรแกรม ลกั ษณะของคาสง่ั จะประกอบด้วยคาต่าง ๆ ในภาษาอังกฤษทาใหส้ ามารถเขา้ ใจความหมายได้ทันที ผ้เู ขยี นโปรแกรมจึงเขยี นภาษาระดบัสงู ได้งา่ ยกว่าภาษาเคร่ืองและภาษาแอสเซมบลี การเขียนโปรแกรมด้วยภาษาระดบั สงู จะตอ้ งใชต้ ัวแปลภาษาที่เรยี กวา่ คอมไพเลอร์ (Compiler) เพ่อื แปลภาษาระดบั สูงโดยการตรวจสอบไวยากรณข์ องภาษาระดับสงู ไปเปน็ภาษาเครอื่ ง ตัวอยา่ งของภาษาระดบั สูงมีมากมายเช่น 1.3.3.1 ภาษาฟอร์แทน (Fortran : Formula Translator) เป็นภาษาระดับสูง ซ่ึงถือว่าเป็นภาษาแรกของภาษาระดับสูงนิยมใช้สาหรับงานท่ีมีการคานวณมาก ๆ เช่น งานทางด้านคณิตศาสตร์ วิทยาศาสตร์ และวิศวกรรมศาสตร์ 1.3.3.2 ภาษาปาสคาล (Pascal language) เป็นภาษาท่ีสรางข้ึน เพ่ือใชพัฒนาโปรแกรมคอมพิวเตอรใหเปนระบบ โดยจะชวยใหเขียนโปรแกรมไดรวดเร็วเปนระบบมากย่ิงข้ึนและสามารถแกไขปรับปรุงไดงาย ทาให้งายตอการเขาใจเพราะมีรูปแบบเปนภาษาอังกฤษ และในการประมวลผลขอมูลสามารถออกแบบคาส่ังใหมีคุณสมบัติที่แตกตางกันไดหลายชนิด ทาใหการทางานของโปรแกรมมีประสิทธิภาพ สามารถนามาพฒั นาโปรแกรมคอมพิวเตอรในงานดานตาง ๆ ได คือ งานดานธุรกิจ งานด้านคณิตศา4สตร หรอื งานวทิ ยาศาสตร เปนตน รูปท่ี 1.3 ตวั อยางชดุ คาสง่ั ภาษาปาสคาล (ท่ีมา http://www.cathedron.com/Content/Afbeeldingen/Cat_Pascal_Script.gif) 1.3.3.3 ภาษาซี (C language) เป็นภาษาที่มีลักษณะเปนภาษาโครงสราง สามารถประยุกตใชไดกับงานในลักษณะตาง ๆ ไดหลากหลาย เชน ใชพัฒนางานดานโปรแกรมคอมพิวเตอร หรอื นาไปใชพฒั นาโปรแกรมทางดานไมโครคอนโทรลเลอร เปนตน นอกจากนั้นยังเปนภาษาท่ีใกลเคียงกับภาษามนุษย คือมีโครงสรางภาษาเปนภาษาอังกฤษ โดยนักพัฒนาโปรแกรมจะสามารถเขยี นโปรแกรมไดอยางคลองตวั โดยไมมีขอจากัดในการวางตาแหนงฟงกช่ันในโปรแกรม ภาษาซีจึงเปนภาษาที่งายตอการเขาใจและเปนภาษาที่นิยมนาไปใชงาน ในการพัฒนาโปรแกรมตาง ๆการสรางโปรแกรมภาษาซีจะเร่ิมจากการเขียนโปรแกรมตนกาเนิดแลวนาไปทาการแปลดวยตัวแปลภาษาซี เกิดเปนโปรแกรมประสงค หลังจากน้ันจึงนาโปรแกรมประสงคไปทาการเชื่อมโยงเพ่ือใหเกิดเปนโปรแกรมท่ีสามารถทางานไดอยางรวดเร็ว ดังนั้นภาษาซีอาจจะถือไดวาเปนภาษาหนึ่งที่ผูเร่ิมตนในการพัฒนาโปรแกรมคอมพิวเตอรควรเรียนรู
หนว่ ยที่ 1 หลกั การเขียนโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวทิเปนพ้ืนฐานหลักในการเขียนโปรแกรมขั้นพ้ืนฐาน ท้ังน้ีภาษาซีจะเปนภาษาโครงสรางพ้ืนฐานของภาษาอ่ืน ๆ เชนภาษา Java หรือภาษา PHP เปนตน รปู ท่ี 1.4 ตวั อยางชุดคาส่งั ภาษาซี(ทม่ี า http://www.mathworks.com/help/matlab/matlab_external/msvs_breakpoint.gif) 1.3.3.4 ภาษาเบสิค (Basic language) เป็นภาษาระดับสูงและมีโครงสรางท่ีไมซับซอน งายตอการศึกษาและทาความเขาใจ เหมาะสาหรับผูที่เรมิ่ ตนเขียนโปรแกรมเชนเดียวกบั ภาษาซี ภาษาเบสิคใชไดกับคอมพวิ เตอรทุกรุนเปนภาษาท่ีมีความยืดหยุน สามารถแกไขปรับปรุง และพัฒนาโปรแกรมเพื่อนาไปใช้งานไดงายและรวดเรว็ เหมาะสมกับงานท่ีตองการผลลัพธอันรวดเร็ว โดยภาษาเบสิคมีชื่อเรียกตาง ๆ กัน เชน QBASIC, BASICA, GWBASIC ,VISUAL BASIC เปนตน รูปที่ 1.5 ตวั อยางชุดคาสง่ั ภาษาเบสคิ 1.3.3.5 ภาษาจาวา (Java language) ในปจจุบันนี้ถือไดวาเปนภาษาท่ีไดรับความนิยมสูง เน่ืองจากเปนภาษาที่มีความยืดหยุนสูง สามารถเขียนโปรแกรมและใชงานไดบนเครื่องคอมพิวเตอรทุกประเภท และระบบปฏบิ ัติการทกุ รปู แบบ ในชวงแรกท่ีเริ่มมีการนาภาษาจาวามาใชงานจะเปนการใชงานบนเครือ ขายอนิ เทอรเน็ตเปนภาษาที่เนนการทางานบนเวบ็ แตปจจบุ ันสามารถสามารถนามาประยุกตสรางโปรแกรมใชงานท่ัวไปได นอกจากน้ี
หนว่ ยท่ี 1 หลกั การเขียนโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวิทเม่ือเทคโนโลยีของการส่ือสารกาวหนาขึ้น เชน โทรศัพทมือถือ หรือแท็บเล็ต ภาษาจาวาถือเปนภาษาหลักภาษาหนึ่งในการพัฒนาโปรแกรมบนโทรศพั ทมือถือหรือแท็บเลต็ ท้งั นี้ภาษาจาวาจะมีโครงสรางภาษาใกลเคยี งกบั ภาษาซี รปู ที่ 1.6 ตัวอยางชดุ คาสงั่ ภาษาจาวา 1.3.4 ยุคท่ี 4 ภาษาระดับสงู มาก (Very high-level Language) ภาษาระดบั สูงมากเปน็ ภาษาที่ใช้ในการเขียนโปรแกรมด้วยคาสงั่ ส้นั ๆ และง่ายกวา่ ภาษาในยุคก่อน ๆ มีการทางานแบบไม่จาเป็นต้องบอกลาดับของขัน้ ตอนการทางาน (Nonprocedural language) เพยี งบอกวา่ ให้คอมพิวเตอร์ทาอะไรโดยไม่ต้องบอกคอมพิวเตอรว์ ่าสิ่งนนั้ ทาอย่างไร ดังนนั้ จงึ เป็นภาษาโปรแกรมท่เี ขียนงา่ ยตัวอย่างภาษาระดับสงู มากเช่น Report Generators, Query Language, Application Generators และInteractive Database Management System Programs 1.3.5 ยุคท่ี 5 ภาษาธรรมชาติ (Natural language) ภาษาที่ใช้ในยุคนเี้ ปน็ ภาษาทีเ่ ขยี นคาส่ังหรอื สง่ั งานคอมพวิ เตอร์ให้ทางานโดยการใช้ภาษาธรรมชาติตา่ ง ๆเช่น ภาพหรือเสยี ง โดยไมส่ นใจรูปแบบไวยากรณ์หรอื โครงสรา้ งของภาษาเพยี งแต่ผ้ใู ชส้ อบถามคาถามตา่ ง ๆ กับคอมพวิ เตอร์โดยสามารถสอบถามเป็นภาษามนษุ ย์ คอมพิวเตอร์จะพยายามนาคาสงั่ ทเี่ ป็นภาษามนุษย์ทาการแปลแล้วนาไปหาคาตอบที่ผู้ใช้ต้องการได้ทนั ที1.4 ตวั แปลภาษาคอมพิวเตอร์ ในการเขยี นโปรแกรมคอมพวิ เตอรน์ ัน้ จาเปน็ ตอ้ งมีโปรแกรมสาหรบั ทาหนา้ ท่แี ปลคาสงั่ ทเ่ี ขยี นข้นึ ด้วยภาษาคอมพิวเตอร์ภาษาใดภาษาหนง่ึ เรียกว่าโปรแกรมต้นฉบบั หรอื ซอรส์ โคด้ (Source code) เมื่อผู้เขียน ๆโปรแกรมเสร็จแลว้ จาเป็นตอ้ งใชต้ วั แปลภาษาคอมพวิ เตอรเ์ พ่ือตรวจสอบไวยากรณข์ องภาษาวา่ เขียนถูกต้องหรอื ไม่และทดสอบผลลพั ธว์ า่ เปน็ อย่างไร ซ่งึ ภาษาคอมพวิ เตอร์ชนดิ ต่าง ๆ จะมตี ัวแปลของตนเองโดยเฉพาะ ตวั แปลภาษาคอมพวิ เตอร์แบ่งออกเป็น 3 ประเภทคือ 1.4.1 แอสเซมเบลอร์ (Assembler) เปน็ ตวั แปลภาษาระดับตา่ ที่เขียนดว้ ยภาษาสญั ลักษณ์ (Symbolic Language) หรือภาษาแอสเซมบลี(Assembly language) ใหเ้ ปน็ ภาษาเคร่อื ง โดยใช้คาส่งั ภาษาสญั ลักษณ์1 คาสั่ง จะถูกแปลเป็นภาษาเครอ่ื ง 1 คาส่งั
หนว่ ยท่ี 1 หลกั การเขียนโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวทิ 1.4.2 อนิ เทอร์พรีเตอร์ (Interpreter) เปน็ ตวั แปลภาษาคอมพิวเตอรร์ ะดับสงู ให้เปน็ ภาษาเครื่อง โดยใชห้ ลกั การแปลคาสั่งครง้ั ละ 1 คาส่ังให้เป็นภาษาเครอ่ื ง แล้วนาคาส่ังท่ีเปน็ ภาษาเคร่ืองนัน้ ไปทาการประมวลผลและแสดงผลลัพธ์ทันทหี ากไม่พบข้อผิดพลาด ตวั อย่างเชน่ ภาษาเบสิค (Beginners All-purpose Symbolic) เป็นตน้ 1.4.3 คอมไพเลอร์ (Compiler) เป็นตวั แปลภาษาคอมพวิ เตอร์ระดับสงู ให้เป็นภาษาเครอื่ ง โดยทาการแปล (Compile) โปรแกรมต้นฉบบั ทัง้ โปรแกรมแล้วจงึ แสดงผลลพั ธ์ให้ผใู้ หท้ ราบ การแปลภาษาคอมพวิ เตอรจ์ ะแปลคาสัง่ 1 คาสัง่ ในภาษาดบัสูงเป็นภาษาเครื่องมากกว่า 1 คาส่งั ถา้ โปรแกรมมีขอ้ ผิดพลาด เมอื่ ทาการแก้ไขโปรแกรมแล้ว จะตอ้ งนาไปแปลโปรแกรมต้นฉบบั ใหมท่ ้ังโปรแกรม1.5 การประมวลคาส่ังของคอมพิวเตอร์ กลไกการประมวลผลคาสงั่ ของคอมพวิ เตอร์เพื่อให้ได้ผลลัพธ์เป็นข้อมูลหรอื นาเสนอสารสนเทศที่ต้องการจะตอ้ งเก่ียวข้องกับสงิ่ ตอ่ ไปนี้Input Process Output รูปที่ 1.7 กลไกการประมวลผลคาสง่ั ของคอมพิวเตอร์ 1.5.1 การนาข้อมูลสง่ เขา้ เครื่อง (Input) จะมจี านวนมากเทา่ ไร กแ็ ลว้ แต่ความต้องการของแต่ละโปรแกรมน้ัน ๆโดยอาจจะเปน็ ตัวเลขหรือไม่ใชต่ วั เลข โดยมีขนาดความยาวแตกต่างกนั ออกไป เชน่ ข้อมลู เกย่ี วกับการขายอาจจะประกอบด้วย ช่อื ลูกคา้ วนั ที่ มูลค่าของสนิ ค้าทซ่ี อ้ื คาอธิบาย รายการ ฯลฯ 1.5.2 การประมวลผล (Process) คือ การนาเอาข้อมลู ที่ได้มานนั้ มากระทาการบางอย่าง เช่นการคานวณการจดั เรยี ง ฯลฯ เพือ่ ให้ได้ผลตามทีต่ ้องการ หรอื ขอ้ มูลทางธุรกิจส่วนใหญ่ จะเปน็ การปรับปรงุ แฟม้ ข้อมลู จากรายการเปลีย่ นแปลงท่ีเกดิ ขึ้น การกระทาดังกล่าวเรยี กวา่ การ Update แฟม้ ข้อมูล 1.5.3 การนาเสนอข้อมูล (Output) คอื ผลลัพธ์ทีไ่ ด้จากการประมวลผลเพ่ือนาไปใช้ประโยชน์กบั งานหรือองค์กรต่อไป เช่น ผลลพั ธ์ทีไ่ ดจ้ ากการคานวณ การคิดค่าแรง หรือ รายงานตา่ ง ๆ จากท่ีกลา่ วมาจะเห็นไดว้ า่ กลไกการประมวลผลคาส่ังของคอมพิวเตอร์ เปน็ หัวใจสาคัญทีท่ าใหผ้ เู้ รยี นมีความเขา้ ใจการทางานของภาษาคอมพวิ เตอร์
หนว่ ยท่ี 1 หลกั การเขียนโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวิท1.6 ความหมายของซอฟตแ์ วรโ์ อเพนซอร์ซ (open source software - OSS) หมายถึง ประเภทของโปรแกรม ท่ีเปิดเผยคาสัง่ ที่ใช้สร้างโปรแกรมนัน้ ๆ โดยมีจุดมุ่งหมาย ให้คนอื่น ๆ สามารถนาไปแก้ไขปรบั ปรุงเป็นของตัวเองได้ โดยไม่ ผิดกฎหมายลิขสทิ ธ์ิ เปน็ ประเภทหนึง่ ของโปรแกรมคอมพวิ เตอร์ทีส่ ร้างจาก ภาษาคอมพิวเตอร์ต่าง ๆ เพื่อใชง้ านตามวตั ถปุ ระสงค์น้ัน ๆ หรือโดยสรุป Open Source ซอฟตแ์ วร์ มลี ักษณะดังน้ี คือ - ซอฟตแ์ วร์ทเ่ี ปิดเผยหลักการหรอื แหล่งที่มาของเทคโนโลยีของซอฟทแ์ วร์น้ันให้บุคคลภายนอกได้ใช้ ภายใต้เงือ่ นไขบางประการทีเ่ ปดิ โอกาสใหผ้ ้ใู ช้ทาการแกไ้ ข ดัดแปลงและ เผยแพร่โปรแกรมตน้ ฉบบั (source code) โดยจะตอ้ งสามารถอา่ นเข้าใจ และอยใู่ นรูปแบบทส่ี ามารถปรบั ปรุงแก้ไขเพ่ิมเตมิ ได้ ภายใต้เงอ่ื นไขทางขอ้ ตกลงทางกฎหมาย เช่น GPL License หรือ BSDLicense - ผู้ใช้ซอฟตแ์ วร์ Open Source มอี ิสระในการนาไปใ่ช้ นาไปแจกจ่าย และปรับปรุงแก้ไข โดยจะคดิ ค่าใชจ้ ่ายหรอื ไม่ก็ได้ข้ึนอยู่กับเง่ือนไขในการอนญุ าต ตัวอย่างโปรแกรมท่ีเปน็ Open Source ก็อยา่ งเช่น PHP , My SQL, Star Office เปน็ ต้น นอกจากโปรแกรมแล้ว ยงั มรี ะบบปฏบิ ตั ิการ อย่างระบบปฏบิ ัติการลนี ุกซ์ ซ่ึงมวี ตั ถุประสงค์เพ่ือพฒั นามาใช้ทดแทนวินโดวส์ของไมโครซอฟตน์ ่นั เอง1.7 หลักเกณฑ์ โปรแกรมบนมาตรฐานเปิด นยิ ามของซอฟต์แวร์ Open Source องค์กรอิสระ Open Source Initiative (OSI) ไดน้ ิยามซอฟตแ์ วร์โอเพ่นซอร์สไว้ดงั นี้ 1. อนญุ าตให้นาไปเผยแพร่ได้อยา่ งเสรี (Free Redistribution) - ไลเซนตจ์ ะต้องไม่จากดั ในการขาย หรอื แจกจ่ายให้กบั ผู้อื่น โดยไมม่ ีการบังคบั วา่ ต้องจา่ ยค่าธรรมเนียม(Royalty Fee)ให้กบั เจา้ ของซอฟตแ์ วรต์ ้นฉบับ 2. ใหม้ าพร้อมกับซอฟต์แวร์ต้นฉบับ (Source Code) - โปรแกรมตอ้ งให้มาพร้อมกับ Source Code หรอื ถ้าไม่ได้ให้มาพร้อมโปรแกรมจะตอ้ งมีชอ่ งทางท่จี ะทาใหผ้ ใู้ ชส้ ามารถเขา้ ถึง Source Code ได้ โดยไม่มกี ารคิด่คา่ ใชจ้ า่ ยเพ่มิ เติม และ Source Code ทใี่ ห้มาจะต้องอยู่ในรปู แบบทนี่ าไปปรับปรงุ แก้ไขได้ 3. อนุญาตให้สรา้ งซอฟตแ์ วร์ใหม่โดยตอ่ ยอดจากซอฟต์แวร์ต้นฉบบั (Derived Works) - ไลเซนตข์ องซอฟต์แวรต์ ้องอนุญาตให้สามารถนาไปปรบั ปรงุ แก้ไข และสร้างซอฟตแ์ วร์ใหม่ โดยซอฟต์แวรต์ วั ใหม่จะต้องมีไลเซนตเ์ ช่นเดียวกับซอฟต์แวรต์ ้นฉบบั 4. ต้องไม่แบง่ แยกผู้พัฒนาออกจากซอฟตแ์ วรต์ น้ ฉบับ (Integrity of the Author's Source Code) - ไลเซนต์อาจจะไม่ไดใ้ ห้ไปพร้อมซอสโค้ดในรูปแบบที่สามารถแก้ไขได้ ในกรณที ม่ี ีการกาหนดวา่ จะให้ซอร์สโค้ดเฉพาะส่วนทีม่ กี ารแก้ไขเพิ่มเติม (patch files) เพือ่ ใช้ในการคอมไพลโ์ ปรแกรมเท่านนั้ ไลเซนต์ใหม่จะตอ้ ง
หนว่ ยท่ี 1 หลกั การเขยี นโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวิทกาหนดใหช้ ดั วา่ สามารถแจกจ่ายไดห้ ลงั จากแก้ไขซอร์สโค้ดแลว้ โดยไลเซนต์ใหมอ่ าจจะต้องทาการเปลย่ี นชือ่ หรือเวอรช์ ่นั ให้แตกต่างจากซอฟต์แวร์ต้นฉบับ 5. จะตอ้ งไม่เลือกปฏบิ ตั ิเพอ่ื กีดกนั บุคคล หรือกลมุ่ บุคคล (No Discrimination Against Persons or Groups) - ไลเซนต์จะต้องไมเ่ ลือกปฏิบตั ิเพือ่ กดี กนั การเข้าถึงซอฟตแ์ วรข์ องบุคคล หรอื กลมุ่ บุคคลใดบุคคลหน่ึงโดยเฉพาะ 6. จะตอ้ งไม่จากัดการใช้เฉพาะกลุม่ ใดกล่มุ หนงึ่ เท่านัน้ (No Discrimination Against Field of Endeavor) - ไลเซนต์จะต้องไม่จากดั การใชส้ าหรับกลมุ่ ใดกลุ่มหน่งึ เชน่ จะต้องไมจ่ ากดั การใชง้ านเฉพาะในเชงิ ธุรกจิหรือในการทาวจิ ยั เทา่ น้ัน 7. การเผยแพร่ไลเซนต์ (Distribution of License) - สิทธท์ิ ่ีให้ไปกบั โปรแกรมจะต้องถูกบังคับใชก้ ับทุกคนทีไ่ ด้รับโปรแกรมเทา่ เทียมกัน โดยไมจ่ าเป็นต้องใชไ้ ลเซนตอ์ ื่นๆ ประกอบ 8. ไลเซนต์ของซอฟต์แวรจ์ ะต้องไมข่ ้นึ กบั ไลเซนต์ของผลิตภัณฑ์ (License Must Not be Specific to aProduct)1.8 หลกั การเขียนโปรแกรมบนมาตรฐานเปดิ หรือ กระบวนการพัฒนาโปรแกรม (Computer Algorithms) การเขียนโปรแกรม ควรมีลาดับขนั้ ตอนการเตรียมงาน และการปฏบิ ัตเิ ก่ยี วกบั การเขียนโปรแกรม เพื่อความชัดเจนของลาดับงานทั้งหมด เราเรียกวา่ “กระบวนการพัฒนาโปรแกรม” (Computer Algorithms) สว่ นAlgorithm คอื ข้ันตอนวธิ ขี องโปรแกรม เป็นการเขียนข้นั ตอนการทางานของโปรแกรมในสว่ นที่สาคญั โดยส่วนใหญ่จะเป็นวิธกี ารคานวณของโปรแกรม โดยสามารถจดั แบง่ เป็นหวั ขอ้ ดังนี้ 1. การวเิ คราะหก์ ารทางานหรือการวิเคราะห์ปญั หา (Job Analization) 2. การเขยี นผงั งาน (Flowcharting) 3. การเขียนโปรแกรม (Programming) 4. การทดสอบการทางานและการแกไ้ ขโปรแกรม (Debugging and Testing) 5. การจดั ทาเอกสาร และการบารงุ รกั ษาโปรแกรม (Documentation and Maintanance) 1.8.1 การวเิ คราะห์การทางานหรอื การวเิ คราะหป์ ญั หา (Job Analization) การวิเคราะหปญหาในขั้นตอนน้ีจะเปนข้ันตอนแรกท่ีผูพัฒนาโปรแกรมจะตองลงมือทากอนที่จะเขียนโปรแกรมจริง ๆ เพื่อทาความเขาใจกับปญหาท่ีเกิดข้ึนและคนหาจุดมุงหมายหรือส่ิงที่ตองการวิเคราะหปญหาท้ังน้ีผูพัฒนาโปรแกรมจะตองทาความเขาใจกับปญหา จาเป็นต้องศึกษาถึงรายละเอียดต่าง ๆ ของปัญหาท่ีต้องการเขียนโปรแกรมนน้ั ๆ โดยพิจารณาว่าในสิง่ ต่อไปนี้ o สิง่ ใดบา้ งท่จี ะใหค้ อมพิวเตอร์ทาการประมวลผล o ต้องการแสดงผลลพั ธใ์ นลกั ษณะหรือรปู แบบใด o ขอ้ มลู ที่จาเป็นต้องใช้ เพอื่ ให้ได้ผลลพั ธต์ ามทต่ี ้องการมีอะไรบ้าง
หนว่ ยที่ 1 หลกั การเขียนโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวทิ o วิธีการคานวณหรือการแกป้ ัญหาเหลา่ นนั้ ทาอยา่ งไร ซง่ึ สามารถกาหนดหลักเกณฑใ์ นการวิเคราะห์งานหรือการวเิ คราะห์ปญั หาเป็นหวั ข้อย่อย ๆ ดงั นี้ 1.8.1.1 สิ่งทโี่ จทย์ต้องการ ให้พิจารณาอย่างกว้าง ๆ ว่าต้องการให้คอมพิวเตอร์ทาอะไรบ้าง หรือโจทย์ต้องการผลลพั ธอ์ ะไร โดยใหแ้ สดงออกมาเปน็ ข้อ ๆ ให้ครอบคลุมครบถว้ น เช่น คา่ จา้ งแรงงานของพนกั งาน แต่ละคน 1.8.1.2 ผลลัพธห์ รอื ข้อมลู ทตี่ ้องการแสดง (Output Data) เป็นการกาหนดรูปแบบของผลลพั ธ์ หรอื ออกแบบ รปู แบบรายงานท่ีต้องแสดงผลตามความต้องการของผ้ใู ช้งาน ว่าลกั ษณะของผลลพั ธเ์ ป็นอย่างไร หรือรายงานผลออกมาในลักษณะอยา่ งไรเชน่ INTEREST REPORT COMPOUNDรหัสพนกั งาน ชอ่ื พนักงาน เงนิ เดอื น คา่ ล่วงเวลา เงินรวมสุทธิA1-7321 นางสาวเมตตา 10,000 400 XX,XXX.XXC5547-1 นายการณุ 8,000 200 XX,XXX.XX จานวนเงินรวมทง้ั ส้นิ ท่บี รษิ ัทต้องจา่ ย XXX,XXX.XX 1.8.1.3 ขอ้ มูลนาเขา้ (Input Data) ให้พิจารณาว่าข้อมูลใดบ้าง จาเป็นที่ต้องนามาใช้ในโปรแกรม เพ่ือให้ได้ผลลัพธ์ออกมาตามท่ตี ้องการ อาจนาเข้ามาเพ่ือใช้ในการคานวณโดยอาจพจิ ารณาจากสูตรที่ใชค้ านวณนั้น จาเป็นตอ้ งใช้ข้อมูลใดบา้ งเช่น ในการคานวณหาเงินรวมสุทธิในตัวอย่างผลลัพธ์ในข้อ 2 โดยได้จาก เงินเดือน รวมกับ คา่ ล่วงเวลานั้น ข้อมูลท่ีจาเป็นต้องใช้ รหสั พนักงาน ชื่อพนักงาน เงินเดือน คา่ ล่วงเวลา เป็นต้น 1.8.1.4 ตวั แปรทีใ่ ชใ้ นโปรแกรม ตัวแปรที่ใช้ในโปรแกรม หมายถึงตัวแปรหรือตัวแทนข้อมูล ซ่ึงเป็นตัวแปรแทนข้อมูลนาเข้าและตัวแปรที่แทนผลลัพธ์ท่ีต้องแสดงผล โดยหลักเกณฑ์การต้ังช่ือตัวแปรอาจใช้ตัวอักษรย่อ เพ่ือแทนตัวแปรน้ัน ๆ หรอื ใช้ชื่อท่ีให้ความหมายของตัวแปรนั้น ๆ แต่ชื่อของตัวแปรต้องไม่เป็นคายกเว้น (Keyword) ของภาษาท่ีจะเขยี นโปรแกรมนั้น ๆ ยกตวั อยา่ ง ในการคานวณคา่ จา้ งแรงงานของพนกั งานแตล่ ะคนมีการกาหนดตวั แปร ดงั น้ี EmpNO เปน็ ตัวแทนขอ้ มลู หมายเลขประจาตวั พนักงาน EmpName เปน็ ตัวแทนขอ้ มลู ชื่อของพนกั งานแตล่ ะคน Salary เป็นตวั แทนขอ้ มูลจานวนเงนิ ประจาเดือนของพนักงาน Overtime เป็นตวั แทนข้อมลู จานวนเงนิ พิเศษของพนักงาน Payment เปน็ ตวั แทนขอ้ มูลจานวนเงนิ ไดข้ องพนกั งานแตล่ ะคน TotalPayment เปน็ ตวั แทนขอ้ มูลจานวนเงินที่ตอ้ งจา่ ยพนักงานท้งั หมด GTotalPayment เป็นตวั แทนข้อมูลจานวนเงินทงั้ หมดท่ตี ้องจ่ายพนักงาน 1.8.1.5 ประมวลผล (Process)
หนว่ ยท่ี 1 หลกั การเขยี นโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวิท เป็นการลาดับข้ันตอนตามลาดับการทางานของโปรแกรมโดยให้อธิบายเป็นประโยคส้ัน ๆท่จี ะตอ้ งแสดงการเปรยี บเทยี บ การรับขอ้ มูลและแสดงผลลัพธ์ ตามที่ผใู้ ช้หรือผบู้ รหิ ารตอ้ งการ ซง่ึ บางครง้ั สามารถนาบางส่วนที่แสดงถึงการคานวณไวน้ ั้นไปใช้ในการเขียนโปรแกรมไดเ้ ลย 1.) เริ่มตน้ การทางาน 2.) การพิมพ์หวั ตาราง 3.) การกาหนดค่าเร่ิมแรก เช่น การกาหนดค่าตัวแปรสาหรับคานวณหาค่าผลรวมสะสมของค่าจ้างทั้งหมด เป็น 0 เชน่ GTotalPayment = 0 เปน็ ตน้ 4.) การอา่ นขอ้ มูลนาเข้า เช่น EmpNO, EmpName, Salary, Overtime เป็นต้น 5.) การทดสอบขอ้ มูลคา่ สดุ ท้าย เป็นการเลอื กตัวแปรตวั หนึ่งของข้อมูลนาเขา้ โดยค่าของตัวแปรทเี่ ลือกขนึ้ น้ี ควรจะต้องเป็นค่าท่เี ป็นไปไมไ่ ดส้ าหรบั ตวั แปรนนั้ ตวั อย่างเช่น การเขยี นโปรแกรมเพอ่ื คานวณค่าจา้ งแรงงานข้อมลู นาเข้าประกอบดว้ ย EmpNO, EpName, Salary และ Overtime นัน้ อาจกาหนดตัวแปรสาหรบั ทดสอบข้อมูลค่าสุดทา้ ย โดยกาหนดให้ EmpNo = -999 เป็นตน้ 6.) การคานวณหรือเปรียบเทียบตามเง่ือนไขต่าง ๆ เช่น TotalPayment = Salary+ Overtime และ GTotalPayment = GTotalPayment + TotalPayment เปน็ ต้น 7.) การพิมพ์ผลลัพธ์ในแต่ละเรคคอร์ดที่ต้องการแสดงผลหรือของค่าที่คานวณได้ เช่นEmpNO ,EmpName ,Payment และ TotalPayment เป็นตน้ 8.) การยอ้ นกลับไปอา่ นข้อมลู ใหม่ เช่น กลับไปทาข้อ 4 เป็นต้น 9.) การพิมพ์สรุปตอนสุดท้ายของผลลัพธ์หรือรายงาน เช่น ค่าผลรวมของค่าจ้างของพนักงานทกุ คน เป็นตน้ ถ้าไม่มกี ารพิมพ์สรุปก็อาจสั่งให้จบการทางาน ขน้ั ตอนดงั กลา่ วข้างต้นไม่จาเป็นจะตอ้ งมีครบทุกข้ันตอน ขึ้นกับลักษณะของโจทย์หรือปัญหา นน้ั ๆ เพื่อประมวลผลข้อมูลหรือคานวณ การนาเขา้ ข้อมลู ท่ปี ้อนเข้ามา เพอ่ื ให้ไดผ้ ลลัพธห์ รอื รปู แบบรายงานตามท่ีผู้ใช้หรอืผู้บรหิ ารตอ้ งการ 1.8.2 การเขยี นผังงาน (Flowchating) ผังงาน (Flowchart) คือ การเขียนแผนภาพที่มีการใชสัญลักษณรูปภาพและลูกศรที่แสดงถึงขั้นตอนการทางานของโปรแกรมหรือระบบทีละขั้นตอน รวมไปถึงทิศทางการไหลของขอมูลต้ังแตแรกจนไดผลลัพธตามท่ีตองการ การเขียนผังงานจึงเปนรูปแบบการเขียนท่ีนิยมอยางมากในการออกแบบเพ่ือพัฒนางานทางดานโปรแกรม เพราะการเขียนผังงานจะออกแบบงาย มีความเขาใจงายและเปนสากล ทาใหบุคคลอื่น ๆ ท่ีมาศึกษาสามารถเขาใจระบบงานทัง้ หมดไดงายและตรงกัน 1.8.2.1 สัญลกั ษณ์ผังงาน ประกอบไปดวยการใชสญั ลกั ษณมาตรฐาน ทเ่ี รยี กวา สญั ลักษณ ANSI (AmericanNational Standards Institute) ในการสรางผังงาน
หนว่ ยท่ี 1 หลกั การเขียนโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวิทตารางท่ี 1.1 แสดงสัญลักษณ์ผงั งานสญั ลกั ษณ์ ความหมาย ตัวอย่าง แทนการเร่มิ ต้น หรือ การส้ินสุดผงั งาน หรอื Start Stop การหยดุ ชัว่ คราวระหว่างผังงาน Read A, BTerminal /Interrupt แทนการรบั หรอื แสดง ข้อมลู โดยไมร่ ะบชุ นิด ของส่อื ข้อมูลท่ีใช้Input / Output (I/O)ตารางท่ี 1.1 แสดงสญั ลกั ษณ์ผังงาน (ต่อ)สัญลกั ษณ์ ความหมาย ตัวอย่าง แทนการรับหรอื แสดง ขอ้ มลู ทางบัตรเจาะรู READ A, BCard แทนเอกสารหรอื แบบฟอร์มของขอ้ มลู หรอื PUNCH A, BDocument ผลลพั ธท์ ่ีพมิ พท์ างเครอ่ื งพิมพ์ Print HeadingDisplay หรอื MonitorPunched Tape แทนจอภาพหรือแบบฟอรม์ ของขอ้ มลู หรือ Print HeadingMagnetic Tape ผลลัพธ์ทพี่ มิ พ์ทางจอภาพ Sales แทนการรับหรือแสดง ขอ้ มลู ทางเทปกระดาษ (Document) WRITE TO EMPLOY TAPE EE TAPE แทนการรบั ข้อมลู จากเทปหรอื บันทึกขอ้ มลู ลง บนเทปแม่เหล็ก FILE
หนว่ ยท่ี 1 หลกั การเขยี นโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวทิ แทนการรบั ข้อมลู จากจานแมเ่ หลก็ หรอื บนั ทกึ Updated Program ขอ้ มลู ลงบนจานแมเ่ หล็ก payroll Payed MagterMagnetic Disk แทนการกาหนดค่าหรือการคานวณค่า SUM = 0Process PAY=HOUR*RATEตารางที่ 1.1 แสดงสัญลักษณผงั งาน (ต่อ)สญั ลกั ษณ์ ความหมาย ตัวอยา่ ง แทนการเปรยี บเทยี บหรอื การตดั สนิ ใจ ใช้ สาหรับทดสอบเงอ่ื นไขทางเลอื ก โดยปกติ No = -99 มักจะหมายถึงการข้าม Pay=hour*rate Write TotalSelection or Decision การทางานอยา่ งมีเง่ือนไข (Conditional Branch) แทนการทางานทซี่ ้า ๆ กัน เช่น For i = 1 to 10 ใช้คาสง่ั For .. Next RecadLoop repetition test แทนจุดต่อเน่อื งที่อยู่หนา้ เดยี วกนั A แทนจุดต่อเน่ืองทีอ่ ยู่คนละหนา้ BConnecter
หนว่ ยท่ี 1 หลกั การเขียนโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวทิ แทนเส้นแสดงทิศทางตามปลายลูกศรFlowlines I 1.8.3 การเขียนโปรแกรม (Programming) เป็นการนาเอาขนั้ ตอนในการทางานตา่ ง ๆ ที่ไดเ้ ขยี นไว้ในส่วนของการวเิ คราะห์งานหรอืวเิ คราะหป์ ัญหาและการเขียนผงั งาน มาถ่ายทอดออกมาเป็นคาสัง่ งาน โดยเลอื กภาษาคอมพิวเตอร์ ภาษาใด ภาษาหนึง่ ทีเ่ หมาะสมกับงานนัน้ ๆ เช่น งานประมวลข้อมูลทางดา้ นวทิ ยาศาสตร์ ซึ่งมีการคานวณมาก ๆ ใช้ FORTRANและงานประมวลทางดา้ นธุรกิจใช้ COBOL เป็นตน้ ซ่งึ ผ้เู ขยี นโปรแกรมจะตอ้ งศึกษาและเขียนโปรแกรมใหถ้ ูกตอ้ งตามหลกั ไวยากรณ์ของภาษานนั้ ๆ 1.8.4 การทดสอบการทางานและการแกไ้ ขโปรแกรม (Debugging and Testing) ในบางครั้งโปรแกรมอาจผานการแปลโดยไมมีขอผิดพลาดใด ๆ แจงออกมา แตเมื่อนาโปรแกรมนนั้ ไปใชงานปรากฎวาไดผลลพั ธทีไ่ มเปนจรงิ เน่ืองจากอาจเกิดขอผิดพลาดขน้ึ ได ดังนั้นผูพัฒนาโปรแกรมจึงควรตองมีขนั้ ตอนการทดสอบความถูกตองของโปรแกรมกอนนาไปใชงานจริง ในการทดสอบความถูกตองของโปรแกรมจะมีอยูหลายวิธดี งั ตอไปน้ี 1.8.4.1 การใสขอมูลท่ีถูกตอง (valid case) เปนการทดสอบเม่ือมีการรันโปรแกรม โดย ผูพัฒนาโปรแกรมทาการใสขอมูลที่ถูกตองลงไปในโปรแกรม และดูวาผลลัพธท่ีไดจากโปรแกรมถูกตองตามความ เปนจรงิ หรอื ตรงกับทตี่ องการหรอื ไม 1.8.4.2 ขอบเขตและความถูกตองของขอมูล (Range check and Completeness check)เปนการทดสอบโดยตรวจสอบขอบเขตของขอมูลที่ปอนเขาสูโปรแกรม เชน ถาโปรแกรมใหมีการปอนวันท่ี จะตองตรวจสอบวาวันที่ที่ปอนจะไมเกินวันที่ 31 ถาผูใชปอนวันท่ีที่เปนเลข 32 โปรแกรมจะตองไมยอมใหปอนวันที่น้ีไดหรือการตรวจสอบความสมบูรณของขอมูล เชน การรับข้อมูลท่ีเปน วัน/เดือน/ป จะตองใสเปนตัวเลข 6 ตัวในลกั ษณะ dd/mm/yy ถาใสนอยกวา 6 ตวั โปรแกรมจะตองไมรับหรือฟองแจงเตอื นผูใชงานได 1.8.4.3 การใชความสมเหตุสมผล (Consistency Check) ตัวอยางเชน ถาโปรแกรมมีการออกแบบใหผูใชปอนขอมูลลงไปในฟอรมที่มีขอมูลแบงเปนเพศหญิงและเพศชาย ดังนั้นรายละเอียด สวนตัวของแตละเพศจะตองมีสวนทีแ่ ตกตางกันในบางสวน เชนในสวนวันหยดุ กรณีลาคลอดจะตองมีเฉพาะเพศหญิง แตในเพศชายไมควรจะมีวันหยุดกรณลี าคลอด เปนตน 1.8.4.4 ขอมูลท่ีเป นตัวเลขและตัวอักษร (Correct No. and Type character check)เปนการตรวจสอบวาถาโปรแกรมใหผูปอนขอมูลในฟลดท่ีตองรับขอมูลท่ีเปนตัวเลข อยางเชนฟลดที่ เปนจานวนเงินโดยโปรแกรมควรจะยอมใหผูใชปอนขอมูลไดเฉพาะตัวเลขเทานั้น ไมอนุญาตใหใสตัวอักษรในฟลดนั้นได หรือถาเปนฟลดทรี่ บั ขอมูลที่เปนตวั อักษรเชน ฟลดชอ่ื นามสกุล จะปอนได
หนว่ ยที่ 1 หลกั การเขยี นโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวิทเฉพาะตวั อักษรเทานน้ั และจะปอนตวั เลขไมได เปนตน 1.8.4.5 ขอมูลเปนไปตามขอกาหนด (Existence Check) คือขอมูลท่ีปอนในฟลดตอง เปนไปตามที่กาหนดไวแนนอนแลวเทานั้น เชน กาหนดใหฟลดนี้ปอนขอมูลไดเฉพาะตัวเลขที่อยูในกลุม 1,2,5,7 ไดเทาน้ันจะปอนเปนตัวเลขอน่ื ทีไ่ มอยูในกลมุ นีไ้ มได 1.8.5 การจดั ทาเอกสารและการบารงุ รักษาโปรแกรม (Documentation and Maintanance) ขน้ั ตอนการจัดทาคูมือโปรแกรม หมายถึง เอกสารตาง ๆ ท่ีใชกากับอธิบายโปรแกรมและชวยใหผูใชโปรแกรมทางานไดสะดวกขึ้น เชน คูมือปฏิบัติงานเครื่อง (Operation Manual) คูมือผูใช (User manual) ปจจุบันเอกสารประกอบโปรแกรม มีอยูในหลายส่ือ เชน มีอยูในซอฟตแวรไดแก คาอธิบาย (Help function) โปรแกรมสาธิต (Demo program) เปนตน การทาเอกสารประกอบโปรแกรม คือการอธิบายรายละเอียดของโปรแกรมวา จุดประสงคของโปรแกรมคืออะไร สามารถทาอะไรไดบาง และมีข้ันตอนการทางานของโปรแกรมเปนอยางไรเปนตนเคร่ืองมือท่ีชวยในการออกแบบโปรแกรม เชน ผังงาน (Flowchart) หรือรหัสเทียม (Pseudo code) สามารถนามาประกอบกันเปนเอกสารประกอบโปรแกรมได ผูพฒั นาโปรแกรมคอมพิวเตอรทีด่ ี ควรจะมกี ารทาเอกสารประกอบโปรแกรม ทุกขน้ั ตอนของการพัฒนาโปรแกรมไมวาจะเปนขั้นตอนการออกแบบ การเขียนโปรแกรม หรือข้ันตอนการทดสอบโปรแกรม ซึ่งการทาเอกสารนี้จะมปี ระโยชนอยางมากตอหนวยงาน เนือ่ งจากบางครง้ั อาจตองการเปล่ียนแปลงแกไขโปรแกรมที่ไดทาเสร็จไปนานแลว เพ่ือใหตรงกับความตองการทีเ่ ปล่ียนไป จะทาใหเขาใจโปรแกรมไดงายขึน้ และจะสะดวกตอผูที่ตองเขามารบั ชวงงานตอทหี ลงั โดยเอกสารประกอบโปรแกรมโดยทวั่ ไปจะมอี ยู่ ดวยกนั 2 แบบ คอื 1.) เอกสารประกอบโปรแกรมสาหรับผูใช (User Documentation)เหมาะสาหรับผูใชที่ไมตองเก่ียวของกับการพัฒนาโปรแกรม แตเปนผูที่ใชงานโปรแกรมอยางเดียว จะเนนการอธิบายเกี่ยวกับการใชงานโปรแกรมเปนหลัก ตัวอยางเชน - โปรแกรมนท้ี าอะไร ใชงานในดานไหน - ขอมูลเขามีลกั ษณะอยางไร - ขอมลู ออกหรอื ผลลัพธมีลักษณะอยางไร - การเรยี กใชโปรแกรมทาอยางไร - คาสงั่ หรอื ขอมลู ท่ีจาเปนใหโปรแกรมเร่มิ งานมอี ะไรบาง - อธบิ ายเกีย่ วกับประสิทธภิ าพ และความสามารถของโปรแกรม 2.) เอกสารประกอบโปรแกรมสาหรับผูเขยี นโปรแกรม (Technical Documentation) โดยสามารถแบงไดออกเปน 2 สวน คือ - สวนที่เปนคาอธิบายหรือคอมเมนท ซึ่งสวนใหญผูพัฒนาโปรแกรมคอมพิวเตอรมักจะเขียนแทรกอยูในโปรแกรม อธิบายการทางานของโปรแกรมเปนสวน ๆ เพื่อใหสามารถอธิบายหลักการทางานของโปรแกรมในสวนนนั้ ๆ
หนว่ ยที่ 1 หลกั การเขียนโปรแกรมบนมาตรฐานเปิ ด : นางสาวชศู รี เกลยี วสกลุ โกวทิ - สวนอธิบายดานเทคนิค ซ่ึงสวนนี้ผูพัฒนาโปรแกรมคอมพิวเตอรมักจะจัดทาเปนเอกสารโดยจะอธิบายในรายละเอียดที่มากขึ้น เชน ช่ือโปรแกรมยอยตางๆ มีอะไรบาง แตละโปรแกรมยอยทาหนาท่ีอะไรและคาอธิบายยอ ๆ เก่ียวกับวตั ถุประสงคของโปรแกรม เปนตน
Search
Read the Text Version
- 1 - 18
Pages: