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 C-Language

C-Language

Published by Aj.pan Rattanaumporn, 2019-08-29 07:03:32

Description: คอมพิวเตอร์ เป็นอุปกรณ์ทางอิเล็กทรอนิกส์อย่างหนึ่ง ซึ่งไม่สามารถทำงานด้วยตนเองได้ แต่จะสามารถทำงานได้ตามชุดคำสั่งในโปรแกรมที่ป้อนเข้าสู่เครื่อง ซึ่งจะทำงานตามคำสั่งทีละคำสั่ง (Step by Step) โดยคำสั่งที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้ จะต้องอยู่ในรูปแบบของภาษาเครื่อง (Machine Language)

Search

Read the Text Version

ความรู้เก่ียวกับ การเขียนโปรแกรม คอมพวิ เตอร์เบอื้ งต้น

เราเขียนโปรแกรมไปเพ่อื อะไร • การเขียนโปรแกรมกเ็ หมือนการแก้โจทย์ปัญหา เราจะต้องทราบว่าเราต้องการอะไร เพอื่ นาไป สร้างเป็ นโปรแกรมใหม่ข้นึ มาตามทีเ่ ราต้องการ • โปรแกรมคอมพวิ เตอร์ คอื คาสั่งหรือชุดคาสั่ง ทเ่ี ขียนขนึ้ มาเพอ่ื ส่ังให้เครื่อง คอมพวิ เตอร์ทางานตามทเ่ี ราต้องการ เราจะให้คอมพวิ เตอร์ทาอะไรกเ็ ขียนเป็ น คาส่ัง ซ่ึงต้องส่ังเป็ นข้ันตอนและแต่ละข้ันตอนต้องทาอย่างละเอยี ดและครบถ้วน ซ่ึงจะเกดิ เป็ นงานชิ้นหน่ึงขนึ้ มามชี ื่อเรียกว่า \"โปรแกรม\" ซอฟต์แวร์จะแบ่ง ออกเป็ นประเภทใหญ่ ๆ ได้ 2 ประเภท คอื 1. ซอฟต์แวร์ระบบ (System Software) 2. ซอฟต์แวร์ประยุกต์ (Application Software)

ซอฟต์แวร์ระบบ (System Software) • OS (Operating System) เช่น DOS UNIX LINUX WINDOWS • Translation Program เช่น Assembler อินเตอร์พรีเตอร์ (Interpreter) คอมไพเลอร์ (Compiler) • Utility Program เช่น Scan Disk, Defragmenter, Disk Cleanup, Norton Utility

ซอฟต์แวร์ประยุกต์ (Application Software) • User Program เช่น โปรแกรมระบบบญั ชี, โปรแกรมควบคุมสตอ็ กสินคา้ ,โปรแกรมแฟ้ มทะเบียน ประวตั ิ,โปรแกรมคานวณภาษี,โปรแกรมคอดเงินเดือน เป็ นตน้ • Package Program เช่น Microsoft Office (MS-Word,MS- Excel,MS-Access,MS-PowerPoint) CorelDraw, Photoshop, Internet Explorer , PageMaker

คอมพวิ เตอร์ คอื อะไร •คอมพวิ เตอร์เป็นอปุ กรณ์อิเลก็ ทรอนิคอยา่ งหน่ึง ท่ีมนุษยส์ ร้างข้ึน เพอ่ื เสริมความสามารถของ มนุษยใ์ นดา้ นการรับรู้ การจา การคานวณ การ แสดงออก และการเปรียบเทียบตดั สินใจ

คอมพวิ เตอร์ คอื อะไร • ในการทจ่ี ะส่ังให้เคร่ืองคอมพวิ เตอร์ทางานโดยต้องอาศัยมนุษย์เพอ่ื ป้ อนคาส่ังเข้าไปในเคร่ือง คอมพวิ เตอร์ ซึ่งคาสั่งน้ันจะต้องเป็ นคาส่ังทเี่ ครื่องเข้า น้ันคอื ภาษาเคร่ืองหรือทเ่ี รียกเป็ น ภาษาองั กฤษว่า Machine Language ซึ่งประกอบด้วย ตัวเลข 0 กบั 1 เท่าน้ัน 100100101 010001110

ขนั้ ตอนการทางานของระบบคอมพวิ เตอร์ Memory Input Process Output

ขัน้ ตอนวธิ ีการทางคอมพวิ เตอร์ (Computer Algorithms) วงจรการพฒั นาโปรแกรม (Program Development Life Cycle: PDLC)  การวเิ คราะห์โปรแกรม (Program Analysis)  การออกแบบโปรแกรม (Program Design)  การเขยี นโปรแกรม (Program Coding)  การทดสอบโปรแกรม (Program Testing)  การทบทวนการทางานของโปรแกรมคร้ังสุดท้าย (Program Formalization)  การบารุงรักษาโปรแกรม (Program Maintenance)

ขนั้ ตอนวิธีการทางคอมพวิ เตอร์ (Computer Algorithms) 1. วเิ คราะห์โปรแกรม 2. ออกแบบโปรแกรม • ตรวจสอบ Program Specification Package • แบ่งหน้าทห่ี ลกั (Main Module) ของ • หารือกบั นกั วเิ คราะห์ระบบ (SA) และผู้ใช้ • กาหนดองค์ประกอบของโปรแกรม เช่น โปรแกรมออกเป็ น Module ต่างๆ อนิ พตุ เอาต์พตุ การประมวลผล • ออกแบบอลั กอริทมึ ให้แต่ละโมดูล • ทดสอบผลลพั ธ์ทไ่ี ด้จากอลั กอริทึม 6. บารุงรักษาโปรแกรม วงจรการพฒั นา 3. เขียนโปรแกรม โปรแกรม • แก้ไข Error ทพี่ บ • เปลย่ี นอลั กอริทมึ ในข้นั ตอนที่ 2 ระหว่างการใช้งาน มาเป็ นภาษาโปรแกรมมง่ิ โปรแกรมจริงโดยผ้ใู ช้ • เขียนโปรแกรม และทดลองรัน • ปรับปรุงและเพม่ิ เตมิ โปรแกรมดู ความสามารถให้กบั โปรแกรมมากขนึ้ 5. ทบทวนการทางานของโปรแกรมคร้ัง 4. ทดสอบโปรแกรม สุดท้าย • เมอ่ื พบ Error ของโปรแกรมให้แก้ไขทนั ที • การ Error อาจเกดิ ขนึ้ จากการเขยี น • ลบโค้ดทใี่ ม่ใช้ออกให้หมด แล้วลองรัน ไวยากรณ์ของภาษาผดิ หรืออาจผดิ ที่ โปรแกรมดูว่า ทางานได้ดงั เดมิ หรือไม่ อลั กอริทมึ กไ็ ด้ • รวบรวมเอกสารทเี่ กยี่ วท้งั หมดให้ SA ภาพรวมวงจรการพฒั นาโปรแกรม (PDLC)

การวเิ คราะห์โปรแกรม (Program Analysis) การวเิ คราะห์โปรแกรมแต่ละอย่างมหี ลกั เกณฑ์และรายละเอยี ด แบ่งได้ 5 หัวข้อ ดงั นี้ 1. การวเิ คราะห์หาวตั ถุประสงค์ของการเขยี นโปรแกรม ผู้เขียนโปรแกรมจะต้องหาวตั ถุประสงค์จากงานทจี่ ะเขยี นโปรแกรม ว่าต้องการเขียน โปรแกรมเพอื่ แก้ปัญหา อะไรบ้าง 2. การวเิ คราะห์หารูปแบบผลลพั ธ์ทตี่ ้องการ การกาหนดรูปแบบผลลพั ธ์ทตี่ ้องการจากโปรแกรม ซ่ึงรูปแบบผลลพั ธ์อาจอยู่ในลกั ษณะของข้อความหรือ ตวั เลข หรือตาราง หรือแผนภูมิ หรืออาจใช้ผสมกนั ระหว่างตัวเลขกบั ข้อความ หรือข้อความกบั ตวั เลข และ ตารางกไ็ ด้

การวเิ คราะห์โปรแกรม (Program Analysis) (ต่อ) การวเิ คราะห์โปรแกรมแต่ละอย่างมหี ลกั เกณฑ์และรายละเอยี ด แบ่งได้ 5 หัวข้อ ดงั นี้  3. การวเิ คราะห์หาข้อมูลนาเข้าทตี่ ้องใส่เข้าไปในโปรแกรม ผ้เู ขยี นโปรแกรมจะต้องหาข้อมูลนาเข้าจากผลลพั ธ์ท่ไี ด้จากโปรแกรม โดยคานึงถงึ ข้นั ตอนวธิ ีการ คานวณ และข้อมูลท่ีจาเป็ นต้องใส่เข้าไปเพอ่ื ให้ได้ผลลพั ธ์ทีต่ ้องการ  4. การวเิ คราะห์หาตัวแปรทจ่ี าเป็ นต้องใช้ในโปรแกรม การต้งั ชื่อตวั แปรทใ่ี ช้ในการเกบ็ ข้อมูลและผลลพั ธ์ท้ังหมดภายในโปรแกรม รวมถงึ ตวั แปรบางตวั ที่ ใช้ในการนับจานวนรอบของการทางานในโปรแกรม  5. การวเิ คราะห์หาข้นั ตอนวธิ ีการทางานของโปรแกรม เป็ นการหาลาดบั ข้นั ตอนวธิ ีการทางานของโปรแกรม หรือเรียกว่า อลั กอริทึม (Algorithm) จะขนึ้ อยู่ กบั ลกั ษณะของการแก้ปัญหาของแต่ละโปรแกรม

การวเิ คราะห์โปรแกรม (Program Analysis) (ต่อ) วธิ ีการเขยี นอลั กอริทึม 4. การตัดสินใจเลอื กจากเงือ่ นไข(Decision) ใช้รูปแบบ ถ้า....................ไปขน้ั ตอนท.ี่ ...................... 1. เริ่มต้นทางาน 2. การกาหนดค่า ใช้รูปแบบ เช่น กาหนดค่า…………….=………… ถา้ ค่าอายนุ อ้ ยกวา่ 10 ปี ไปข้นั ตอนท่ี 12 เช่น ถา้ คะแนนมากกวา่ 79 คะแนน ไปข้นั ตอนท่ี 10 กาหนดคา่ ช่ือ = “สมชาย” ถา้ ค่าท่ีไดเ้ ท่ากบั 0 ไปข้นั ตอนที่ 2 กาหนดค่า อายุ = 0 5. การประมวลผล การคานวณ (process) ใช้รูปแบบ กาหนดคา่ ระยะทาง = 100 คานวณค่า………=……… 3. การรับขอ้ มูล ( Input) ใชร้ ูปแบบ เช่น รับค่า.............................. คานวณค่า ภาษี = ค่าเงินเดือน * 10 / 100 เช่น คานวณหาค่า ภาษีมลู ค่าเพม่ิ = ค่าสินคา้ * 7 / 100 รับค่าคะแนน 6. การแสดงผล (Output) ใช้รูปแบบ รับค่าตวั เลข รับค่าอายุ แสดงผลค่า................ หรือ พมิ พ์ค่า....................... เช่น แสดงผล คะแนน แสดงผล ภาษี 7. จบการทางาน

การวเิ คราะห์โปรแกรม (Program Analysis) (ต่อ) ตัวอย่างท่ี 1.2 จงเขยี นวเิ คราะห์โปรแกรม เพอ่ื ใช้คานวณหาพนื้ ท่ี สี่เหลย่ี มผนื ผ้า จานวน 1 รูป โดยทผ่ี ู้ใช้โปรแกรม จะต้องป้ อน ความกว้าง และความยาวของสี่เหลย่ี มผนื ผ้า เข้าไปใน โปรแกรม วิธีทา ตามข้นั ตอนการวเิ คราะห์โปรแกรมท้งั 5 ข้นั ตอน สามารถแสดงได้ดงั นี้

การวเิ คราะห์โปรแกรม (Program Analysis) (ต่อ) 1) วตั ถุประสงค์ของการเขยี นโปรแกรม เพ่ือคานวณพ้นื ที่ส่ีเหลี่ยมผนื ผา้ จานวน 1 รูป 2) รูปแบบผลลพั ธ์ทตี่ ้องการ พมิ พผ์ ลลพั ธอ์ อกทางจอภาพ ดงั น้ี *** Input Data *** Width = 8 Length = 12 *** Output *** Area = 96

การวเิ คราะห์โปรแกรม (Program Analysis) (ต่อ) 3) ข้อมูลนาเข้า 3.1) สูตรคานวณพ้ืนท่ีส่ีเหลี่ยมผนื ผา้ พ้นื ที่ = กวา้ ง x ยาว 3.2) รับค่าความกวา้ งและความยาวของสี่เหลี่ยมผนื ผา้ ผา่ นทางคียบ์ อร์ด 4) ตัวแปรทตี่ ้ังขนึ้ เพอื่ ใช้ในโปรแกรม Width = ตวั แปรที่ใชเ้ กบ็ ความกวา้ งของส่ีเหล่ียมผนื ผา้ Length = ตวั แปรท่ีใชเ้ กบ็ ความยาวของส่ีเหลี่ยมผนื ผา้ Area = ตวั แปรที่ใชเ้ กบ็ พ้ืนท่ีของสี่เหลี่ยมผนื ผา้ โดยคานวณไดจ้ ากสูตร Area = Width*Length

การวเิ คราะห์โปรแกรม (Program Analysis) (ต่อ) 5) ข้นั ตอนวธิ ีการทางานของโปรแกรมมดี งั นี้ 5.1) เร่ิมตน้ ทางาน 5.2) รับขอ้ มูลค่าความยาวและความกวา้ งของส่ีเหล่ียมผนื ผา้ ผา่ นคียบ์ อร์ด 5.3) คานวพณ้ืนหาทพี่้ืนท=ี่สี่เหกล่ียวมา้ ผงนื ผxา้ ตยาามวสูตร 5.4) พิมพค์ ่าความยาว ความกวา้ ง และพ้ืนที่ส่ีเหลี่ยมผนื ผา้ ออกทางจอภาพ 5.5) จบการทางาน

การสร้างรหสั เทยี ม (Pseudocode) (ต่อ) • รูปแบบการเขยี นการสร้างรหัสเทยี ม (ต่อ) Aแlgสoดr•งitคhP่าmsชe่ือudocode ลกั ษณะงาoSนuetuแpdสuoดtcnงoaผdmลee(Output) แสดงค่าที่อยู่ print address แสดงคา่ เกรด write grade แสดงค่าคะแนน write(score) เช่นเดียวกนั output , print , write ต่างมีความหมายถึงการแสดงคา่ ออกมา

การสร้างรหสั เทยี ม (Pseudocode) (ต่อ) • รูปแบบการเขยี นการสร้างรหัสเทยี ม (ต่อ) • ตวั อย่างที่ 1

การสร้างรหสั เทยี ม (Pseudocode) (ต่อ) • รูปแบบการเขยี นการสร้างรหัสเทยี ม (ต่อ) • ตวั อย่างที่ 2

การออกแบบโปรแกรม (program Design) การออกแบบโปรแกรม เป็ นการนาเอาวธิ ีการทีไ่ ด้ จากการวเิ คราะห์โปรแกรมมาเขยี นแผนภาพหรือ สัญลกั ษณ์แสดงลาดบั ข้นั ตอนการทางานของ โปรแกรม (Flowchart)

การออกแบบโปรแกรม (program Design) (ต่อ) “ผงั งาน” (flowchart) ทางคอมพวิ เตอร์ เป็ น เคร่ืองมอื ทใ่ี ช้เขยี นอลั กอริทมึ รูปแบบหนึ่งซึ่งเข้าใจ ง่าย ใช้รูปภาพเป็ นสัญลกั ษณ์แสดงการทางาน “ผงั งาน” หมายถงึ แผนภาพทเ่ี ขียนขนึ้ โดยใช้ สัญลกั ษณ์มาตรฐาน เพอื่ แสดงข้นั ตอนวธิ ีการ ทางานของโปรแกรม หรือระบบงานทต่ี ้องการ

การออกแบบโปรแกรม (program Design) (ต่อ) ประเภทของผงั งาน ผงั งานสามารถจาแนกออกได้ 2 ประเภท คอื 1) ผงั งานระบบ (system flowchart) หมายถงึ ผงั งานทีแ่ สดงถึง ข้นั ตอนวธิ ีการทางานของระบบงานใดระบบหนงึ่

การออกแบบโปรแกรม (program Design) (ต่อ) 2) ผงั งานโปรแกรม (program flowchart) หมายถงึ ผงั งานที่ แสดงข้นั ตอน วธิ ีการทางานของโปรแกรมทตี่ ้องการเขียนขนึ้

การออกแบบโปรแกรม (program Design) (ต่อ) สัญลกั ษณ์มาตรฐานทใ่ี ช้เขยี นผงั งานโปรแกรม Symbol Meaning Terminator Symbol ใช้แสดงตาแหน่งของจุดเร่ิมต้น จุดสิ้นสุดโปรแกรม Process Symbol ใช้ในการคานวณ Input/Output Symbol ใช้ในการรับข้อมูล การแสดงผลข้อมูล

การออกแบบโปรแกรม (program Design) (ต่อ) สัญลกั ษณ์มาตรฐานทใี่ ช้เขยี นผงั งานโปรแกรม Symbol Meaning Display /Monitor Symbol ใช้เมอ่ื ต้องการระบุให้แสดงข้อมูลบนจอภาพ Document Symbol ใช้เมอ่ื ต้องการระบุให้แสดงข้อมูลบนเครื่องพมิ พ์ Decision Symbol ใช้ในการเปรียบเทยี บเงอื่ นไขหรือตัดสินใจ Keyboard Symbol ใช้ในการรับข้อมูลจากแป้ นพมิ พ์ External Subroutine Symbol ใช้เรียกฟังก์ชันต่าง ๆ ที่ C Compiler สร้างไว้แล้ว

การออกแบบโปรแกรม (program Design) (ต่อ) Comment Symbol ใช้แสดงความเห็น คาอธิบาย หรือข้อสังเกตต่าง ๆ Flowline Symbol ใช้เป็ นจุดเช่ือมต่อระหว่างสัญลกั ษณ์ On-page Connector Symbol ใช้ในการเช่ือมโยงในหน้าเดยี วกนั Off-page Connector Symbol ใช้ในการเช่ือมโยงไปหน้าอน่ื Manual Operation การรับข้อมูลหรือแสดงผลลพั ธ์โดยไม่ระบุสื่อ Internal Subroutine Symbol ใช้เรียกฟังก์ชันต่าง ๆ ทผี่ ู้เขยี นโปรแกรมสร้างไว้ใช้งานภายในโปรแกรม

การออกแบบโครงสร้าง (Structured Design) คอื เทคนิคทใ่ี ช้ในการออกแบบอลั กอริทมึ ซ่ึงโครงสร้างของ อลั กอริทมึ มีอยู่ 3 โครงสร้าง ได้แก่ 1. โครงสร้างควบคุมการทางานแบบเรียงลาดบั (Sequence Control Structure) 2. โครงสร้างควบคุมการทางานแบบเลอื กกระทา (Selection Control Structure) 3. โครงสร้างควบคุมการทางานแบบวนซ้า (Repetition Control Structure)

การออกแบบโครงสร้าง (Structured Design) (ต่อ) 1. โครงสร้างควบคุมการทางานแบบเรียงลาดบั (Sequence Control Structure) เป็ นโครงสร้างทม่ี ีการทางานทุกคาส่ังอย่างเป็ นลาดบั ข้นั ตอน ประกอบไปด้วยคาส่ังทวั่ ๆ ไป ไม่มกี ารตดั สินใจ ไม่มีการวนซ้า (Looping) ไม่มีการข้าม คาสง่ั ท่ี 1 ข้นั ตอนหรือย้อยกลบั ไปทาข้นั ตอนเดมิ คาส่ังท่ี 2 จะทางานตาม … คาสั่งที่ n

การออกแบบโครงสร้าง (Structured Design) (ต่อ) 2. โครงสร้างควบคุมการทางานแบบมเี งอ่ื นไขเลอื กกระทา (Selection Control Structure) 1) โครงสร้างแบบทดสอบเงอ่ื นไข 1 ทางเลอื ก ทาการทดสอบเงอ่ื นไขว่าเป็ นจริงหรือเทจ็ ถ้าเงอื่ นไขเป็ นจริง ให้ทางานตามคาสั่งที่ กาหนดไว้แล้วออกจากการทางาน แต่ถ้าเงอื่ นไขเป็ นเทจ็ ให้ออกจากการทางาน

การออกแบบโครงสร้าง (Structured Design) (ต่อ) 1) โครงสร้างแบบทดสอบเงอ่ื นไข 1 ทางเลอื ก

การออกแบบโครงสร้าง (Structured Design) (ต่อ) 2) โครงสร้างแบบทดสอบเงอ่ื นไข 2 ทางเลอื ก ทาการทดสอบเงอื่ นไขว่าเป็ นจริงหรือเทจ็ ถ้าเงอ่ื นไขเป็ นจริง ให้ทางานตามคาสั่ง A ที่ กาหนดไว้แล้วออกจากการทางาน แต่ถ้าเงอ่ื นไขเป็ นเทจ็ ให้ทางานตามคาสั่ง B ท่กี าหนดไว้ แล้วออกจากการทางาน

การออกแบบโครงสร้าง (Structured Design) (ต่อ) 3) โครงสร้างแบบทดสอบเงอ่ื นไขมากกว่า 2 ทางขนึ้ ไป

การออกแบบโครงสร้าง (Structured Design) (ต่อ) 3. โครงสร้างควบคุมการทางานแบบวนซ้า (Repetition Control Structure) 1) โครงสร้างแบบทางานวนลูป หมายถงึ โครงสร้างของคาสั่งทมี่ กี ารทางานซ้า ๆ เป็ นวงจรปิ ด จนกว่าเงอ่ื นไขทท่ี ดสอบ จะตรงกบั ค่าจริงหรือเทจ็ ตามโครงสร้างทใ่ี ช้ จงึ สามารถออกจากการทางานได้

การออกแบบโครงสร้าง (Structured Design) (ต่อ) 1) โครงสร้างแบบ DO UNTIL ประโยคเงอื่ นไข เทจ็ จริง คาส่ังการทางาน

การออกแบบโครงสร้าง (Structured Design) (ต่อ) 2) โครงสร้างแบบ DO WHILE คาส่ังการทางาน จริง ประโยคเงอ่ื นไข เทจ็

หลักการเขียนผังงานโปรแกรม 1) เขยี นผงั งานจากด้านบนลงด้านล่าง 2) ใช้สัญลกั ษณ์ให้ตรงกบั ความหมายของผงั งาน 3) ใช้เส้น flow line และ arrowheads แสดงทศิ ทางการทางานของผงั งาน 4) ใส่คาอธิบายลงในสัญลกั ษณ์ส้ัน ๆ แต่เข้าใจง่าย จะใช้ภาษาไทยหรือองั กฤษกไ็ ด้ 5) หลกี เลย่ี งการโยงเส้นทศิ ทางของผงั งานให้ตดั กนั เพราะจะทาให้สับสน ควรใช้จุดเช่ือมต่อ (connector) หน้าเดยี วกนั แทน จะเข้าใจได้ง่ายและเป็ นระเบยี บ 6) พยายามเขยี นผงั งานให้จบในหน้ากระดาษเดยี วกนั แต่ถ้าไม่จบในหน้าเดยี วกนั ควรใช้จุดเช่ือม ต่อต่างหน้ากระดาษ (off page connector)

ขัน้ ตอนการเขียนผังงานโปรแกรม

ขัน้ ตอนการเขียนผังงานโปรแกรม

ขัน้ ตอนการเขียนผังงานโปรแกรม แบบลาดับ (Sequence) แบบวนรอบ (loop) แบบมเี งอ่ื นไข/เลอื กทา (selection)

การเขียนโปรแกรม (programming) คอื การเปลยี่ นอลั กอริทมึ เป็ นภาษาทค่ี อมพวิ เตอร์สามารถ นาไปปฏิบัติได้ ทเ่ี รียกว่าSource Code

ความหมายของโปรแกรมคอมพวิ เตอร์ โปรแกรมคอมพวิ เตอร์ (computer program) หมายถึง ชุดของคาสั่งทเี่ ขยี น ขนึ้ เพอื่ สั่งให้คอมพวิ เตอร์ทางานตามทต่ี ้องการ ส่วนการเขยี นโปรแกรม (programming) หมายถงึ การเขยี นชุดคาส่ังด้วยภาษาคอมพวิ เตอร์ภาษาใดภาษาหนึ่ง เพอ่ื ให้คอมพวิ เตอร์ ทางานตามโปรแกรมทเ่ี ราเขยี นขนึ้ ดงั น้ัน ผู้เขยี นโปรแกรม (programmer) จึงจาเป็ นต้องเรียนรู้ภาษาคอมพวิ เตอร์ ภาษาใดภาษาหน่ึงหรือหลายภาษา แล้วฝึ กฝนทกั ษะการเขยี นโปรแกรมด้วย ภาษาคอมพวิ เตอร์ทต่ี ้องการใช้งานให้เกดิ ความชานาญจึงจะสามารถเขยี นโปรแกรม คอมพวิ เตอร์ได้อย่างมปี ระสิทธิภาพ

ภาษาคอมพวิ เตอร์ (Computer Language) ภาษาคอมพวิ เตอร์หมายถึง ภาษาทสี่ ามารถนามาใช้เขยี นหรือพฒั นาโปรแกรมคอมพวิ เตอร์ได้ ซึ่งได้ มกี ารจดั แบ่งภาษาคอมพวิ เตอร์ตามยุคทมี่ กี ารพฒั นาของภาษาดงั นี้ 1. ภาษาในยุคที่ 1 (First Generation Language:1GL) 1GL เรียกอกี อย่างหน่ึงว่า “ภาษาระดบั ล่าง (Low-Level Language)” เป็ นภาษาท่ี เคร่ืองคอมพวิ เตอร์สามารถอ่านแล้วเข้าใจได้ทันทโี ดยไม่ต้องผ่านตัวแปลภาษา ดังน้ันจงึ มชี ่ือ เรียกอกี อย่างหนึ่งว่า “ภาษาเคร่ือง (Machine Language)” ซึ่งประกอบด้วยตัวเลขฐานสอง (Binary Code) ทใี่ ช้เป็ นรหัสแทนตวั อกั ษรหรือข้อความต่าง ๆ แต่ยากต่อการเรียนรู้และเข้าใจ ของมนุษย์ ตัวอย่างท่ี 1.18 แสดงคาสั่งของภาษาเคร่ืองมดี ังนี้ ถ้าเราต้องการส่ังให้เคร่ืองทางานตามคาสั่ง 9 + 3 แสดงได้ดังนี้ การบวกแทนด้วยรหสั 10101010 เลข 9 เปลยี่ นเป็ นเลขฐานสอง 00001001 เลข 3 เปลยี่ นเป็ นเลขฐานสอง 00000011 ดงั น้ัน คาสั่ง 9 + 3 เขยี นเป็ นภาษาเครื่องได้ดังนี้ 00001001 10101010 00000011

ภาษาคอมพวิ เตอร์ (Computer Language) 2. ภาษาในยคุ ท่ี 2 (Second Generation Language:2GL) 2GL เรียกอกี อย่างหนึ่งว่า “ภาษาสัญลกั ษณ์ (Symbol Language)” เร่ิมมี การใช้สัญลกั ษณ์แทนตวั เลขฐานสอง โดยสัญลกั ษณ์น้ันกค็ อื ภาษาองั กฤษ ซ่ึง อาจจะเป็ น 1 ตวั อกั ษร หรือเป็ นกลุ่มตวั อกั ษรกไ็ ด้ เพอื่ ใช้แทนคาสั่ง 1 คาสั่ง เช่น ภาษาแอสเซมบลี (Assembly) ซึ่งคาส่ังภาษาแอสเซมบลจี ะถูกแปลด้วยตวั แปลภาษา ช่ือ แอสเซมเบลอ (Assembler) เพอื่ ให้กลายเป็ นภาษาทเี่ คร่ืองอ่านแล้ว เข้าใจและนาไปใช้ได้ ตัวอย่างท่ี 1.19 แสดงคาสั่งของภาษาแอสเซมบลมี ดี งั นี้ ถ้าเราต้องการส่ังให้เครื่องทางานตามคาสั่ง 9 + 3 แสดงได้ดงั นี้ MOV AX, 9 MOV BX, 3 ADD AX, BX

ภาษาคอมพวิ เตอร์ (Computer Language) 3. ภาษาในยุคที่ 3 (Third Generation Language:3GL) 3GL เรียกอกี อย่างหน่ึงว่า “ภาษาระดบั สูง (High-Level Language)” ภาษาระดบั สูงเป็ นภาษาทผ่ี ู้เขยี นโปรแกรม สามารถเข้าใจได้ง่ายกว่าภาษาแอสเซมบลแี ละภาษาเครื่อง ท้ังนี้ กเ็ พราะการเขยี นคาสั่งของภาษาระดบั สูงมลี กั ษณะเป็ น ภาษาองั กฤษ ซึ่งอ่านแล้วเข้าใจได้ง่ายกว่าภาษาแอสเซมบลี เช่น ใช้คาว่า READ, WRITE, PRINT, COMPUTE เป็ นต้น ตวั อย่างของภาษาระดบั สูงได้แก่ ภาษาฟอร์แทรน (FORTRAN), ภาษาโคบอล (COBOL), ภาษาเบสิก (BASIC), ภาษาปาสคาล (PASCAL) และภาษาซี (C) เป็ นต้น

ภาษาคอมพวิ เตอร์ (Computer Language) 4. ภาษาในยุคท่ี 4 (Fourth Generation Language:4GL) 4GL เรียกอกี อย่างหน่ึงว่า “ภาษาระดบั สูงมาก (Very High-Level Language)” โดยได้พฒั นาจากภาษาในยคุ ท่ี 3 ให้มี ประสิทธิภาพมากขนึ้ มีคาส่ังที่สามารถเขยี นเป็ นภาษาองั กฤษ ได้มากขนึ้ และสามารถนามาใช้เขยี นคาส่ังเพอ่ื เช่ือมต่อกบั ฐานข้อมูลได้ ซ่ึงนักเขยี นโปรแกรมไม่ต้องบอกวธิ ีการทางาน โดยละเอยี ด เพยี งระบุเป็ นคาส่ังส้ัน ๆ ให้ภาษาระดบั สูงมาก เข้าใจกพ็ อ ส่วนการคานวณหรือการทางานภาษาระดบั สูงมาก จะจดั การเองท้งั หมด เช่น JAVA , SQL,Visual Basic , PHP เป็ นต้น

ภาษาคอมพวิ เตอร์ (Computer Language) 5. ภาษาในยุคที่ 5 (Fifth Generation Language:5GL) 5GL เรียกอกี อย่างหนึ่งว่า “ภาษาระดบั ธรรมชาติ (Natural Language)” มกี ารใช้ไวยากรณ์ทมี่ โี ครงสร้าง ใกล้เขยี งกบั ภาษามนุษย์มากทส่ี ุด จึงเป็ นภาษาทใ่ี ช้ในการ พฒั นาระบบผู้เช่ียวชาญ (Expert System: ES) ระบบ ปัญญาประดษิ ฐ์ (Artificial Intelligence: AI) และระบบ ฐานความรู้ (Knowledge Base System) เช่น ภาษา PROLOG, ภาษา LISP (List Processing Language)’ ภาษา LOGO

ตวั แปลภาษาคอมพวิ เตอร์ (Translation Program) คอื โปรแกรมระบบทีท่ าหน้าที่ในการแปล โปรแกรม หรือชุดคาส่ังทเี่ ขยี นด้วยภาษาทีไ่ ม่ใช่ ภาษาเคร่ืองหรือภาษาท่ีเคร่ืองไม่เข้าใจให้เป็ น ภาษาทเ่ี ครื่องเข้าใจ และนาไปปฏิบตั ิได้ เช่น ภาษาBASIC,COBOL,C,PASCAL, FORTRAN,ASSEMBLY เป็ นต้น สาหรับ ตวั แปลน้ันจะมอี ยู่ 3 แบบ คอื

ตัวแปลภาษาคอมพวิ เตอร์ (Translation Program) 1. Assembler เป็ นโปรแกรมที่ใช้แปลภาษาแอสแซมบลี ซึ่งมลี กั ษณะการแปรทลี ะคาสั่ง เมอ่ื ทาตามคาสั่งน้ันเสร็จแล้ว กจ็ ะแปลคาสั่งถัดไปเร่ือย ๆ จนจบ 2. อนิ เตอร์พรีเตอร์ (Interpreter) เป็ นตวั แปลภาษาระดบั สูงเช่นเดยี วกบั คอมไพล์เลอร์ แต่จะแปลพร้อมกบั ทางานตามคาสั่งทลี ะคาส่ังตลอดไปท้ังโปรแกรม ทาให้การ แก้ไขโปรแกรมทาได้ง่ายและรวดเร็ว การแปลโดยใช้อนิ เตอร์พรีเตอร์จะไม่สร้าง โปรแกรมเรียกใช้งาน ดงั น้ันจะต้องทาการแปลใหม่ทุกคร้ังทม่ี ีการเรียกใช้งาน ตวั อย่างตวั แปลภาษาที่ใช้ตวั แปลอนิ เตอร์พรีเตอร์ เช่น ภาษาเบสิก (BASIC) 3. คอมไพเลอร์ (Compiler) เป็ นตวั แปลภาษาระดบั สูง เช่น ภาษาปาสคาล ภาษาโคบอล และภาษาฟอร์เเทรน การทางานจะใช้หลกั การแปลโปรแกรมต้นฉบับท้งั โปรแกรม ให้เป็ นโปรแกรมเรียกใช้งาน (executable program) ซึ่งจะถูกบนั ทกึ ไว้ในลกั ษณะ ของแฟ้ มข้อมูลหรือไฟล์ เมอ่ื ต้องการเรียกใช้งานโปรแกรมกส็ ามารถเรียกใช้จาก ไฟล์เรียกใช้งานโดยไม่ต้องทาการแปลหรือคอมไพล์อกี ทาให้การทางานเป็ นไป อย่างรวดเร็ว

การทดสอบโปรแกรม (Program Testing) หลงั จากทเี่ ราเขยี นโปรแกรมเสร็จแล้ว ข้นั ตอนต่อไป คอื การทดสอบโปรแกรมท่ีเขยี น ขนึ้ ซ่ึงอาจพบความผดิ พลาดได้ 2 ชนิด ดงั นี้ 1) ความผดิ พลาดทางไวยากรณ์ภาษา (syntax error) เป็ นความผดิ พลาดทเ่ี กดิ จาก การเขยี นคาสั่งของภาษาคอมพวิ เตอร์ผดิ ตัวอย่างเช่น คาส่ัง printf( ) ในภาษา C ต้อง เขยี นด้วยตัวอกั ษรตวั เลก็ แต่เขยี นเป็ น PRINTF( ) เป็ นต้น โดยส่วนมากความผิดพลาด ทางไวยากรณ์ จะถูกตรวจสอบพบเมอื่ มกี ารแปลโปรแกรม (compile) ให้เป็ นภาษาเคร่ือง ซ่ึง เราสามารถแก้ไขโดยการเขยี นคาส่ังให้ถูกต้องตามไวยากรณ์ของภาษาน้ัน ๆ 2) ความผดิ พลาดทางตรรกะ (logical error) เป็ นความผดิ พลาดทเี่ กดิ จากการลาดบั การทางานผดิ หรือป้ อนสูตรคานวณผดิ

การทบทวนการทางานของโปรแกรมครัง้ สุดท้าย (Program Formalization) เป็ นข้นั ตอนของการตรวจสอบ Source Code ของโปรแกรมท้งั หมดอกี คร้ัง แล้ว ลบ Dead Code... ต่างๆออกให้หมด จากน้ันทดลองรัน โปรแกรมดูว่าโปรแกรมยงั คงทางานได้เหมอื นเดมิ หรือไม่ หลงั จากน้ันโปรแกรมเมอร์จะตรวจสอบ เอกสารต่างๆท่เี กยี่ วกบั ตัวโปรแกรม และส่งมอบ เอกสารท้งั หมดให้กบั นักวเิ คราะห์ระบบ


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