ประกอบวชิ า ว.30268 เทคโนโลยี 2 ครูผสู้ อน ครูรัชชนก วงศเ์ ขียว
หนงั สืออิเลก็ ทรอนิกส์เรื่อง ภาษาซี โรงเรียน เล่มน้ี ใชป้ ระกอบ วิชา ว 30268 ภาษาซีช้นั มธั ยมศึกษาปี ท่ี 6 ซ้ึงในเน้ือหาจะ อธิบายถึงความรู้เก่ียวกบั ภาษาซีในโรงเรียนวงั เหนือวทิ ยา หวงั เป็นอยา่ งยง่ิ วา่ จะเป็นประโยชน์ต่อผู้ ศึกษาไดเ้ ป็นอยา่ งดี ชื่อ พทั รดนย์ กาศรี ชื่อ กิตติพล สวยสด ช่ือ ชญานนท์ หนูเลี่ยง ผจู้ ดั ทา
ภาษาซีเป็นภาษาที่ถือวา่ เป็นท้งั ภาษาระดบั สูงและ ระดบั ต่า ถกู พฒั นาโดยเดนนิส ริดชี (Dennis Ritche) แห่ง หอ้ งทดลองเบลล์ (Bell Laboratories) ที่เมอร์รีฮิล มลรัฐนิว เจอร์ซี่ โดยเดนนิสไดใ้ ชห้ ลกั การของภาษา บีซีพีแอล (BCPL : Basic Combine Programming Language) ซ่ึงพฒั นาข้ึนโดย เคน ทอมสนั (Ken Tomson) การออกแบบและพฒั นาภาษาซี ของเดนนิส ริดชี มีจุดมุ่งหมายใหเ้ ป็นภาษาสาหรับใชเ้ ขียน โปรแกรมปฏิบตั ิการระบบยนู ิกซ์ และไดต้ ้งั ช่ือวา่ ซี (C) เพราะ เห็นวา่ ซี (C) เป็นตวั อกั ษรต่อจากบี (B) ของ ภาษา BCPL ภาษาซีถือวา่ เป็นภาษาระดบั สูงและภาษาระดบั ต่า ท้งั น้ีเพราะ ภาษาซีมีวิธีใชข้ อ้ มลู และมีโครงสร้างการควบคุม การทางานของโปรแกรมเป็นอยา่ งเดียวกบั ภาษาของโปรแกรม ระดบั สูงอื่นๆ
จึงถือวา่ เป็นภาษาระดบั สูง ในดา้ นท่ีถือวา่ ภาษาซีเป็นภาษาระดบั ต่า เพราะภาษาซีมีวธิ ีการเขา้ ถึงในระดบั ต่าท่ีสุดของฮาร์ดแวร์ ความสามารถท้งั สองดา้ นของภาษาน้ีเป็นสิ่งท่ีเก้ือหนุนซ่ึงกนั และ กนั ความสามารถระดบั ต่าทาใหภ้ าษาซีสามารถใชเ้ ฉพาะเครื่องได้ และความสามารถระดบั สูง ทาใหภ้ าษาซีเป็นอิสระจากฮาร์ดแวร์ ภาษาซีสามารถสร้างรหสั ภาษาเครื่องซ่ึงตรงกบั ชนิดของขอ้ มลู น้นั ไดเ้ อง ทาใหโ้ ปรแกรมที่เขียนดว้ ยภาษาซีท่ีเขียนบนเครื่องหน่ึง สามารถนาไปใชก้ บั อีกเคร่ืองหน่ึงได้ ประกอบกบั การใชพ้ อยน์ เตอร์ในภาษาซี นบั ไดว้ า่ เป็นตวั อยา่ งที่ดีของการเป็นอิสระจาก ฮาร์ดแวร์
ภาษาคอมพิวเตอร์ หมายถึง ภาษาใด ๆ ท่ี ผใู้ ชง้ านใชส้ ่ือสารกบั คอมพวิ เตอร์ หรือคอมพวิ เตอร์ ดว้ ยกนั แลว้ คอมพวิ เตอร์สามารถทางานตามคาส่ังน้นั ได้ คาน้ีมกั ใชเ้ รียกแทนภาษาโปรแกรม แตค่ วามเป็นจริง ภาษาโปรแกรมคือส่วนหน่ึงของภาษาคอมพวิ เตอร์ เท่าน้นั และมีภาษาอื่น ๆ ที่เป็นภาษาคอมพวิ เตอร์เช่นกนั ยกตวั อยา่ งเช่น เอชทีเอม็ แอล เป็นท้งั ภาษามาร์กอปั และ ภาษาคอมพิวเตอร์ดว้ ย แมว้ า่ มนั จะไม่ใช่ภาษาโปรแกรม หรือภาษาเคร่ืองน้นั กน็ บั เป็นภาษาคอมพวิ เตอร์ ซ่ึงโดย ทางเทคนิคสามารถใชใ้ นการเขียนโปรแกรมได้ แต่กไ็ ม่ จดั วา่ เป็นภาษาโปรแกรม
ภาษาคอมพวิ เตอร์สามารถแบ่งออกเป็นสองกลุ่มคือ ภาษาระดบั สูง (high level) และภาษาระดบั ต่า (low level) ภาษา ระดบั สูงถกู ออกแบบมาเพอ่ื ใหใ้ ชง้ านง่ายและสะดวกสบาย มากกวา่ ภาษาระดบั ต่า โปรแกรมท่ีเขียนถกู ตอ้ งตามกฎเกณฑ์ และไวยากรณ์ของภาษาจะถกู แปล (compile) ไปเป็น ภาษาระดบั ต่าเพ่ือใหค้ อมพิวเตอร์สามารถนาไปใชง้ านหรือ ปฏิบตั ิตามคาสั่งไดต้ ่อไป ซอฟตแ์ วร์สมยั ใหม่ส่วนมากเขียน ดว้ ยภาษาระดบั สูง แปลไปเป็นออบเจกตโ์ คด้ (object code) แลว้ เปลี่ยนใหเ้ ป็นชุดคาสั่งในภาษาเครื่อง ภาษาคอมพวิ เตอร์อาจแบ่งกลุม่ ไดเ้ ป็นอีกสองประเภท คือ ภาษาที่มนุษยอ์ า่ นออก (human-readable) และภาษาท่ีมนุษย์ อ่านไม่ออก (non human-readable) ภาษาท่ีมนุษยอ์ ่านออกถกู ออกแบบมาเพอ่ื ใหม้ นุษยส์ ามารถเขา้ ใจและส่ือสารไดโ้ ดยตรง กบั คอมพวิ เตอร์ ส่วนใหญ่เป็นภาษาองั กฤษ) ส่วนภาษาที่มนุษย์ อ่านไม่ออกจะมีโคด้ บางส่วนท่ีไม่อาจอา่ นเขา้ ใจได้
1.พรีโปรเชสเชอร์ไดเรคทฟี (Pre-processor Directive) ส่วนหวั ของโปรแกรม(Header File)เป็นส่วนสาคญั ส่วนหน่ึง ของภาษา C เป็นส่วนที่บอกใหค้ อม ไพลเ์ ลอร์ รับทราบวา่ ใหน้ าไฟลส์ ่วนดงั กลา่ วมาคอมไพลร์ ่วมดว้ ยดงั ตวั อยา่ งเฮดเดอร์ไฟล์ คือ #include <stdio.h> โดยชื่อ เฮดเดอร์ไฟลท์ ี่ผนวกเขา้ มาสามารถเขียนอยภู่ ายในเครื่องหมาย < > หรือ \" \" กไ็ ด้ เฮดเดอร์ไฟลเ์ ป็นไฟลช์ นิดขอ้ ความ (Text File) ท่ี ภายในโปรแกรมจะมีการประกาศค่าตวั แปร และคา่ คงที่ตา่ งๆ ซ่ึงจะบรรจุฟังกช์ น่ั มาตรฐานต่างๆ รวมเขา้ ดว้ ยกนั ตามลกั ษณะงานที่ใช้ และเกบ็ ลงในไลบารี โดยจาถกู นามาอ่านรวมกนั กบั ชุดคาสั่งขณะทาการคอมไพล์ เลอร์ เฮดเดอร์ไฟลท์ ี่เรานิยมใชบ้ ่อยมีอยู่ 2 เฮดเดอร์ คือ stdio.h และ conio.h
stdio.h เป็นเฮดเดอร์ท่ีเกี่ยวขอ้ งกบั ฟังชน่ั อินพตุ และเอาตพ์ ุต Input and Output) เช่น ฟังกช์ นั่ printf( ) , scanf ( ) conio.h เป็นเฮดเดอร์ท่ีเก่ียวกบั ฟังกช์ น่ั รอรับ คาส่ัง เช่น getch ( ) ความหมายของพรีโปรเชสเชอร์กค็ ือ \"ตวั ประมวลผล ก่อน\" ช่ึงจะตอ้ งถกู กาหนดไวน้ อกฟังกช์ น่ั เสมอ โดยส่วนน้ีจะไดร้ ับการประมวลผลก่อนชุดคาสั่งภายใน ฟังชน่ั จึงเป็นที่มาของพรีโปรเชสเชอร์นน่ั เอง การ เขียนจะตอ้ งนาหนา้ ดว้ ยเคร่ืองหมาย # เสมอ อยา่ งไรกต็ ามพรีโป รเชสเชอร์จะมีอยหู่ ลายตวั ดว้ ยกนั เช่น #if #ifdef #ifndef #else #elif #endif #include #define #undef #line #error #pragma
2. ฟังกช็ ่ันหลกั (Main Function) ฟังกช็ นั่ main( ) ในภาษา C จดั เป็นฟังกช็ นั่ ท่ีทาหนา้ เสมือนกบั เป็นโปรแกรมหลกั ที่ส่ังใหช้ ุดคาสั่ง ทางาน รวมถึงการเรียกใชฟ้ ังกช์ น่ั ยอ่ ยๆอื่นทางาน กล่าวคือการส่งั งาน ในโปรแกรมจะอยภู่ ายในฟังกช์ น่ั main ( ) นนั่ เอง 3. ประโยคคาส่ัง (Compound Statement) เป็นชุดคาสั่งที่บรรจุอยใู่ นฟังชนั่ นนั่ ๆ ซ่ึงอาจจะเป็น - ประโยคท่ีใชส้ าหรับประกาศตวั แปร (Variable) หรือการกาหนดค่าเริ่มตน้ ใหก้ บั ตวั แปรตา่ งๆ โดยตวั แปรที่ใชง้ านในโปรแกรม จาเป็นตอ้ ง ไดร้ ับการประกาศชนิดขอ้ มลู ของตวั แปรน้นั ๆดว้ ย - ประโยคนิพจน์คณิตศาสตร์ เช่น ประโยค คานวณตวั เลขต่างๆ - ประโยคคาส่ังควบคุมอ่ืนๆ เช่น คาสั่งควบคุม วงจรลปู คาสั่งควบคุมเงื่อนไข เป็นตน้
4. คาอธิบายภายในโปรแกรม (Program Comment) คาอธิบายโปรแกรม เป็นส่วนที่ผเู้ ขียนโปรแกรม นามาใชอ้ ธิบายจุดสาคญั ตา่ งๆ ภายในโปรแกรม เช่น ใชอ้ ธิบายจุดประสงคข์ องโปรแกรมส่วน น้นั ๆ รวมถึงการป้ องการหลงลืม กรณีที่ตอ้ ง กลบั มา ปรับปรุงโปรแกรมใหม่ รูปแบบการ เขียนคาอธิบายในภาษา C /*คาอธิบาย*/ หรือ // คาอธิบาย เช่น /*comment*/ หรือ //comment
วิธีการเขียนผงั งานที่ดี การเขียนผงั งานคานึงถึงส่ิงต่าง ๆ ดงั น้ี 1. ใชส้ ัญลกั ษณ์ตามท่ีกาหนดไว้ 2. ผงั งานจะตอ้ งมีจุดเร่ิมตน้ (Start)และสิ้นสุด (Stop/End/Finish) 3. ใชห้ วั ลกู ศรแสดงทิศทางการไหลของขอ้ มลู จากบนลง ลา่ งหรือซา้ ยไปขวา (ยกเวน้ ท่ีตอ้ งทาซา้ ) 4. ทุกแผนภาพตอ้ งมีลกู ศรแสดงทิศทางเขา้ 1 เส้นและ ออก 1 เส้นโดยไม่มีการปลอ่ ยจุดใดจุดหน่ึงไว้ 5. เขียนคาอธิบายการทางานในแต่ละข้นั ตอนโดยใช้ ขอ้ ความท่ีส้ัน กะทดั รัด ชดั เจนและเขา้ ใจไดง้ ่าย 6. ควรหลีกเลี่ยงโยงเสน้ ไปมาทาใหเ้ กิดจุดตดั มากเพราะ จะทาใหเ้ กิดขอ้ ผิดพลาดง่าย ควรใชส้ ญั ลกั ษณ์เช่ือมจุดต่อเน่ือง แทน 7. ไม่ควรโยงเสน้ เช่ือมผงั งานที่อยไู่ กลมาก ๆ ควรใช้ สัญลกั ษณ์จุดเชื่อมตอ่ แทน 8. ผงั งานที่ดีควรมีความเป็นระเบียบเรียบร้อย สะอาด และชดั เจน สามารถเขา้ ใจและติดตามข้นั ตอนไดง้ ่าย 9. ผงั งานควรมีการทดสอบความถกู ตอ้ งของการทางาน ก่อนไปเขียนโปรแกรม
ประเภทของผงั งาน โดยทว่ั ไปผงั งานคอมพวิ เตอร์แบ่งเป็น 2 ประเภทใหญ่ 1. ผงั งานระบบ (System Flowchart) เป็นผงั งานที่แสดงถึงข้นั ตอนการทางานภายในระบบหน่ึง ๆ เพื่อใหเ้ ห็นโครงสร้างโดยภาพรวมของระบบ ซ่ึงจะแสดงถึงความ เก่ียวขอ้ งของส่วนท่ีสาคญั ตา่ งๆ ในระบบน้นั เช่น เอกสารขอ้ มูล เบ้ืองตน้ ส่ือบนั ทึกขอ้ มลู ท่ีใช้ ขอ้ มูลจะส่งผา่ นไปยงั หน่วยงานใด มี กิจกรรมประมวลผลขอ้ มูลอะไรในหน่วยงานน้นั แลว้ จะส่งต่อไป หน่วยงานใด เป็นตน้ ดงั น้นั ผงั งานระบบอาจเก่ียวขอ้ งกบั ขอ้ มูล สื่อ หรือแหลง่ บนั ทึกขอ้ มลู วสั ดุปกรณ์ คน หรือฝ่ ายงานที่เกี่ยวขอ้ ง ซ่ึง แต่ละจุดจะประกอบไปดว้ ย การนาขอ้ มลู เขา้ วธิ ีการประมวลผล และการแสดงผลลพั ธ์ (Input – Process - Output) ดงั ภาพ
2. ผงั งานโปรแกรม (Program Flowchart) หรือเรียกส้ันๆ วา่ ผงั งาน ผงั งานประเภทน้ีแสดงถึงข้นั ตอนของคาส่ังท่ีใชใ้ น โปรแกรม ผงั งานน้ีอาจสร้างจากผงั งานระบบโดยผเู้ ขียนผงั งาน จะดึงเอาแตล่ ะจุด ที่เก่ียวขอ้ งกบั การทางานของเครื่อง คอมพิวเตอร์ท่ีปรากฏในผงั งานระบบมาเขียน เพอื่ ใหท้ ราบวา่ ถา้ จะใชค้ อมพวิ เตอร์ทางานควรที่จะมีข้นั ตอนคาส่ังอยา่ งไร เพอื่ ให้ ไดผ้ ลลพั ธต์ ามท่ีตอ้ งการ และจะไดน้ ามาเขียนโปรแกรม คอมพิวเตอร์ต่อไป ดงั น้นั การเขียนผงั งานกจ็ ะมีประโยชน์ เหมาะสาหรับ ผบู้ ริหาร ผวู้ เิ คราะห์ระบบ ผเู้ ขียนโปรแกรม และบุคคลอื่นที่ ตอ้ งการศึกษา ทาใหท้ ราบถึงความสมั พนั ธ์ของระบบต้งั แต่ เร่ิมตน้ วา่ มีการปฏิบตั ิแต่ละข้นั ตอนอยา่ งไร ใชว้ ธิ ีการอะไรบา้ ง สุดทา้ ยจะไดผ้ ลลพั ธ์อะไรบา้ ง เม่ือเขา้ ใจระบบงานหรือสิ่งท่ีกา ลงั ศึกษากจ็ ะช่วยใหส้ ามารถปฏิบตั ิงานและแกป้ ัญหาไดอ้ ยา่ งมี ประสิทธิภาพมากยงิ่ ข้ึน ดงั ภาพ
นาย กิตติพล สวยสด ม.6/3 เลขท่ี 6 Email: [email protected] นาย พทั รดนย์ กาศรี ม. 6/3 เลขที่ 3 Email:[email protected] นาย ชญานนท์ หนูเลี่ยง ม. 6/3 เลขที่ 7 Email: [email protected]
Search
Read the Text Version
- 1 - 16
Pages: