ประกอบการเรียน ว 30268 ภาษาซี ครูผสู้ อน ครูรัชชนก วงศเ์ ขียว
คำนำ แผนการสอนฉบบั น้ีจดั ทาข้ึนเพื่อเป็นเอกสารประกอบการ สอน วชิ าเทคโนโลยสี าระสนเทศรหสั วชิ า ว30268 ระดบั ช้นั มธั ยมศึกษาปี ที่6โดยประกอบไปดว้ ยเน้ือหาสาระ ซ่ึงเป็นแนวทาง ในการจดั การเรียนการสอนเพ่อื ประสิทธิภาพของการสอน ผูจ้ ดั หวงั อยา่ งยง่ิ วา่ แผนการสอนฉบบั น้ีจะมีประโยชน์ต่อผทู้ ่ีสนใจ ไม่ มากกน็ อ้ ย หากมีขอ้ ผดิ พลาดประการใดกข็ ออภยั ไวใ้ นโอกาสน้ี ดว้ ย
ลักษณะภาษาคอมพวิ เตอร์ ภาษาคอมพิวเตอร์ หมายถึง ภาษาใด ๆ ที่ผใู้ ชง้ านใชส้ ื่อสารกบั คอมพวิ เตอร์ หรือคอมพวิ เตอร์ดว้ ยกนั แลว้ คอมพิวเตอร์สามารถ ทางานตามคาสงั่ น้นั ได้ คาน้ีมกั ใชเ้ รียกแทนภาษาโปรแกรม แต่ความ เป็นจริงภาษาโปรแกรมคือส่วนหน่ึงของภาษาคอมพวิ เตอร์เท่าน้นั และ มีภาษาอ่ืน ๆ ที่เป็นภาษาคอมพิวเตอร์เช่นกนั ยกตวั อยา่ งเช่น เอชทีเอม็ แอล เป็นท้งั ภาษามาร์กอปั และภาษาคอมพวิ เตอร์ดว้ ย แมว้ า่ มนั จะ ไม่ใช่ภาษาโปรแกรม หรือภาษาเคร่ืองน้นั กน็ บั เป็นภาษาคอมพวิ เตอร์ ซ่ึงโดยทางเทคนิคสามารถใชใ้ นการเขียนโปรแกรมได้ แต่กไ็ ม่จดั วา่ เป็ นภาษาโปรแกรม ภาษาคอมพวิ เตอร์สามารถแบ่งออกเป็นสองกลุ่มคือ ภาษา ระดบั สูง (high level) และภาษาระดบั ต่า (low level) ภาษาระดบั สูงถูก ออกแบบมาเพอ่ื ใหใ้ ชง้ านง่ายและสะดวกสบายมากกวา่ ภาษาระดบั ต่า โปรแกรมท่ีเขียนถูกตอ้ งตามกฎเกณฑแ์ ละไวยากรณ์ของภาษาจะถูก แปล (compile) ไปเป็นภาษาระดบั ต่าเพ่ือใหค้ อมพวิ เตอร์สามารถ นาไปใชง้ านหรือปฏิบตั ิตามคาสง่ั ไดต้ ่อไป ซอฟตแ์ วร์สมยั ใหม่ ส่วนมากเขียนดว้ ยภาษาระดบั สูง แปลไปเป็นออบเจกตโ์ คด้ (object code) แลว้ เปลี่ยนใหเ้ ป็นชุดคาสง่ั ในภาษาเคร่ือง ภาษาคอมพวิ เตอร์อาจแบ่งกลุ่มไดเ้ ป็นอีกสองประเภทคือ ภาษาที่ มนุษยอ์ ่านออก (human-readable) และภาษาที่มนุษยอ์ ่านไม่ออก (non human-readable) ภาษาท่ีมนุษยอ์ ่านออกถูกออกแบบมาเพ่อื ใหม้ นุษย์ สามารถเขา้ ใจและส่ือสารไดโ้ ดยตรงกบั คอมพวิ เตอร์ ส่วนใหญ่เป็น ภาษาองั กฤษ) ส่วนภาษาที่มนุษยอ์ ่านไม่ออกจะมีโคด้ บางส่วนท่ีไม่อาจ อ่านเขา้ ใจได้
ประวตั ิภำษำซี ภาษาซีเป็นภาษาท่ีถือวา่ เป็นท้งั ภาษาระดบั สูงและระดบั ต่า ถูก พฒั นาโดยเดนนิส ริดชี (Dennis Ritche) แห่งหอ้ งทดลองเบลล(์ Bell Laboratories) ที่เมอร์รีฮิล มลรัฐนิวเจอร์ซ่ี โดยเดนนิสไดใ้ ชห้ ลกั การ ของภาษา บีซีพีแอล (BCPL : Basic Combine Programming Language) ซ่ึงพฒั นาข้ึนโดยเคน ทอมสนั (Ken Tomson) การ ออกแบบและพฒั นาภาษาซีของเดนนิส ริดชี มีจุดมุ่งหมายใหเ้ ป็น ภาษาสาหรับใชเ้ ขียนโปรแกรมปฏิบตั ิการระบบยนู ิกซ์ และไดต้ ้งั ชื่อ วา่ ซี (C) เพราะเห็นวา่ ซี (C) เป็นตวั อกั ษรต่อจากบี(B) ของ ภาษา BCPL ภาษา ซีถือวา่ เป็นภาษาระดบั สูงและภาษาระดบั ต่า ท้งั น้ี เพราะ ภาษาซีมีวธิ ีใชข้ อ้ มูลและมีโครงสร้างการควบคุมการทางาน ของโปรแกรมเป็นอยา่ ง เดียวกบั ภาษาของโปรแกรมระดบั สูงอ่ืนๆ จึง ถือวา่ เป็นภาษาระดบั สูง ในดา้ นท่ีถือวา่ ภาษาซีเป็นภาษาระดบั ต่า เพราะภาษาซีมีวธิ ีการเขา้ ถึงในระดบั ต่าท่ีสุดของฮาร์ดแวร์ ความสามารถท้งั สองดา้ นของภาษาน้ีเป็นส่ิงท่ีเก้ือหนุนซ่ึงกนั และกนั ความสามารถระดบั ต่าทาใหภ้ าษาซีสามารถใชเ้ ฉพาะเครื่องได้ และ ความสามารถระดบั สูง ทาใหภ้ าษาซีเป็นอิสระจากฮาร์ดแวร์ ภาษาซี สามารถสร้างรหสั ภาษาเครื่องซ่ึงตรงกบั ชนิดของขอ้ มูลน้นั ไดเ้ อง ทา ใหโ้ ปรแกรมท่ีเขียนดว้ ยภาษาซีที่เขียนบนเครื่องหน่ึง สามารถ นาไปใชก้ บั อีกเครื่องหน่ึงได้ ประกอบกบั การใชพ้ อยน์เตอร์ในภาษาซี นบั ไดว้ า่ เป็นตวั อยา่ งท่ีดีของการเป็นอิสระจากฮาร์ดแวร์
โครงสร้ ำงภำษำซี 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 แบบคือ ¨ คอมเมนตแ์ บบบรรทดั เดียว ใชเ้ ครื่องหมาย // ¨ คอมเมนตแ์ บบหลายบรรทดั ใชเ้ คร่ืองหมาย /* และ */
ตวั แปร ตัวแปร (Variable) คือ การจองพ้ืนที่ในหน่วยความจาของคอมพิวเตอร์ สาหรับเกบ็ ขอ้ มูลที่ตอ้ งใชใ้ นการทางานของโปรแกรม โดยมีการต้งั ช่ือเรียก หน่วยความจาในตาแหน่งน้นั ดว้ ย เพื่อความสะดวกในการเรียกใชข้ อ้ มูล ถา้ จะใชข้ อ้ มูลใดกใ็ หเ้ รียกผา่ นชื่อของตวั แปรที่เกบ็ เอาไว้ ชนิดของขอ้ มูล ภาษาซีเป็นอีกภาษาหน่ึงท่ีมีชนิดของขอ้ มูลใหใ้ ชง้ านหลายอยา่ งดว้ ยกนั ซ่ึงชนิดของขอ้ มูลแต่ละอยา่ งมีขนาดเน้ือที่ท่ีใชใ้ นหน่วยความจาท่ีแตกต่าง กนั และเน่ืองจากการที่มีขนาดที่แตกต่างกนั ไป ดงั น้นั ในการเลือกใชง้ าน ประเภทขอ้ มูลกค็ วรจะคานึงถึงความจาเป็นในการใชง้ านดว้ ย สาหรับ ประเภทของขอ้ มูลมีดงั น้ีคือ 1. ขอ้ มูลชนิดตวั อกั ษร (Character) คือขอ้ มูลท่ีเป็นรหสั แทนตวั อกั ษรหรือ ค่าจานวนเตม็ ไดแ้ ก่ ตวั อกั ษร ตวั เลข และกลุ่มตวั อกั ขระพิเศษใชพ้ ้นื ท่ีใน การเกบ็ ขอ้ มูล 1 ไบต์ 2. ขอ้ มูลชนิดจานวนเตม็ (Integer) คือขอ้ มูลท่ีเป็นเลขจานวนเตม็ ไดแ้ ก่ จานวนเตม็ บวก จานวนเตม็ ลบ ศูนย์ ใชพ้ ้นื ที่ในการเกบ็ 2 ไบต์ 3. ขอ้ มูลชนิดจานวนเตม็ ท่ีมีขนาด 2 เท่า (Long Integer) คือขอ้ มูลท่ีมีเลขเป็น จานวนเตม็ ใชพ้ ้นื ที่ 4 ไบต์ 4. ขอ้ มูลชนิดเลขทศนิยม (Float) คือขอ้ มูลท่ีเป็นเลขทศนิยม ขนาด 4 ไบต์ 5. ขอ้ มูลชนิดเลขทศนิยมอยา่ งละเอียด (Double) คือขอ้ มูลที่เป็นเลขทศนิยม ใชพ้ ้ืนที่ในการเกบ็ 8 ไบต
หลกั การต้ังช่ือตัวแปร ในการประกาศสร้างตวั แปรตอ้ งมีการกาหนดชื่อ ซ่ึงช่ือน้นั ไม่ใช่วา่ จะต้งั ใหส้ ่ือความหมายถึงขอ้ มูลที่เกบ็ อยา่ งเดียว โดยไม่คานึงถึงอยา่ ง อื่น เน่ืองจากภาษา C มีขอ้ กาหนดในการต้งั ชื่อตวั แปรเอาไว้ แลว้ ถา้ ต้งั ชื่อผดิ หลกั การเหล่าน้ี โปรแกรมจะไม่สามารถทางานได้ หลกั การ ต้งั ชื่อตวั แปรในภาษา C แสดงไวด้ งั น้ี 1.ตอ้ งข้ึนตน้ ดว้ ยตวั อกั ษร A-Z หรือ a-z หรือเครื่องหมาย _(Underscore) เท่าน้นั 2.ภายในช่ือตวั แปรสามารถใชต้ วั อกั ษร A-Z หรือ a-z หรือตวั เลข0-9 หรือเครื่องหมาย 3.ภายในช่ือหา้ มเวน้ ช่ืองวา่ ง หรือใชส้ ญั ลกั ษณ์นอกเหนือจากขอ้ 2 4.ตวั อกั ษรเลขหรือใหญ่มีความหมายแตกต่างกนั 5.หา้ มต้งั ช่ือซ้ากบั คาสงวน (Reserved Word) ดงั น้ี
ชนิดของข้อมูล ภาษาซีเป็นอีกภาษาหน่ึงท่ีมีชนิดของขอ้ มูลให้ใชง้ านหลาย อยา่ งดว้ ยกนั ซ่ึงชนิดของขอ้ มูลแต่ละอยา่ งมีขนาดเน้ือท่ีที่ใชใ้ น หน่วยความจาที่แตกต่างกนั และเน่ืองจากการที่มีขนาดที่ แตกต่างกนั ไป ดงั น้นั ในการเลือกใชง้ านประเภทขอ้ มูลกค็ วร จะคานึงถึงความจาเป็นในการใชง้ านดว้ ย สาหรับประเภทของ ขอ้ มูลมีดงั น้ีคือ 1. ขอ้ มูลชนิดตวั อกั ษร (Character) คือขอ้ มูลท่ีเป็นรหสั แทน ตวั อกั ษรหรือค่าจานวนเตม็ ไดแ้ ก่ ตวั อกั ษร ตวั เลข และกลุ่มตวั อกั ขระพิเศษใชพ้ ้ืนท่ีในการเกบ็ ขอ้ มูล 1 ไบต์ 2. ขอ้ มูลชนิดจานวนเตม็ (Integer) คือขอ้ มูลท่ีเป็นเลขจานวน เตม็ ไดแ้ ก่ จานวนเตม็ บวก จานวนเตม็ ลบ ศูนย์ ใชพ้ ้ืนที่ในการ เกบ็ 2 ไบต์ 3. ขอ้ มูลชนิดจานวนเตม็ ที่มีขนาด 2 เท่า (Long Integer) คือ ขอ้ มูลท่ีมีเลขเป็นจานวนเตม็ ใชพ้ ้นื ที่ 4 ไบต์ 4. ขอ้ มูลชนิดเลขทศนิยม (Float) คือขอ้ มูลที่เป็นเลขทศนิยม ขนาด 4 ไบต์ 5. ขอ้ มูลชนิดเลขทศนิยมอยา่ งละเอียด (Double) คือขอ้ มูลท่ีเป็น เลขทศนิยม ใชพ้ ้นื ที่ในการเกบ็ 8 ไบต
กำรเขียนผงั งำน ผงั งาน (Flowchart) เป็นผงั งานรูปภาพท่ีใชแ้ สดงแนวคิด หรือข้นั ตอนการ ทางานของโปรแกรม และเป็นเคร่ืองมือที่ช่วยใหม้ องเห็นภาพรวมของ โปรแกรมที่ทาใหเ้ ราเขียนโปรแกรมไดง้ ่ายยงิ่ ข้ึน เนื่องจากเราสามารถ มองเห็นแนวคิด และทิศทางการทางานของโปรแกรมน้นั เอง หลกั การเขยี นผงั งาน (Flowchart) ผงั งาน (Flowchart) เป็นผงั งานที่ใชแ้ สดงแนวความคิด หรือ ข้นั ตอนการทางานของโปรแกรม โดยใชส้ ญั ลกั ษณ์แทนคาอธิบาย ไม่วา่ จะเป็นการใชก้ รอบส่ีเหล่ียมเป็นสญั ลกั ษณ์แทนการประมวลผล หรือจะ เป็นการใชล้ ูกศรแทนทิศทางการทางานของโปรแกรม ซ่ึงเราสามารถสรุป สญั ลกั ษณ์การทางานที่ควรทราบได้ ดงั น้ี
การเขยี นผงั งาน(Flowchart) มีหลกั การง่ายๆที่ควร คานึงดงั น้ี คือ 1. ผงั งาน (Flowchart) จะตอ้ งมีจุดเริ่มตน้ และ จุดสิ้นสุดเสมอ 2. เลือกใชส้ ญั ลกั ษณ์เพื่อสื่อความหมายให้ถูกตอ้ ง 3. ใชล้ ูกศรเป็นตวั กาหนดทิศทางการทางานของ โปรแกรมจากบนลงล่าง จากซา้ ยไปขวาโดย เรียงตามลาดบั 4. รูปสญั ลกั ษณ์ทุกตวั ตอ้ งมีลูกศรเขา้ และออก ยกเวน้ จุดเร่ิมตน้ จะมีเฉพาะออก จุดสิ้นสุด จะมีเฉพาะเขา้ เทา่ น้นั 5. ลูกศรทุกตวั จะช้ีออกจากรูปสญั ลกั ษณ์ตวั หน่ึง ไปยงั รูปสญั ลกั ษณ์อีกตวั หน่ึงเสมอ
ตวั อยา่ ง โจทย์ ผงั งานแสดงโปรแกรมการคานวณค่า a จากสูตร a = x + y โดยรับค่า x และ y ทางแป้นพิมพ์ และแสดงผลลพั ธ์ a ออกทาง จอภาพ จากโครงสร้างผงั งานแบบเรียงลาดบั ตามรูป สามารถ อธิบายข้นั ตอนการทางานไดด้ งั น้ี 1. เร่ิมตน้ การทางาน 2. รับค่าขอ้ มูลเขา้ มาเกบ็ ไวใ้ นตวั แปร x และตวั แปร y 3. คานวณค่า x + y แลว้ ไปเกบ็ ไวใ้ นตวั แปร a 4. แสดงค่าในตวั แปร a 5. สิ้นสุดการทางาน
จดั ทำโดย นำย เจษฎำภรณ์ ใจแก้ว ม.6/2 เลขท่ี16 นำงสำว ชนิสรำ ทองใบ ม.6/2 เลขที่20
Search
Read the Text Version
- 1 - 15
Pages: