ความรู้เกย่ี วกบั ภาษาซี ประกอบวชิ า ว30268 ภาษาซี ครูผู้สอน ครูรัชชนก วงศ์เขียว
คำนำ หนงั สืออิเลก็ ทรอนิกส์เรื่อง ภาษาซี โรงเรียน เลม่ นี ้ ใช้ประกอบวิชา ว30268 ภาษซี ชนั้ มธั ยมศกึ ษาปีที่ 6 ซง่ึ ในเนือ้ หาจะอภิบายถงึ ความรู้เกี่ยวกบั ภาษาซีใน โรงเรียนวงั เหนือวิทยา หวงั เป็นอยา่ งย่งิ วา่ จะเป็นประโยชน์ตอ่ ผ้ทู ี่ศกึ ษาได้ เป็นอยา่ งดี ช่ือ นางสาว กสุ มุ าลย์ เลกิ การ ช่ือ นางสาว ชนิกานต์ กมุ มาร ผู้จัดทำ
ประวตั คิ วามเป็นมาเก่ียวกบั ภาษาซี ภาษาซีเกดิ ขนึ้ ในปี ค.ศ.1972 โดย Dennis Ritchie แห่ง Bell Labs โดยภาษาซนี ั้นพัฒนามาจาก ภาษา B และจากภาษา BCPL ซึ่งในช่วงแรกนนั้ ภาษาซีถูกออกแบบให้ใช้เปน็ ภาษาการเขียน โปรแกรมในระบบ UNIX และเริม่ มีคนสนใจมากข้ึนในปี ค.ศ.1978 เมื่อ Brain Kernighan ร่วมกบั Dennis Ritchie พฒั นามาตรฐานของ ภาษาซีขนึ้ มา คือ K&R (Kernighan & Ritchie) และทงั้ สองยงั ไดแ้ ตง่ หนงั สอื ชือ่ ว่า \"The C Programming Language\" โดยภาษาซนี ้ัน สามารถจะปรับใชก้ บั เครอ่ื งคอมพิวเตอร์รูปแบบตา่ งๆได้ ต่อ มาในช่วง ปี ค.ศ.1988 Ritchie และ Kernighan ได้ รว่ มกับ ANSI (American National Standards Institute) สรา้ ง เป็นมาตรฐานของภาษาซขี ึน้ มาใหม่มชี ่ือวา่ \"ANSI C“ ภาษา ซีนนั้ จดั เป็นภาษาท่ีใช้ในการเขียน โปรแกรมที่นิยม ใช้งาน ซง่ึ ภาษาซจี ดั เป็นภาษาระดบั กลาง (Middle-Level Language) เหมาะกบั การเขียนโปรแกรมแบบโครงสร้าง (Structured Programming) โดยมีคณุ สมบตั ิโดดเดน่ อยา่ งหนึ่ง คือ มีความยืดหยนุ่ มาก กลา่ วคือ สามารถทางาน กบั เครื่องมือ ตา่ งๆ
วิวฒั นาการของภาษาซี - ค.ศ. 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 - ค.ศ. 1983 Bjarne Stroustrup แหง่ หอ้ งปฏบิ ตั กิ ารเบล (Bell Laboratories) ได้ พฒั นาภาษา C++ ขน้ึ รายละเอยี ดและความสามารถของ C++ มสี ว่ น ขยายเพม่ิ จาก C ทสี่ าคัญ ๆ ไดแ้ ก่ แนวความคิดของการเขยี น โปรแกรมแบบกาหนดวตั ถุเปา้ หมาย
ภาษา คอมพวิ เตอร์อาจแบ่งไดเ้ ป็น 3 ระดับ คือ ภาษาเครอื่ ง (Machine Language) ภาษาระดบั ตา่ (Low Level Language) และภาษาระดบั สูง (High Level Language) 1 ภาษาเครอ่ื ง (Machine Language) การ เขียนโปรแกรมเพ่ือสง่ั ให้คอมพิวเตอร์ทางานในยุคแรก ๆ จะตอ้ งเขียนดว้ ยภาษาซึง่ เปน็ ท่ียอมรบั ของเคร่อื ง คอมพวิ เตอรท์ ่เี รียกว่า “ภาษาเครอื่ ง” ภาษาน้ปี ระกอบด้วย ตัวเลขล้วน ทาใหเ้ คร่ืองคอมพวิ เตอรส์ ามารถทางานได้ทันที ผทู้ ีจ่ ะเขยี นโปรแกรมภาษาเครือ่ งได้ ตอ้ งสามารถจารหัส แทนคาสง่ั ตา่ ง ๆ ได้ และในการคานวณต้องสามารถจาไดว้ ่า จานวนต่าง ๆ ทีใ่ ชใ้ นการคานวณนัน้ ถูกเกบ็ ไวท้ ต่ี าแหนง่ ใด ดงั นน้ั โอกาสทีจ่ ะเกดิ ความผิดพลาดในการเขียนโปรแกรมจึง มมี าก นอกจากนเี้ ครือ่ งคอมพิวเตอร์แตล่ ะระบบมี ภาษาเครือ่ งที่แตกตา่ งกนั ออก ทาให้เกิดความไมส่ ะดวกเม่อื มีการเปลยี่ นเครื่องคอมพิวเตอรเ์ พราะจะตอ้ งเขยี น โปรแกรมใหมท่ ั้งหมด
2 ภาษาระดบั ต่า (Low Level Language) เน่ือง จากภาษาเคร่ืองเป็นภาษาท่ีมีความยงุ่ ยากในการเขียนดงั ได้ กลา่ วมาแล้ว จงึ ไมม่ ีผ้นู ิยมและมีการใช้น้อย ดงั นัน้ ได้มีการพฒั นา ภาษาคอมพิวเตอร์ขนึ ้ อีกระดบั หนงึ่ โดยการใช้ตวั อกั ษร ภาษาองั กฤษเป็นรหสั แทนการทางาน การใช้และการตงั้ ชื่อตวั แปร แทนตาแหน่งที่ใช้เกบ็ จานวนตา่ ง ๆ ซง่ึ เป็นคา่ ของตวั แปรนนั้ ๆ การใช้สญั ลกั ษณ์ช่วยให้การเขียนโปรแกรมนีเ้รียกวา่ “ภาษาระดบั ต่า”ภาษาระดบั ตา่ เป็นภาษาที่มีความหมายใกล้เคียง กบั ภาษาเครื่อง มากบางครัง้ จงึ เรียกภาษานีว้ า่ “ภาษาอิงเครื่อง” (Machine – Oriented Language) 3 ภาษา ระดบั สงู (High Level Language) ภาษา ระดบั สงู เป็นภาษาที่สร้างขนึ ้ เพื่อชว่ ยอานวยความสะดวก ในการเขียนโปรแกรม กลา่ วคือลกั ษณะของคาสง่ั จะประกอบด้วย คาตา่ ง ๆ ในภาษาองั กฤษ ซงึ่ ผ้อู า่ นสามารถเข้าใจความหมายได้ ทนั ที ผ้เู ขียนโปรแกรมจงึ เขียนโปรแกรมด้วยภาษาระดบั สงู ได้ง่าย กวา่ เขียนด้วยภาษาแอ
โครงสร้างภาษาซี ภาษา C เป็นภาษาคอมพิวเตอร์ที่ถกู ค้นคิดขนึ ้ โดย Denis Ritchie ในปี ค.ศ. 1970 โดยใช้ระบบปฏิบตั ิการของยนู ิกซ์ (UNIX) นบั จากนนั้ มาก็ได้รับ ความนิยมเพ่ิมขนั้ จนถงึ ปัจจบุ นั ภาษา C สามารถติดตอ่ ใน ระดบั ฮาร์ดแวร์ได้ดีกวา่ ภาษาระดบั สงู อ่ืน ๆ ไมว่ า่ จะเป็นภาษา เบสกิ ฟอร์แทน ขณะเดียวกนั กม็ ีคณุ สมบตั ขิ องภาษาระดบั สงู อยู่ ด้วย ด้วยเหตผุ ลดงั กลา่ วจงึ จดั ได้วา่ ภาษา C เป็นภาษา ระดบั กลาง (Middle –lever language) ภาษา C เป็นภาษาคอมพวิ เตอร์ชนิดคอมไพล์ (compiled Language) ซงึ่ มีคอมไพลเลอร์ (Compiler) ทาหน้าที่ในการ คอมไพล์ (Compile) หรือแปลงคาสง่ั ทงั้ หมดในโปรแกรมให้เป็น ภาษาเครื่อง (Machine Language) เพื่อให้เครื่องคอมพิวเตอร์ นาคาสงั่ เหลา่ นนั้ ไปทางานตอ่ ไป
โครงสร้างของโปรแกรมภาษาซีแบง่ ออกเป็น 3 สว่ น 1. สว่ นหวั ของโปรแกรม สว่ นหวั ของโปรแกรมนีเ้รียกวา่ Preprocessing Directive ใช้ระบเุ พื่อบอกให้คอมไพเลอร์กระทาการ ใด ๆ ก่อนการแปลผลโปรแกรม ในทน่ี ี่คาสงั่ #include <stdio.h> ใช้บอกกบั คอมไพเลอร์ให้นาเฮดเดอร์ไฟล์ท่ีระบุ คือ stdio.h เข้าร่วมในการแปลโปรแกรมด้วย โดยการกาหนด preprocessing directives นีจ้ ะต้องขนึ ้ ต้นด้วยเคร่ืองหมาย # เสมอ คาสง่ั ที่ใช้ระบใุ ห้คอมไพเลอร์นาเฮดเดอร์ไฟล์เข้าร่วมในการ แปลโปรแกรม สามารถเขียนได้ 2 รูปแบบ คือ - #include <ช่ือเฮดเดอร์ไฟล์> คอมไพเลอร์จะทาการค้นหา เฮดเดอร์ไฟล์ท่ีระบจุ ากไดเรกทอรีที่ใช้สาหรับเก็บเฮดเดอร์ไฟล์ โดยเฉพาะ (ปกติคือไดเรกทอรีชื่อ include) - #include “ชื่อเฮดเดอร์ไฟล์” คอมไพเลอร์จะทาการค้นหา เฮดเดอร์ไฟที่ระบุ จากไดเร็คทอรีเดียวกนั กบั ไฟล์ source code นนั้ แต้ถ้าไมพ่ บกจ็ ะไปค้นหาไดเร็คทอรีท่ีใช้เกบ็ เฮด เดอร์ไฟล์โดยเฉพาะ
2. ส่วนของฟังก์ช่ัน ลกั ฟังก์ชน่ั หลกั ของภาษาซี คือ ฟังก์ชน่ั main() ซง่ึ โปรแกรม ภาษาซีทกุ โปรแกรมจะต้องมีฟังก์ชน่ั นีอ้ ยใู่ นโปรแกรมเสมอ จะ เหน็ ได้จากชื่อฟังก์ชน่ั คือ main แปลวา่ “หลกั ” ดงั นนั้ การเขียน โปรแกรมภาษซีจงึ ขาดฟังก์ชนั่ นีไ้ ปไมไ่ ด้ โดยขอบเขตของฟังก์ชนั่ จะถกู กาหนดด้วยเคร่ืองหมาย { และ } กลา่ วคือ การทางานของ ฟังก์ชนั่ จะเร่ิมต้นทเ่ี คร่ืองหมาย { และจะสนิ ้ สดุ ท่ีเคร่ืองหมาย } ฟังก์ชนั่ main() สามารถเขียนในรูปแบบของ void main(void) กไ็ ด้ มคี วามหมายเหมือนกนั คือ หมายความวา่ ฟังก์ชน่ั main() จะไมม่ ีอาร์กิวเมนต์ (argument) คือไมม่ ีการรับคา่ ใด ๆ เข้ามา ประมวลผลภายในฟังก์ชน่ั และจะไมม่ ีการคืนคา่ ใด ๆ กลบั ออกไปจากฟังก์ชนั่ ด้วย
3. ส่วนรายละเอยี ดของโปรแกรม เป็นสว่ นของการเขียนคาสงั่ เพ่ือให้โปรแกรมทางานตามที่ได้ ออกแบบไว้ คอมเมนต์ในภาษาซี คอมเมนต์ (comment) คือสว่ นที่เป็นหมายเหตขุ อง โปรแกรม มีไว้เพื่อให้ผ้เู ขียนโปรแกรมใสข่ ้อความอธิบายกากบั ลงไปใน source code ซงึ่ คอมไพเลอร์จะข้ามาการแปลผลใน สว่ นท่ีเป็นคอมเมนต์นี ้คอมเมนต์ในภาษาซีมี 2 แบบคือ “ คอมเมนต์แบบบรรทดั เดียว ใช้เคร่ืองหมาย // “ คอมเมนต์แบบหลายบรรทดั ใช้เคร่ืองหมาย /* และ */ ตวั อยา่ ง การคอมเมนต์ในภาษาซี // Comment only one line #include <stdio.h> #include <conio.h>
การเขยี นผังงาน •ผงั งาน หมายถงึ เครื่องมือท่ีช่วยในการเขียนโปรแกรม โดยเขียน เป็นเคร่ืองหมายภาพสญั ลกั ษณ์แสดงลาดบั ขนั้ ตอนการทางาน •การเขียนผงั งาน เป็นการถ่ายทอดความเข้าใจที่ได้จากการ วเิ คราะห์งานให้ลาดบั ขนั้ ตอนในวิธีการอยใู่ นรูปภาพหรือ สญั ลกั ษณ์ •ผ้เู ขียนโปรแกรมจะสามารถเข้าใจลาดบั ขนั้ ตอนการเขียน โปรแกรมได้อยา่ งรวดเร็วและงา่ ยขนึ ้ และง่ายตอ่ การตรวจสอบ ความถกู ต้องของประมวลผล
ผงั งาน (Flowchart) คือ ผงั งาน (Flowchart) คือ รูปภาพ (Image) หรือสญั ลกั ษณ์ (Symbol) ท่ีใช้เขียนแทนขนั้ ตอน คาอธิบาย ข้อความหรือคาพดู ที่ใช้ในอลั กอริทมึ (Algorithm) เพราะการนาเสนอขนั้ ตอนของ งานให้เข้าใจตรงกนั ระหวา่ งผ้เู ก่ียวข้อง ด้วยคาพดู หรือ ข้อความ ทาได้ยากกวา่ เมื่อใช้รูปภาพ หรือสญั ลกั ษณ์ ผงั งานแบง่ ได้ 2 ประเภท 1. ผงั งานระบบ (System Flowchart) คือ ผงั งานท่ีแสดง ขนั้ ตอนการทางานในระบบอยา่ งกว้างๆ แต่ไมเ่ จาะลงใน ระบบงานยอ่ ย 2. ผงั งานโปรแกรม (Program Flowchart) คือ ผงั งานท่ี แสดงถงึ ขนั้ ตอนในการทางานของโปรแกรม ตงั้ แตร่ ับข้อมลู คานวณ จนถงึ แสดงผลลพั ธ์ การเขียนผงั งาน ( Flowchart )
การเขียนผงั งานจะใช้รายละเอียดจากวิธีการประมวลผล จากการวเิ คราะห์งาน ซง่ึ ประกอบด้วยขนั้ ตอนท่ีสาคญั ๆ คือ การรับข้อมลู (Input) การประมวลผล (Process) และการแสดงผลลพั ธ์ (Output) นอกจากนีต้ ้องใช้รูป หรือสญั ลกั ษณ์ท่ีตรงตามความหมาย นนั่ คือ 1. การกาหนดคา่ เริ่มแรก (Initialization) เป็นการกาหนดคา่ เริ่มต้นให้ตวั แปรบางตวั 2. การรับข้อมลู (Input) เป็นการรับคา่ ของตวั แปรที่ระบไุ ว้ใน ขนั้ ตอนการนาข้อมลู เข้าของการวเิ คราะห์งาน ซงึ่ การรับข้อมลู จะต้องทากอ่ นที่จะนาเอาข้อมลู ไปใช้ สญั ลกั ษณ์ที่ใช้จะมี ความหมายตามแตล่ ะประเภทของสอื่ ข้อมลู 3. การประมวลผล (Process) เป็นการแสดงวธิ ีการประมวลผล หรือการคานวณ วง่ึ จะต้องกระทาทลี ะขนั้ ตอนตามลาดบั ถ้าผล การคานวณต้องนามาใช้ในขนั ตอนถดั ไปจะต้องแยกรูปให้ ชดั เจน 4. การแสดงคา่ ของข้อมลู หรือผลลพั ธ์ (Output) เป็นการ แสดงผลลพั ธ์หรือคา่ ของตวั แปรทร่ี ะบไุ ว้ในหวั ข้อผลลพั ธ์ที่ต้อง แสดง การแสดงของข้อมลู หรือผลลพั ธ์ 5. การทดสอบ (Testing) เป็นการทดสอบตวั แปรกบั คา่ ใดคา่ หนง่ึ เช่นLC = 0 หรือไม่ ?
นางสาว กสุ มุ าลย์ เลกิ การ Email: [email protected] นางสาว ชนิกานต์ กมุ มาร Email: [email protected]
Search
Read the Text Version
- 1 - 15
Pages: