พ้นื ฐานการเขียนโปรแกรม • 1. โปรแกรมคอมพิวเตอร์ (Computer Program) • โปรแกรมคอมพวิ เตอร์ คอื ชดุ คำสงั่ ที่มขี นั้ ตอนตมลำดบั หรือตำมเงื่อนไขท่ีกำหนด เพือ่ ให้คอมพิวเตอร์ทำงำนตำมวตั ถปุ ระสงค์ แบง่ ออกเป็ น 2 • ประเภทใหญ่ๆ คือ • ต1.ำ่ โงปๆรแกรมระบบ (System Software) หรือท่เี รียกวำ่ ระบบปฏิบตั ิกำร (Operating System) ใช้สำหรับควบคมุ กำรทำงำนหลกั • ทเี่ กี่ยวกบั เครื่องคอมพวิ เตอร์ ตวั อยำ่ งของระบบปฏบิ ตั กิ ำร ได้แก่ ดอส (DOS) วนิ โดวส์ (Windows) ยกู นิกซ์ (Unix) • 2. โปรแกรมใช้งำนหรือโปรแกรมประยกุ ต์ (Application Software) ใช้สำหรับประมวลผลข้อมลู ตำ่ งๆ เชน่ โปรแกรมประมวลผลคำ • (Word Processor) หรือโปรแกรมใช้งำนด้ำนตำ่ งๆ โดยอำจเป็ นโปรแกรมสำเร็จรูป หรือเป็ นโปรแกรมท่เี ขียนขนึ ้ เพ่อื ใช้งำนเฉพำะอยำ่ ง • ในกำรใช้งำนคอมพิวเตอร์ เคร่ืองคอมพิวเตอร์จะต้องมีระบบปฏิบตั กิ ำรและโปรแกรมใช้งำนตดิ ตงั้ อยภู่ ำยในก่อน ผ้ใู ช้งำนทว่ั ไปจงึ จะสำมำรถ เรียกใช้โปรแกรมสำเร็จรูปหรือโปรแกรมใช้งำนนนั้ ได้
ผ้ใู ช้งำนทว่ั ไปไมจ่ ำเป็นต้องเขียนโปรแกรมขนึ ้ เอง กำรเขียนโปรแกรมคอมพวิ เตอร์ทำได้โดยนกั เรียนโปรแกรม (Prorammer) ซงึ่ ต้องเขียนอยำ่ งมีขนั้ ตอนถกู ต้องตำมหลกั กำรเขียนโปรแกรมที่ดี ตรงตำมวตั ถปุ ระสงค์ ของกำรใช้งำนและเลือกภำษำท่ีใช้เขียนโปรแกรมภำษำใดภำษำหนง่ึ หรือหลำยภำษำก็ได้ ตำมควำมเหมำะสม
ภำษำคอมพิวเตอร์ (Computer Languages) • คอมพิวเตอร์ทำงำนโดยภำษำเคร่ือง (Machine Language) ซง่ึ ทำควำมเข้ำใจยำก เนื่องจำกเป็นรหสั ตวั เลข แบบต่ำงๆ ไมส่ ะดวกตอ่ กำรเขียนโปรแกรม จงึ ได้มีกำรพฒั นำภำษำท่ีใช้กบั คอมพิวเตอร์ขนึ ้ มำหลำยภำษำ แบง่ เป็น 2 ระดบั คือ • 1. ภำษำระดบั ต่ำ (Low-level Language) เป็นภำษำที่เข้ำถงึ กำรทำงำนในระดบั เครื่อง เชน่ ภำษำแอสเซมบลี (Assembly Language) ซงึ่ ใช้รหสั ตวั อกั ษรสำหรับใช้แทนภำษำเคร่ือง แตย่ งั ไมส่ ะดวกกบั ผ้ใู ช้งำนทว่ั ไป • 2. ภำษำระดบั สงู (High-level Language) เป็นภำษำที่สำมำรถศกึ ษำและทำควำมเข้ำใจได้ง่ำยขนึ ้ เหมำะ สำหรับกำรใช้งำนในลกั ษณะต่ำงกนั • มีหลำยภำษำตำมวตั ถปุ ระสงค์ของกำรพฒั นำภำษำเพ่ือใช้งำน
ตวั แปลภำษำ • ตวั แปลภำษำมี 2 แบบ คือ • 1. ตวั แปลโปรแกรมหรือคอมไพเลอร์ (Compiler) จะทำกำรแปลโปรแกรมพร้อมกนั ทงั้ โปรแกรมให้เป็นภำษำเครื่อง • โปรแกรมท่ีเขียนด้วยภำษำใดๆ เรียกว่ำ โปรแกรมต้นฉบบั (Source Program) หรือรหสั ต้นฉบบั (Source Code) เม่ือทำกำรแปล • โดยตวั แปลโปรแกรมแล้วจะได้ผลหรือโปรแกรมภำษำเคร่ืองทเ่ี รียกว่ำ \"โปรแกรมจดุ หมำย\" (Object Program) หรือ รหสั จดุ หมำย • (Object Code)
2. ตวั แปลคำสงั่ หรืออินเทอร์พรีเตอร์ (Interpreter) จะทำกำรแปลโปรแกรมต้นทำงที ละประโยคคำสง่ั (Statement) ให้เป็นคำสง่ั ภำษำเคร่ืองแล้ว ทำงำนตำมคำสงั่ นนั้
เมื่อทำงำนตำมคำสงั่ เสร็จแล้วก็จะทำกำรแปลประโยคคำสง่ั ตอ่ ไปอีกเรื่อยๆ จนจบ โปรแกรม ตวั แปลคำสง่ั เหมำะสำหรับโปรแกรมท่ีไม่ยำวมำก และต้องกำรผลลพั ธ์ทนั ที ตวั แปลแบบนีจ้ ะมีชื่อเรียกตำมภำษำนนั้ เช่น ตวั แปลคำสง่ั ภำษำเบสกิ (BASIC Interpreter) ภำษำคอมพิวเตอร์ท่ีกำลงั เป็นท่ีนิยมในปัจจบุ นั จะเป็นแบบดงู ่ำย พฒั นำงำ่ ยหรือ ที่เรียกกนั วำ่ แบบวิชวล เชน่ Visual BASIC , Visual C++ ซง่ึ มลี กั ษณะกำร เขียนโปรแกรมเชิงวตั ถทุ ่ีงำ่ ยขนึ ้ อย่ำงไรก็ตำมถ้ำไม่มีพืน้ ฐำนกำรเขียนโปรแกรมที่ดีพอ ก็ ไม่สำมำรถพฒั นำโปรแกรมใช้งำนท่ีดไี ด้ ดงั นนั้ ไม่วำ่ จะเขียนโปรแกรมโดยใช้ภำษำใดก็ตำม จำเป็นท่ีจะต้องศกึ ษำขนั้ ตอนกำร เขียนและพฒั นำโปรแกรมให้ดเี สยี ก่อน
ขนั้ ตอนกำรพฒั นำโปรแกรม • กำรเขียนและพฒั นำโปรแกรม มี 5 ขนั้ ตอน ดงั นี ้ • 1. กำหนดและวเิ ครำะห์ปัญหำ (Problem Definiatio and Problem Analysis) • ขนั้ ตอนนีเ้ป็นขนั้ ตอนแรกสดุ ท่ีต้องทำ กำรให้คอมพิวเตอร์แก้ปัญหำตำ่ งๆ ให้เรำนนั้ จะต้องมีแนวทำงที่แก้ไขปัญหำที่ เหมำะสม เพื่อให้กำรทำงำนเป็นไปอยำ่ งมีประสิทธิภำพ โดยมีขนั้ ตอนดงั นี ้ • 1) กำหนดขอบเขตของปัญหำ โดยกำหนดรำยละเอียดให้ชดั เจนวำ่ จะให้คอมพิวเตอร์ทำอะไร ตวั แปร ค่ำคงที่ที่ต้อง ใช้เป็นลกั ษณะใด • 2) กำหนดลกั ษณะของข้อมลู เข้ำและออกจำกระบบ (Input/Output Specification) โดยต้องรู้วำ่ ข้อมลู ที่จะสง่ เข้ำไปเป็นอย่ำงไร • มีอะไรบ้ำง เพ่ือให้โปรแกรมทำกำรประมวลผลและแสดงผลลพั ธ์ เช่น กำรรับคำ่ จำกคีย์บอร์ด กำรใช้เมำส์ กำรกำหนดป่ มุ ต่ำงๆ ลกั ษณะกำรแสดงผลทำงหน้ำจอวำ่ จะให้มีรูปร่ำงอย่ำงไร โดยคำนงึ ถึงผ้ใู ช้งนเป็นหลกั ในกำรออกแบบโปรแกรม • 3) กำหนดวธิ ีกำรประมวลผล (Process Specification) โดยต้องรู้วำ่ จะให้คอมพิวเตอร์ทำกำรประมวลผล อยำ่ งไร จึงได้ผลลพั ธ์ • ตำมต้องกำร
ตวั อยา่ ง โปรแกรมรับค่าขอ้ มูล 3 ค่าและแสดงผลลพั ธ์ค่าเฉลี่ยทางจอภาพ 2. กำรเขียนผงั งำนและซโู ดโค้ด (Pseudocoding) หลงั จำกวเิ ครำะห์ปัญหำแล้ว จะต้องใช้เครื่องมือช่วยในกำรออกแบบโปรแกรมซงึ่ ยงั ไมไ่ ด้เขียนเป็นโปรแกรมจริงๆ แตจ่ ะชว่ ยให้เขียนโปรแกรมได้งำ่ ยขนึ ้ และทำให้ผ้อู ่ืนนำ โปรแกรมของเรำไปพฒั นำตอ่ ได้งำ่ ยขนึ ้ โดยเขียนเป็นลำดบั ขนั้ ตอนกำรทำงำนของ โปรแกรมท่ีเรียกว่ำ \"อลั กอริทมึ \" ซงึ่ จะแสดงขนั้ ตอนกำรแก้ปัญหำ โดยอลั กอริทมึ นนั้ อำจ เขียนให้กำรทำงำนเพียงพอที่จะนำไปเขียนเป็นโปรแกรมให้ทำงำนได้จริง อำจเขียนอย่ใู น รูปของรหสั จำลองหรือซโู ดโค้ด (Pseudo-Code) หรือเขียนเป็นผงั งำน (Flowchart) ก็ได้ โดยซโู ดโค้ดจะเป็นคำอธิบำยขนั้ ตอนกำรทำงำนของโปรแกรม เป็น คำยอ่ ไมม่ ีรูปแบบเฉพำะตวั โดยแตล่ ะสว่ นจะเป็นแนวทำงในกำรเขียนโปรแกรมซ่ึงทำให้ เขียนโปรแกรมเป็นภำษำตำ่ งๆ ได้ง่ำยขนึ ้ สว่ นผงั งำนจะใช้สญั ลกั ษณ์ต่ำงๆ แทน กำรทำงำนและทิศทำงของโปรแกรม
ตวั อยา่ ง การเขียนอลั กอริทึม คานวณหาพ้ืนท่ีรูปส่ีเหล่ียมผืนผา้ • อลั กอริทมึ หำพืน้ ที่รูปสี่เหลี่ยมผืนผ้ำ ซโู ดโค้ด หำพืน้ ท่ีรูปสเ่ี หลย่ี มผืนผ้ำ • 1) START • 1) เร่ิมต้น 2) READ X • 2) รับคำ่ ควำมกว้ำงเก็บในตวั แปร X 3) READ Y • 3) รับคำ่ ควำมยำวเก็บในตวั แปร Y 4) Compute Area = X*Y • 4) คำนวณหำพืน้ ที่ Area = X*Y 5) PRINT Area • 5) แสดงผลพืน้ ที่ที่เก็บไว้ในตวั แปร Area 6) END • 6) จบกำรทำงำน
ผงั งาน หาพ้นื ท่ีรูปส่ีเหล่ียมผนื ผา้
กำรเขียนโปรแกรม (Programmig) • หลงั จำกผำ่ นขนั้ ตอนทงั้ สองแล้ว ต่อไปจะต้องเขียนเป็นโปรแกรม เพ่ือให้คอมพิวเตอร์สำมำรถประมวลผลได้ โดย เขียนขนั้ ตอนกำรทำงำนให้อยู่ • ในรูปรหสั ภำษำคอมพิวเตอร์ กำรเขียนโปรแกรมจะต้องเขียนตำมภำษำท่ีคอมพิวเตอร์เข้ำใจ โดยอำจใช้ภำษำระดบั สูงหรือ ระดบั ต่ำ ซงึ่ สำมำรถเลอื กได้หลำยภำษำ กำรเขียนโปรแกรมแต่ละภำษำจะต้องทำตำมหลกั ไวยำกรณ์ (Syntax) ท่ีกำหนด ไว้ในภำษำนนั้ และตำมควำมถนดั ของผ้เู ขียนโปรแกรมด้วย
กำรทดสอบและแก้ไขโปรแกรม (Program Testing and Debugging) • หลงั จำกเขียนโปรแกรมแล้วจะต้องทดสอบควำมถกู ต้องของโปรแกรมที่เขียนขนึ ้ เพื่อหำข้อผิดพลำดของโปรแกรม ข้อผิดพลำดของโปรแกรม • จะเรียกวำ่ \"บกั \" สว่ นกำรแก้ไขข้อผดิ พลำดให้ถกู ต้องเรียกว่ำ \"ดบี กั \" โดยทว่ั ไปแล้วข้อผิดพลำดจำกกำรเขียนโปรแกรมจะ แบง่ เป็น 2 ประเภท • 1) กำรเขียนคำสงั่ ไม่ถกู ต้องตำมหลกั กำรเขียนโปรแกรมภำษำนนั้ ๆ เรียกวำ่ \"Syntax Error\" หรือ \"Coding Error\" ข้อผิดพลำดประเภทนีม้ กั พบตอนแปลภำษำโปรแกรมเป็นรหสั ภำษำเคร่ือง • 2) ข้อผิดพลำดทำงตรรก หรือ Logic Error เป็นข้อผิดพลำดท่ีโปรแกรมทำงำนได้ แตผ่ ลลพั ธ์ออกมำจะไม่ ถกู ต้อง
ทำเอกสำรและบำรุงรักษำโปรแกรม (Program Documentation and Maintenance) • ขนั้ ตอนนีจ้ ะทำให้ผ้ใู ช้สำมำรถใช้งำนโปรแกรมได้อยำ่ งมีประสทิ ธิภำพ และสะดวกในกำรตรวจสอบข้อผิดพลำด โดย เขียนเป็นเอกสำรประกอบโปรแกรมขนึ ้ มำ โดยทว่ั ไปแล้วแบง่ อกเป็น 2 ประเภท คอื • 1) คมู่ ือกำรใช้หรือ User Document หรือ User Guide ซง่ึ จะอธิบำยกำรใช้โปรแกรม • 2) คมู่ ือโปรแกรมเมอร์ หรือ Program Document หรือ Technical Reference ซง่ึ จะอำนวยควำม สะดวกในกำรแก้ไขโปรแกรมและพฒั นำโปรแกรมในอนำคต โดยจะมีรำยละเอียดตำ่ งๆ เก่ียวกบั โปรแกรม เช่น ชื่อโปรแกรม กำรรับข้อมลู กำรพิมพ์ผลลพั ธ์ ขนั้ ตอนตำ่ งๆ • ในโปรแกรมเป็นต้น • สว่ นกำรบำรุงรักษำโปรแกรม (Maintenace) เป็นกำรท่ีผ้เู ขียนโปรแกรมจะต้องคอยตรวจสอบกำรใช้โปรแกรม จริง เพื่อแก้ไขข้อผิดพลำด • ซงึ่ อำจเกิดขนึ ้ ในภำยหลงั รวมทงั้ พฒั นำโปรแกรมให้ทนั สมยั อยเู่ สมอเมื่อเวลำผ่ำนไป
การเขียนผงั งาน • 1. ผงั งำน (Flowchart) • เป็นกำรเขียนลำดบั ขนั้ ตอนกำรทำงำนของโปรแกรมหรือกำรทำงำนของแตล่ ะฟังก์ชนั โดยใช้สญั ลกั ษณ์แทน โดยเขียน จำกบนลงลำ่ งและใช้เส้นลกู ศร • แสดงทศิ ทำงกำรทำงำนของโปรแกรม
2. สญั ลกั ษณ์ท่ีใชใ้ นการเขียนผงั งาน
3. ตวั อยา่ งการเขียนผงั งาน • 1) โปรแกรมหำพืน้ ที่รูปส่ีเหล่ียม หมำยเหตุ Width คือ ตวั แปรเก็บคำ่ ควำมกว้ำง Length คอื ตวั แปรเก็บคำ่ ควำมยำว Area คอื ตวั แปรเก็บพืน้ ที่รูปส่ีเหลยี่ ม
2) โปรแกรมหาคา่ เฉล่ียของเลข 3 จานวน หมำยเหตุ a คือ ตวั แปรเกบ็ คำ่ เลขจำนวนท่ี 1 b คือ ตวั แปรเก็บค่ำเลขจำนวนท่ี 2 c คือ ตวั แปรเกบ็ คำ่ เลขจำนวนท่ี 3 Average คือ ตวั แปรเก็บคำ่ เฉล่ยี ของเลข 3 จำนวน
โครงสร้างโปรแกรมภาษาซี 1. ตวั ประมวลผลก่อน (Preprocessor Directive) เป็นสว่ นท่ีคอมไพเลอร์จะประมวลผลคำสงั่ นีก้ ่อนที่ จะคอมไพล์ตวั โปรแกรม สว่ นนีอ้ ำจเรียกว่ำ \"สว่ นหวั ของ โปรแกรม\" ก็ได้ ท่ีจำเป็นต้องถกู กำหนดไว้ในโปรแกรมเสมอ ซง่ึ จะเร่ิมต้นด้วยเครื่องหมำย ไดเร็กทีฟ # แล้วตำมด้วยช่ือคำสง่ั ไดเร็กทีฟที่ต้องกำร เช่น #include<stdio.h> หรือ #include<conio.h> #include เป็นกำรแจ้งให้คอมไพเลอร์อ่ำนไฟล์ ท่ีเขียนไว้ใน < > เข้ำมำคอมไพล์ร่วมด้วย โดยเขียน #include แล้วตำมด้วยช่ือไฟล์ เชน่ #include<stdio.h> หมำยควำมวำ่ อำ่ นไฟล์ stdio.h เข้ำมำใช้งำนด้วย #define เป็นกำรกำหนดคำ่ นิพจน์ต่ำงๆ ให้กบั ช่ือ ของตวั แปร เชน่ #define sum 0; หมำยควำมวำ่ กำหนดให้ตวั แปรชื่อ sum มีค่ำเป็น 0
• 2. สว่ นของฟังก์ชนั่ (Function) • ในภำษำซีจะมีอยฟู่ ังก์ชนั่ หนงึ่ ซง่ึ ถือเป็นสว่ นโปรแกรมหลกั ที่ทำหน้ำท่ีสงั่ ให้ชดุ คำสง่ั ตำ่ งๆ หรือฟังก์ชนั่ อื่นๆ ทำงำน เรียกวำ่ \"ฟังก์ชนั่ หลกั \" main() นอกจำกนีย้ งั มีฟังก์ชน่ั อ่ืนๆ ที่ผ้เู ขียนโปรแกรมสำมำรถสร้ำงฟังก์ชน่ั หรือคำใหมท่ ่ีให้ทำงำน ตำมที่เรำต้องกำรให้กบั โปรแกรมและสำมำรถเรียกใช้ได้ภำยในโปรแกรม • 3. ชดุ คำสงั่ (Statement) • ชดุ คำสงั่ ในภำษำซจี ะถกู บรรจอุ ย่ภู ำยในเครื่องหมำย { ที่บอกถงึ จดุ เริ่มต้นของกำรทำงำน และเครื่องหมำย } เพื่อบอก จดุ สนิ ้ สดุ กำรทำงำน • นอกจำกนีภ้ ำยในเครื่องหมำย { } ยงั สำมำรถมีบลอ็ ก { } ซ้อนยอ่ ยเข้ำไปได้อีก และเม่ือสิน้ สดุ ประโยคคำสง่ั แตล่ ะคำสง่ั จะต้อง ลงท้ำยด้วยเครื่องหมำย ; (Semicolon) เสมอ • 4. สว่ นอธิบำยโปรแกรม • เป็นสว่ นที่โปรแกรมเมอร์ใช้เขียนอธิบำยกำรทำงำนตำ่ งๆ ภำยในโปรแกรม โดยที่คอมไพลเลอร์จะไม่สนใจข้อควำมท่ีอยู่ ภำยในเคร่ืองหมำย /* */ (กรณีคำอธิบำยบรรทดั เดยี วหรือหลำยบรรทดั ) หรือเครื่องหมำย // (คำอธิบำยภำยในบรรทดั เดยี ว) • เชน่
ประวตั ิภาษา C • ภำษำซี เป็นภำษำที่ถือวำ่ เป็นทงั้ ภำษำระดบั สงู และระดบั ต่ำ ถกู พฒั นำโดย เดนนิส ริดชี (Dennis Ritche) แหง่ ห้องทดลอง เบลล์ • (Bell Laboratories) ท่ีเมอร์รีฮิล มลรัฐนิวเจอร์ซ่ี โดยเดนนิสได้ใช้หลกั กำรของภำษำบีซพี ีแอล (BCPL : Basic Combine Programming Language) ซง่ึ พฒั นำขนึ ้ โดยเคน ทอมสนั (Ken Tomson) กำรออกแบบและพฒั นำ ภำษำซีของเดนนิส ริดชี มีจดุ ม่งุ หมำยให้เป็นภำษำสำหรับใช้เขียนโปรแกรมปฏิบตั กิ ำรระบบยนู ิกซ์และได้ตงั้ ชื่อว่ำ ซี (C) เพรำะ เห็นวำ่ ซี (C) เป็นตวั อกั ษรตอ่ จำกบี (B) ของภำษำ BCPL • ภำษำซี ถือวำ่ เป็นภำษำระดบั สงู และภำษำระดบั ต่ำ ทงั้ นีเ้พรำะ ภำษำซีมีวิธีใช้ข้อมลู และมีโครงสร้ำงกำรควบคมุ กำรทำงำนของ โปรแกรมเป็นอยำ่ งเดยี ว • กบั ภำษำของโปรแกรมระดบั สงู อืน่ ๆ จึงถือวำ่ เป็นภำษำระดบั สงู ในด้ำนท่ีถือวำ่ ภำษำซเี ป็นภำษำระดบั ต่ำ เพรำะภำษำซมี ีวิธีกำร เข้ำถึงในระดบั ต่ำท่ีสดุ • ของฮำร์ดแวร์ ควำมสำมำรถทงั้ สองด้ำนของภำษำนีเ้ป็นส่งิ ท่ีเกือ้ หนนุ ซง่ึ กนั และกนั ควำมสำมำรถระดบั ต่ำทำให้ภำษำซสี ำมำรถใช้ เฉพำะเครื่องได้ • และควำมสำมำรถระดบั สงู ทำให้ภำษำซเี ป็นอิสระจำกฮำร์ดแวร์ ภำษำซสี ำมำรถสร้ำงรหสั ภำษำเครื่องซงึ่ ตรงกบั ชนิดของข้อมลู นนั้ ได้เอง ทำให้โปรแกรมท่ีเขียนด้วยภำษำซีท่ีเขียนบนเครื่องหนง่ึ สำมำรถนำไปใช้กบั อีกเคร่ืองหนงึ่ ได้
เดนนิส ริดชี (Dennis Ritche) ผ้พู ฒั นำภำษำซี
วิวฒั นาการของภาษา C • - ค.ศ. 1970 มกี ำรพฒั นำภำษำ B โดย Ken Thompson ซงึ่ ทำงำนบนเครื่อง DEC PDP-7 ซงึ่ ทำงำนบนเครื่องไมโครคอมพิวเตอร์ไมไ่ ด้และยงั มี ข้อจำกดั ในกำรใช้งำนอยู่ (ภำษำ B สบื ทอดมำจำก ภำษำ BCPL ซง่ึ เขียนโดย Marth Richards) • - ค.ศ. 1972 Dennis M. Ritchie และ Ken Thompson ได้สร้ำงภำษำ C เพ่ือเพิม่ ประสทิ ธิภำพ ภำษำ B ให้ดีย่งิ ขนึ ้ • ในระยะแรกภำษำ C ไมเ่ ป็นที่นิยมแก่นกั โปรแกรมเมอร์โดยทวั่ ไปนกั • - ค.ศ. 1978 Brian W. Kernighan และ Dennis M. Ritchie ได้เขียนหนงั สอื เลม่ หนงึ่ ช่ือวำ่ The C Programming Language และหนงั สอื เลม่ นีท้ ำให้บคุ คลทวั่ ไปรู้จกั และนิยมใช้ภำษำ C ในกำรเขียน โปรแกรมมำกขนึ ้ • - แตเ่ ดิมภำษำ C ใช้ Run บนเครื่องคอมพิวเตอร์ 8 bit ภำยใต้ระบบปฏบิ ตั ิกำร CP/M ของ IBM PC ซงึ่ ในช่วงปี ค.ศ.1981 เป็นช่วง • ของกำรพฒั นำเคร่ืองไมโครคอมพวิ เตอร์ภำษำ C จงึ มี บทบำทสำคญั ในกำรนำมำใช้บนเคร่ือง PC ตงั ้ แต่นนั ้ เป็นต้นมำ และมีกำรพฒั นำตอ่ มำอีกหลำย ๆ คำ่ ย ดงั นนั ้ เพ่ือกำหนดทศิ ทำงกำรใช้ภำษำ C ให้เป็นไปแนวทำงเดียวกนั ANSI (American National Standard Institute) ได้กำหนด ข้อตกลง • ท่ีเรียกว่ำ 3J11 เพ่ือสร้ำงภำษำ C มำตรฐำนขนึ ้ มำ เรียกว่ำ ANSI C • - ค.ศ. 1983 Bjarne Stroustrup แหง่ ห้องปฏบิ ตั ิกำรเบล (Bell Laboratories) ได้พฒั นำภำษำ C++ ขนึ ้ รำยละเอียดและ ควำมสำมำรถของ C++ มีสว่ นขยำยเพม่ิ จำก C ที่สำคญั ๆ ได้แก่ แนวควำมคดิ ของกำรเขียนโปรแกรมแบบกำหนดวตั ถเุ ป้ ำหมำยหรือแบบ OOP (Object Oriented Programming) ซงึ่ เป็นแนวกำรเขียนโปรแกรมทเ่ี หมำะกบั กำรพฒั นำโปรแกรมขนำดใหญ่ที่มคี วำมสลบั ซบั ซ้อนมำก มี ข้อมลู ท่ีใช้ในโปรแกรมจำนวนมำก จงึ นิยมใช้เทคนิคของกำรเขยี นโปรแกรมแบบ OOP ในกำรพฒั นำโปรแกรมขนำดใหญ่ในปัจจบุ นั นี ้
ตวั แปรและชนิดขอ้ มูล • คำสงวน (Reserved Keyword) • คำสงวน หมำยถงึ คำที่สงวนไว้สำหรับเรียกใช้ตำมวตั ถปุ ระสงค์ทกี่ ำหนดไว้เฉพำะ เช่น คำท่ีใช้ในคำสง่ั ควบคมุ และชนิดของ ข้อมลู เป็นต้น • คำสงวนของภำษำซมี ีดงั นี ้
ตวั แปร คือ ช่ือท่ีกาหนดข้ึนเพอ่ื ใชง้ านในโปรแกรม โดยค่าขอ้ มลู ท่ีบนั ทึกอยใู่ นตวั แปรน้นั จะถกู จดั เกบ็ ไวใ้ นหน่วยความจา หลกั ท่ีสามารถนาไปประมวลผล และอา้ งอิงภายในโปรแกรมได้ • 1. กำรตงั้ ช่ือตวั แปร (Identifier) • กฎเกณฑ์ในกำรตงั้ ช่ือตวั แปรของภำษำซี มีดงั นี ้ • 1) ต้องเริ่มต้นด้วยตวั อกั ษร หรือเส้นใต้ ( _ ) • 2) ใช้เฉพำะตวั อกั ษร ตวั เลข หรือเส้นใต้ประกอบกนั • 3) ใช้ตวั เลขอย่ำงเดียวไมไ่ ด้ • 4) ต้องไม่มีตวั อกั ขระหรือเครื่องหมำยอ่ืน • 5) ถ้ำเร่ิมต้นด้วยเส้นใต้ต้องตำมด้วยตวั อกั ษรแบบตวั พิมพ์เลก็ หรือตวั เลขอย่ำงน้อย 1 ตวั เชน่ _a , _9 • 6) ควำมยำวไมเ่ กิน 4095 ตวั อกั ษร • 7) ห้ำมมีช่องวำ่ ง (ใช้ตวั ขีดเส้นใต้แทนชอ่ งวำ่ ง เช่น name_1 ) • 8) ควรตงั้ ช่ือท่ีสือ่ ควำมหมำยวำ่ ใช้เก็บคำ่ อะไร เชน่ แทนที่จะใช้ S เพ่ือเก็บคำ่ คะแนนของนกั เรียนควรใช้ Student_Score
ตวั อยา่ งการต้งั ช่ือตวั แปร • ใช้ไมไ่ ด้ ใช้ได้
ค่าคงตวั และค่าคงที่ • คำ่ คงตวั (Literal constant) หมำยถึง ข้อมลู ที่ระบเุ ป็นคำ่ อยำ่ งใดอยำ่ งหนง่ึ ในโปรแกรม และมีชนิดของข้อมลู ตำมคำ่ ของข้อมลู นนั้ ๆ เชน่ • • 8,236 เป็นคำ่ คงตวั ชนิดเลขจำนวนจริง • 5.85 และ 100.00 เป็นคำ่ คงตวั ชนิดเลขจำนวนจริง • 'A' และ \"O.K\" เป็นคำ่ คงตวั ชนิดตวั อกั ขระ และสตริง (สำยอกั ขระ) ตำมลำดบั นอกจำกกำรใช้ค่ำคงตวั แล้ว ยงั สำมำรถกำหนดช่ือเพื่อใช้แทนคำ่ คงตวั ในโปรแกรม ซงึ่ จะเรียกวำ่ \"คำ่ คงท่ี\" (constants) โดยกำรใช้คำสง่ั ของตวั ประมวลผลก่อนซี #define กำหนดคำ่ *** กำหนดคำ่ ให้กบั ตวั แปร sum มีคำ่ เป็น 0 max มีคำ่ เป็น 100 และ min มีคำ่ เป็น 0
ชนิดขอ้ มลู • ภำษำซีจะมีชนิดข้อมลู ตำ่ งๆ ให้เลือกใช้งำำนตำมควำมเหมำะสม โดยข้อมลู แตล่ ะชนิดนอกจำกจะใช้จดั เก็บข้อมลู ท่ีแตกต่ำง กนั ได้แล้ว ยงั มีขนำดท่ีแตกตำ่ งกนั ด้วย ดงั นนั้ จงึ ต้องประกำศชนิดข้อมลู ให้ถกู ต้องกบั กำรใช้งำน ทงั้ นีก้ ำรกำหนดชนิดข้อมลู ท่ี มขี นำดใหญ่เกินไป ย่อมสง่ ผลให้สิน้ เปลอื งหนว่ ยควำมมจำ • ในภำษำซี มีชนิดข้อมลู หลกั ๆ ตอ่ ไปนี ้
• ข้อควำมสำหรับจดั รูปแบบ (Format String) *** ข้อควำมสำหรับจดั รูปแบบจะใช้แสดงคำ่ ของตวั แปรควบคกู่ บั ฟังก์ชน่ั printf() ในกำรแสดงผลลพั ธ์ ของโปรแกรมที่จอภำพ เช่น printf(\" %c \", Grade \\n); printf(\" %i \", No_Student \\n); printf(\" %f \", Sum \\n); printf(\" %f \", Average \\n);
• ฟังก์ชน่ั printf(); • ฟังก์ชน่ั printf() มีชื่อเตม็ วำ่ \"print format\" เป็นฟังก์ชน่ั ท่ีใช้สำหรับแสดงผลข้อมลู บนจอภำพ ไม่วำ่ จะเป็นข้อมลู ท่ี เป็นตวั อกั ขระ • ข้อควำม ตวั เลขหรือคำ่ ของตวั แปร มีรูปแบบกำรใช้งำน ดงั นี ้ • *** โดยที่ FormatControlString คอื รูปแบบท่ี นำมำใช้สำหรับควบคมุ กำรพิมพ์หรือข้อควำมทตี่ ้องกำรสงั่ พิมพ์ท่ีอย่ภู ำยใน เคร่ืองหมำย \" \" printlist คือ ตวั แปรท่ีนำมำพิมพ์ ซงึ่ จะจบั คกู่ บั FormatControlString ที่สมั พนั ธ์กนั อย่ำงถกู ต้อง
ตารางแสดงรูปแบบที่นามาใชใ้ นการจดั พมิ พข์ อ้ มลู
นอกจากน้ีแลว้ ยงั สามารถผนวกรหสั ควบคุม (Escape Sequence) เขา้ ไปใน FormatControlString ไดอ้ ีก ดว้ ย ซ่ึงรหสั ควบคุมเหล่าน้ี จะเขียนดว้ ยเคร่ืองหมาย \\ (Back Slash) และตามรหสั ควบคุม ซ่ึงประกอบดว้ ย
Search
Read the Text Version
- 1 - 32
Pages: