หลักการเขียนโปรแกรม
PROGRAMMING PRINCIPLES
PROGRAMMER
หน่วยที่ 1 หลักการเขียนโปรแกรม
ประจักษ์ ปะทะดี LEARN NOW
ตำแหน่ง ครู วิทยฐานะ ครูชำนาญการ
หลกั การเขยี นโปรแกรมดว้ ย C++
โปรแกรมคอมพิวเตอร์ถอื ว่ามบี ทบาทสำคญั ในการช่วยอํานวยความสะดวก ในการใช้ชวี ติ และในปัจจุบันถือ
ว่าเปน็ ยคุ ดิจิทัล ทุกสิง่ ทุกอย่างเกี่ยวขอ้ งกบั การใชโ้ ปรแกรม คอมพวิ เตอรท์ ้ังสิ้น ในหนว่ ยน้เี ราจะมาเรยี นรู้หลักการ
เขยี นโปรแกรมเบอ้ื งต้นด้วยภาษา C++ ซงึ่ เปน็ ภาษาคอมพวิ เตอรท์ ี่ใช้งานอย่างกวา้ งขวาง และเป็นจุดเร่ิมต้นของ
การเรยี นร้ภู าษาโปรแกรมคอมพิวเตอร์ไดเ้ ปน็ อย่างดี
1.1 ภาษาโปรแกรมคอมพิวเตอร์
หมายถึง ภาษาที่ใช้สื่อสารระหว่างผู้ใช้งานกับคอมพิวเตอร์ หรือคอมพิวเตอร์ด้วยกัน แล้วคอมพิวเตอร์
สามารถทำงานตามคำสั่งนั้นได้ ภาษาโปรแกรมคอมพิวเตอร์สามารถ แบ่งออกเป็นสองกลุ่มใหญ่ๆ คือ ภาษา
ระดับสูง (high level) และภาษาระดับต่ำ (low level) ภาษาระดับสูงถูกออกแบบมาเพื่อให้ใช้งานง่ายและ
สะดวกสบายมากกว่าภาษาระดับต่ำ โปรแกรมที่เขียนถูกต้องตามกฎเกณฑ์และไวยากรณ์ของภาษาจะถูกแปลง
(compile) ไปเปน็ ภาษาระดบั ต่ำเพ่อื ใหค้ อมพิวเตอร์สามารถนําไปใชง้ านหรอื ปฏบิ ตั ิตามคำสั่งได้ตอ่ ไป
เนอื่ งจากการท่ีมภี าษาจำนวนมากมายน้ันจำเปน็ ต้องกำหนดระดับของภาษา คอมพิวเตอร์เพอ่ื ช่วยในการแบ่ง
ประเภทของภาษาเหล่านั้น เกณฑ์การกำหนดว่าเป็น ภาษาระดับต่ำหรือภาษาระดับสูงจะพิจารณาว่าภาษาน้ัน
ใกล้เคียงกบั ภาษาเคร่ืองคอมพวิ เตอร์ (ใกล้เคยี งกับรหัส 0 และ 1 เรียกวา่ ภาษาระดบั ต่ำ) หรอื ว่าใกล้เคยี งกับภาษา
ที่มนุษยใ์ ช้ (ใกลเ้ คยี งกบั ภาษาองั กฤษเป็นประโยคเรียกวา่ ภาษาระดบั สูง)
ภาษาเครอ่ื ง (Machine Language)
เปน็ ภาษาระดบั ต่ำท่ีสุดเพราะใชเ้ ลขฐานสองแทนข้อมูลและคำส่ังต่าง ๆ ทั้งหมด จะเป็นภาษาทข่ี ึน้ อยู่กบั ชนิด
ของเครือ่ งคอมพิวเตอรห์ รอื หน่วยประมวลผลท่ใี ช้ นั่นคือ แต่ละเครอ่ื งก็จะมรี ูปแบบของคำสง่ั เฉพาะของตนเองซ่ึง
นักคํานวณและนักเขียนโปรแกรม ในสมัยก่อนต้องรู้จักวิธีที่จะรวมตัวเลขเพื่อแทนคำสั่งต่าง ๆ ทำให้การเขียน
โปรแกรมยุง่ ยากมาก นกั คอมพวิ เตอร์จงึ ได้พฒั นาภาษาแอสเซมบลขี ึ้นมาเพือ่ ให้สามารถเขยี นโปรแกรมไดง้ ่ายขึ้น
ข้อควรรู้
ในระบบเลขฐานสองประกอบด้วยตัวเลข 0 และ 1 เท่านั้น ซึ่งถือเป็นพื้นฐานใน 1 การท ำงานของ
คอมพวิ เตอร์
ครูผสู้ อน ประจักษ์ ปะทะดี 1
ภาษาแอสเซมบลี (Assembly Language)
ภาษาแอสเซมบลีใชร้ หสั เป็นคําแทนคำสง่ั ภาษาเคร่ืองทำให้นักเขียนโปรแกรม สามารถเขยี นโปรแกรมได้ง่าย
ขึ้น ถึงแม้ว่าการเขียนโปรแกรมจะยงั ไมส่ ะดวกเทา่ กับ การเขยี นโปรแกรมภาษาอืน่ ๆ ในสมัยนี้ แต่ถ้าเปรียบเทียบ
ในสมัยนั้นก็ถือว่าเป็นการพัฒนา ไปสู่ยุคของการเขียนโปรแกรมแบบใหมค่ ือใช้สญั ลักษณ์แทนเลข 0 และ 1 ของ
ภาษาเคร่ือง แตข่ ้อจาํ กัดของภาษาแอสเซมบลคี ือจะแตกต่างกันไปในแต่ละเครอ่ื งเช่นเดียวกับภาษาเคร่ือง ผู้เขียน
โปรแกรมภาษาแอสเซมบลีต้องใช้แอสเซมเบลอ (Assembler) แปลภาษาแอสเซมบลี ให้เป็นภาษาเครื่องเพื่อให้
คอมพวิ เตอร์ทำงานตามตอ้ งการ
ภาษาระดับสูง (High Level Language)
ในปี ค.ศ. 1960 ได้มีการพัฒนาภาษาระดับสูง (High Level Language) ขึ้น ภาษา ระดับสูงจะใช้คําใน
ภาษาอังกฤษแทนคำสั่งต่าง ๆ รวมทัง้ สามารถใช้นพิ จน์ทางคณิตศาสตร์ ได้ดว้ ย ทำใหน้ ักเขียนโปรแกรมสามารถใช้
เวลามุ่งไปในการศึกษาถงึ ทางแก้ปัญหาเท่านั้น ไมต่ ้องเปน็ กงั วลวา่ คอมพิวเตอรจ์ ะทำงานอยา่ งไรอีกตอ่ ไป
ภาษาระดบั สงู นี้ถือวา่ เปน็ ภาษายุคทส่ี าม (third-generation language) ซง่ึ ทำให้ เกดิ การประมวลผลข้อมูล
เพิ่มมากขึ้นอย่างมหาศาล และมีผู้หันมาใช้คอมพิวเตอร์กันมากขึ้น โดยสังเกตได้ตามเครือ่ งเมนเฟรมจากจ ำนวน
รอ้ ยเครอ่ื งเพ่มิ ขึ้นเปน็ หม่ืนเคร่ือง อยา่ งไรก็ตาม ภาษาระดับสงู กย็ งั คงต้องการตัวแปลภาษาให้เปน็ ภาษาเคร่ืองเพื่อ
สั่งให้เครื่องทำงานต่อไป ตัวแปลภาษาที่นิยมใช้งานกันโดยทั่วไปจะเป็นแบบคอมไพเลอร์ซึ่งแต่ละภาษาก็มี
คอมไพเลอร์ ไม่เหมือนกัน รวมทั้งคอมไพเลอร์แต่ละตัวก็จะต่างกันไปบนเครื่องแต่ละชนิดด้วย เช่น ถ้าเขียน
โปรแกรมภาษา COBOL บนเครื่องไมโครคอมพิวเตอร์ก็จะต้องเลอื กใช้คอมไพเลอร์ ภาษา COBOL ที่ทำงานบน
เครอื่ งไมโครคอมพิวเตอร์ ซงึ่ การเขียนโปรแกรมภาษาหนงึ่ ภาษาใด บนเคร่อื งท่ีต่างกันอาจจะแตกต่างกันได้เพราะ
คอมไพเลอรท์ ีใ่ ช้ต่างกนั นนั่ เอง
ภาษาคอมพิวเตอร์บางภาษาไดถ้ ูกออกแบบมาให้ใช้แก้ปัญหางานเฉพาะบางอย่าง เช่น การควบคุมหุน่ ยนต์
การสร้างภาพกราฟิก เป็นต้น แต่ภาษาคอมพิวเตอร์โดยมากจะมี ความยืดหยุ่นให้ใช้งานทั่ว ๆ ไปได้ เช่น ภาษา
BASIC ภาษา COBOL หรอื ภาษา FORTRAN เป็นตน้ และนอกจากนยี้ ังมีภาษา C ทไ่ี ดร้ ับความนิยมมากเชน่ กัน
คำถาม ?
ภาษาระดับสูง มีตัวแปรภาษาให้เปน็ ภาษาเครอ่ื งกีแ่ บบ
ตอบ สองแบบ คือ คอมไพเลอร์ (compiler) กบั อนิ เทอรพ์ รีเตอร์ (interpreter)
2 หลกั การเขยี นโปรแกรม (Programming Principles)
ภาษาระดบั สูงมาก (Very high-level Language)
เป็นภาษายุคท่ี 4 (fourth-generation language) หรือ 4GLS จะเป็นภาษาที่ใช้เขียน โปรแกรมได้สั้นกวา่
ภาษาในยุคกอ่ น ๆ การทํางานบางอย่างสามารถใช้เพียง 5 ถงึ 10 บรรทดั เท่านนั้ ในขณะทีถ่ ้าเขียนดว้ ยภาษาอาจ
ต้องใช้ถึง 100 บรรทัด โดยพื้นฐานแล้วภาษาในยุคที่ 4 นี้ มีคุณสมบัติที่แยกจากภาษาในยุคก่อน ๆ อย่างชัดเจน
กลา่ วคอื ภาษาในยุคกอ่ นน้นั ใชห้ ลักการ ของการเขียนโปรแกรมแบบโพรซีเยอร์ (procedure language) ในขณะที่
ภาษาในยุคที่ 4 จะเป็น แบบไม่ใช้โพรซีเยอร์ (nonprocedure language) ผู้เขียนโปรแกรมเพียงแต่กําหนดว่า
ตอ้ งการ ใหโ้ ปรแกรมทาํ อะไรบา้ งกส็ ามารถเขียนโปรแกรมได้ทันทโี ดยไม่ต้องทราบว่าทําได้อย่างไร ทําให้การเขียน
โปรแกรมสามารถทําได้ง่ายและรวดเร็ว ภาษาในยุคที่ 4 นี้ยังมีภาษาที่ใช้สําหรับ เรียกดูข้อมูลจากฐานข้อมูลได้
เรยี กวา่ ภาษาเรยี กค้นขอ้ มูล (query language) โดยปกตแิ ล้ว การเกบ็ ขอ้ มลู ลงในฐานข้อมูลและการแสดงรายงาน
จากฐานขอ้ มลู จะตอ้ งมีการวางแผนไว้ ล่วงหน้า แตบ่ างคร้งั อาจมีการเรยี กดูข้อมูลพิเศษท่ไี ม่ได้มกี ารวางแผนไว้ ถ้า
ผู้ใช้เรียนร้ภู าษา เรยี กคน้ ขอ้ มลู ก็จะขอดูรายงานต่าง ๆ นอกเหนือจากที่ได้มีการวางแผนไว้ได้โดยใชเ้ วลา ไม่มากนัก
ภาษาเรียกค้นข้อมูลที่เป็นมาตรฐานเรียกว่า SQL (Structured Query Language) และนอกจากนี้ยังมีภาษา
Query by Example หรอื QBE ทไี่ ดร้ บั ความนยิ มในการใชง้ านมากเชน่ กนั
ภาษาธรรมชาติ (Nature Language)
ภาษาธรรมชาติเป็นภาษายุคที่ 5 (fifth-generation language) หรือ 5GLS ธรรมชาติ หมายถึง ธรรมชาติ
ของมนุษย์คือไม่ต้องสนใจถึงคำสั่งหรือลำดับของข้อมูลที่ถูกต้อง ผู้ใช้ เพียงแต่พิมพ์สิ่งที่ต้องการลงในเครื่อง
คอมพิวเตอร์เปน็ คําหรือประโยคตามท่ผี ใู้ ช้เขา้ ใจ ซ่ึงจะทำให้มีรูปแบบของคำสั่งหรือประโยคทแี่ ตกตา่ งกันออกไปได้
มากมาย เพราะผู้ใช้ แตล่ ะคนอาจจะใชป้ ระโยคต่างกันใช้คำศัพท์ต่างกันหรือแม้กระทงั่ บางคนอาจจะใช้ศัพท์สแลง
ก็ได้ คอมพวิ เตอรจ์ ะพยายามแปลคาํ หรอื ประโยคเหลา่ นั้นตามคำสั่ง แตถ่ า้ ไมส่ ามารถแปล ใหเ้ ขา้ ใจได้ก็จะมีคําถาม
กลบั มาถามผใู้ ชเ้ พ่อื ยนื ยันความถกู ตอ้ ง ภาษาธรรมชาติจะใช้ระบบ ฐานความรู้ (Knowledge base system) ช่วย
ในการแปลความหมายของคำสั่งตา่ ง ๆ
ครูผูส้ อน ประจกั ษ์ ปะทะดี 3
1.2 รปู แบบการเขยี นโปรแกรม
เนอ่ื งจากภาษาโปรแกรมคอมพิวเตอรม์ ีอยมู่ ากมาย แต่ละภาษามวี ตั ถปุ ระสงค์ การนําไปใชง้ านท่ีแตกต่างกัน
เช่น ภาษา Assembly ใชใ้ นการเขียนโปรแกรมควบคุมการทำงาน ของเคร่ืองจกั ร ภาษา BASIC และ C ใช้ในการ
เรียนการสอนเขียนโปรแกรม ภาษา COBOL ใชเ้ ขยี นโปรแกรมเพื่อแสดงผลข้อมูลทางธุรกจิ ภาษา HTML ใช้เขียน
โปรแกรมแสดงผลบน หน้าเวบ็ ภาษา SQL ใชเ้ ขียนโปรแกรมเพอ่ื ดึงขอ้ มูลจากฐานขอ้ มลู
รปู แบบการเขียนโปรแกรม (Programming paradigm) มีประวัติความเป็นมาอย่าง ยาวนานและมีรูปแบบ
การเขียนโปรแกรมเกิดขึ้นมามากมาย เช่น การเขียนโปรแกรมเชิง โครงสร้าง (Structure Programming), การ
เขียนโปรแกรมแบบฟังก์ชัน (Functional Programming), การเขียนโปรแกรมแบบตรรกะ (Logic
Programming), การเขียนโปรแกรมเชิงวัตถุ (Object oriented Programming) เป็นต้น ซึ่งรูปแบบการเขียน
โปรแกรมในแต่ละรปู แบบกม็ ีหลักการ และกระบวนการทำงานที่แตกตา่ งกัน
การเขยี นโปรแกรมเชิงโครงสรา้ ง
การเขียนโปรแกรมเชงิ โครงสรา้ ง เป็นการเขียนโปรแกรมโดยยึดหลักการเขียน โปรแกรมแบบแยกเป็นหน่วย
ย่อย (Module) ตามหน้าที่แล้ว รวบรวมหน่วยย่อยเหล่านั้น เข้าด้วยกันเป็นโครงสร้างสอดคลอ้ งสัมพันธ์กัน เรา
เรียกขน้ั นวี้ า่ ข้ันผสมผสาน (Integration) โครงสรา้ งทไ่ี ดก้ ค็ อื โปรแกรมท่ตี อ้ งการ
หลกั การเขียนโปรแกรมเชงิ โครงสรา้ ง
• การเรยี งลำดับ (Sequencing) เปน็ การประมวลผลการทำงานวา่ สมควรจะทำ อย่างไรกบั ลำดบั
ตรรกะท่ีได้กำหนดไวใ้ นคำสั่งของโปรแกรม
• การเลือก (Selection) เป็นการเลือกจำนวนของชุดคําสัง่ ทีใ่ ช้ในการประมวลผล ในโปรแกรม
โดยชดุ คาํ ส่งั เหล่าน้ีจะมีคาํ หลักทใี่ ชใ้ นการกำหนดลำดบั ในการประมวลผล เช่น if, then, endif, หรือ Switch
• การทาํ ซ้ำ (Repetition) โปรแกรมจะประมวลผลชุดคาํ ส่ังไปเรือ่ ย ๆ จนกว่าจะไป ถึงจุดท่มี ีการ
เปลี่ยนกระบวนการทำงานไปยังชุดคําสัง่ อน่ื คาํ หลกั ที่เกี่ยวข้อง เช่น repeat, for, do...until
ภาษาที่ใช้พัฒนาโปรแกรมในลักษณะนี้ จัดเป็นภาษาประเภทที่เรียกว่า ภาษา กระบวนคำส่ัง
(Procedural Language) การเขียนโปรแกรมแนวนี้ได้ถูกใช้มานานตั้งแต่ยุคก่อน จนถึงยุคปัจจุบันก็ยังใช้อยู่
โดยเฉพาะโปรแกรมทม่ี ีขนาดเล็ก
4 หลักการเขียนโปรแกรม (Programming Principles)
การเขยี นโปรแกรมเชิงวตั ถุ
การเขยี นโปรแกรมเชิงวัตถุ ไมใ่ ชท่ ั้งภาษาหรือซอฟต์แวรแ์ ต่เปน็ เพยี งแบบอย่าง (Paradigm) หรอื รปู แบบการ
เขยี นและยงั เป็นวิธคี ดิ อีกด้วย ซงึ่ ประกอบดว้ ยหลกั การ ดังน้ี
• Encapsulate หมายถึง การห่อหุ้ม เกิดจากแนวคิดว่าวัตถุ (object) ควรแยกโค้ด ส่วนเชื่อมต่อ
(Interface) กับโค้ดส่วนประมวลผลและข้อมูล (Process and Data) ออกจากกัน ข้อมูลและส่วนประมวลผล
ทั้งหมดควรถูกซ่อนไว้เบื้องหลังอินเตอร์เฟส หากจัดให้มีอินเตอร์เฟส ที่ดีและรักษาความคงเส้นคงวาของ
อินเตอร์เฟสไว้ แม้จะมกี ารเปลีย่ นโค้ดส่วนประมวลผล ทง้ั หมด โปรแกรมกย็ งั สามารถใช้งาน object ไดท้ ้ังหมด
• Inheritance หมายถึง การสบื ทอดความสามารถและคณุ สมบตั ิ เปน็ การขยาย คณุ สมบตั ขิ องคลาสโดย
การคงตวั แม่แบบเอาไว้ คลาสทีส่ ืบทอดออกมาจะมีความสามารถ และคุณสมบัติเช่นเดียวกับต้นแบบทกุ ประการ
และเราสามารถเพ่ิมเติมความสามารถและ คณุ สมบตั ไิ ด้
• Polymorphism หมายถงึ การพ้องรูป เปน็ แนวคดิ ทจ่ี ะทำให้วัตถุท่ีสร้างข้ึนมาใหม่ สามารถจะใช้การ
ทำงานของวัตถทุ ่ีเป็นตน้ แบบได้ ดังท่ีเหน็ ว่า แม้ว่าคนกบั ม้าจะวง่ิ ไม่เหมือนกนั แต่ก็สามารถจะทำงานด้วยคำสั่งซ้ือ
เดียวกนั ได้ คือ วิง่ แล้วจะวง่ิ ยังไงและให้ผลยังไงก็แลว้ แต่
การเขียนโปรแกรมแบบฟงั ก์ชัน
การเขียนโปรแกรมแบบฟังก์ชัน เป็นการเขียนโปรแกรมรูปแบบหนึ่งที่ใช้ในการ ประมวลผลฟังก์ชันทาง
คณิตศาสตร์โดยจะเน้นประยุกต์การใช้งานฟังก์ชัน การเขียนโปรแกรม แบบฟังก์ชันมีรากฐานมาจากแลมป์ตา
แคลคลู ัส (lambda calculus) ซึ่งมีแนวคิดดงั นี้
• First-class functions คือ ฟงั กช์ นั ที่มลี กั ษณะเหมือนตัวแปรในภาษาอืน่ คอื สามารถเปลี่ยนแปลงการ
ทำงานของฟงั กช์ ันไดโ้ ดยใช้ช่ือเดิม
• Higher-order functions คือ ฟังก์ชันที่มีความสามารถเหมือนตัวแปรแล้ว มันจึงส่ง อาร์กิวเมนต์
(Argument) เขา้ ไปในฟงั ก์ชนั อ่นื หรือ คืนคา่ (return) จากฟงั กช์ ันอ่นื ได้ โดย ถา้ มนั รบั จากฟงั กช์ นั อืน่ ซอ้ น ๆ กัน
หรือคืนคา่ จากฟงั กช์ นั อนื่ ซ้อนๆ กนั ลำดับของมนั ก็สงู ข้ึน ตามจำนวนทีซ่ ้อนเรียกลงไป
• Recursion การทำซ้ำต่าง ๆ ในรปู แบบการเขียนโปรแกรมจะใชร้ ปู แบบการวนซำ้ เชน่ for, while แต่
เนื่องจากตัวแปรไม่สามารถเปลี่ยนแปลงได้ การวนซ้ำแบบนั้นจึงทำไม่ได้ การทำซ้ำต่าง ๆ ในการเขียนโปรแกรม
แบบฟังก์ชนั จึงอยใู่ นรูปแบบเรยี กตวั เองซ้ำ
• Non-strict evaluation คือ การทำงานกบั ข้อมูลทต่ี ้องใช้เท่านั้น
ครูผ้สู อน ประจกั ษ์ ปะทะดี 5
1.3 ภาษา C++
ภาษา C++ ถูกพัฒนาขึ้นมาเม่ือปี ค.ศ. 1983 ที่ Bell Laboratories โดย BjameStroustrap ภาษา C++
ถูกพัฒนาขึ้นมาจากภาษา C และมีการเพิ่มความสามารถของภาษา C++ ให้ สามารถเขียนเป็นโปรแกรมเชิงวตั ถุ
(Object-Oriented Programming) ได้ C++ จัดเป็นภาษา ที่มีความสามารถมากกว่า ADA และ Modula-2
ขณะท่ียังคงความมปี ระสทิ ธภิ าพและ ความกะทัดรัดของภาษา C ไว้ ดังนนั้ จึงเปน็ ภาษาโปรแกรมภาษาหนงึ่ ทยี่ อม
ให้โปรแกรมเมอร์ เขียนโปรแกรมแบบมโี ครงสร้าง และเขียนโปรแกรมเชิงวัตถุได้อย่างมีประสิทธิภาพ C++ เป็น
ภาษาผสม (Hybrid Language) โดยอาจแก้ปญั หาหนึ่งด้วยวิธี Object-Oriented ลว้ น ๆ หรืออาจแก้ปัญหาด้วย
การใช้ภาษาแบบเก่า ซึ่งมีโครงสร้างบางอย่างเพิม่ ขึน้ จากภาษา C ในทางปฏิบัตใิ นการแก้ปญั หามักจะสะท้อนให้
เหน็ วธิ กี ารท้งั 2 แบบ
รปู แบบการเขียนโปรแกรม C++
จะเขยี นโปรแกรมโดยการเรยี กใช้แตล่ ะชุดคําสง่ั ของโปรแกรมทเ่ี รยี กว่า ฟงั ก์ชนั (Function) หรอื ในโปรแกรม
ภาษาอ่ืนอาจจะเรียกว่า โปรแกรมย่อยหรอื ชดุ คําส่ังยอ่ ย (Procedure) ฟงั กช์ นั เหล่าน้จี ะมีช่อื อะไรกไ็ ด้ มกี ี่ฟงั กช์ นั ก็
ได้ แตอ่ ยา่ งนอ้ ยต้องมี 1 ฟงั กช์ นั คอื ฟังกช์ ัน main() เพ่อื บอกให้โปรแกรมเรม่ิ ทำงานที่ฟงั กช์ ันนี้
โดยมรี ูปแบบการเขียนโปรแกรมดังนี้
Preprocessor directive //#include<iostream>
using directive //using namespace std;
Global Function or Variable declarations // int x ;
int main () {
statements;
return 0
}
พรีโปรเซสเซอร์ใดเร็กทีฟ (Preprocessor directive) เป็นการนําไฟล์ต่าง ๆ ที่ระบุไว้ มาเก็บไว้ใน
โปรแกรม จะต้องเรม่ิ ต้นด้วยสัญลกั ษณ์ # ตามด้วยช่อื เมอื่ ต้องการนําไฟลเ์ ขา้ มา รวมกับโปรแกรม
ไดเร็กทีฟ using เป็นการเรียกใช้งาน namespace เมื่อมีการเรียกใช้ไฟล์เฮดเตอร์ ในรูปแบบ
“#include<iostream” ที่พรีโปรเซสเซอร์ไดเร็กทีฟ จะต้องกําหนด namespace ขึ้น std ซึ่งเป็นชื่อของ
namespace ที่นยิ ามของ identifiers ท้ังหมดของ C++ Standard library
6 หลักการเขียนโปรแกรม (Programming Principles)
รปู ท่ี 1.1 การแปลงภาษาด้วยคอมไพเลอร์
คอมไพเลอร์ (Compiler) C++
คอมไพเลอรเ์ ป็นโปรแกรมประเภทหนึ่ง ทมี่ ีหนา้ ท่ีแปลงโคด้ ท่ีเราเขยี นด้วยภาษา โปรแกรมตา่ ง ๆ เป็นภาษาท่ี
เครื่องคอมพิวเตอร์เข้าใจในขั้นตอนการคอมไพล์หากเกิดข้อผิดพลาด ขึ้นในโค้ดที่เราเขียน คอมไพเลอร์จะแจ้ง
ข้อผดิ พลาดดงั กลา่ วออกมา ผ้เู ขยี นโปรแกรมต้อง กลบั ไปแกไ้ ขโค้ด แล้วทำการคอมไพล์ใหม่อกี ครัง้
สำหรับคอมไพเลอรท์ ี่ใชใ้ นภาษา C++ มีอยหู่ ลายตวั ดว้ ยกัน และมคี วามสามารถท่ี ตา่ งกัน ซึง่ ข้ึนกับผู้พัฒนา
แต่ยังคงมีมาตรฐานเหมือนกันอยู่ คอมไพเลอรท์ ี่นำมาใช้งานมีทัง้ แบบฟรีและเสียค่าลิขสทิ ธิ์ ที่นำมาใช้งานไดฟ้ รี
เช่น Code::Blocks, Borland C++ compiler, Bloodshed Dey-C++ และแบบที่ต้องซื้อมา เช่น Microsoft
Visual C++, Borland C++ Builder เปน็ ต้น
1.4 การตดิ ต้ังคอมไพเลอร์ C++
การเขียนโปรแกรมคอมพิวเตอรจ์ ะเขยี นโคด้ หรอื คำสั่งต่าง ๆ ดว้ ยโปรแกรมที่เรียกว่า editor เช่น notepad แลว้
ทำการแปลงภาษาท่เี ขยี นเขียนแปน็ ภาษาเครอ่ื งโดยใช้คอมไพเลอร์ (Compiler) ของภาษาทีใ่ ช้เขยี นโปรแกรม ซึง่
คอมไพเลอร์ของภาษา C++ น้นั มผี ผู้ ลิตหลายรายและเปน็ ไปตามมาตรฐาน ANSI C++ การใช้ editor คอมไพล์
โปรแกรมน้นั คอ่ ยข้างยุ่งยากเพราะต้องทำการติดตง้ั ตัวคอมไพเลอร์แยกต่างหาก และกำหนด environment ของ
editor เพื่อให้สามารถเรียกใชค้ อมไพเลอรไ์ ด้ แตป่ จั จุบันมีเคร่ืองมอื ทีช่ ว่ ยใหส้ ามารถคอมไพลโ์ ปรแกรมได้ง่ายขึ้น
เรียกว่า IDE ซ่ึงเปน็ editor ท่ีตดิ ตั้งตัวคอมไพเลอรม์ าพร้อมกนั เม่อื ติดตั้งเสร็จสามารถคอมไพลโ์ ปรแกรมไดเ้ ลย ซึ่ง
เครอื่ งมือ IDE ที่เป็นทน่ี ยิ มในการเขียนโปรแกรมภาษา C++ มอี ยหู่ ลายตวั เช่น Code::Blocks, Bloodshed Dev-
C++, Microsoft Visual C++, Borland C++ Builder เป็นต้น
ครูผ้สู อน ประจกั ษ์ ปะทะดี 7
ติดตง้ั โปรแกรม Dev-C++
โดยเรมิ่ จากการดาวนโ์ หลดไดท้ ี่ https://sourceforge.net/projects/orwelldevcpp/ หลักจากทำการ
ดาวนโ์ หดลมาแล้วก็ทำการติดตงั้ โปรแกรมใหเ้ รียบรอ้ ย
รูปท่ี 1.2 เวบ็ ไซตส์ ำหรบั ดาวน์โหลดโปรแกรม Dev-C++
รปู ท่ี 1.2 หนา้ ต่างโปรแกรม Dev-C++
8 หลักการเขยี นโปรแกรม (Programming Principles)
การเขยี นโปรแกรม C++ เบ้ืองตน้
ทำการสร้างไฟลโ์ ปรแกรมและทดลองเขียนโปรแกรม C++ แสดงข้อมูลออกจากภาพ
รปู ท่ี 1.3 การสร้างไฟล์ การเขียนโปรแกรมและการแสดงผล
ครูผูส้ อน ประจกั ษ์ ปะทะดี 9
Note
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
10 หลักการเขียนโปรแกรม (Programming Principles)