Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore วิชาภาษาซี

วิชาภาษาซี

Published by T.ratchanok2524, 2020-11-02 04:31:50

Description: ภาณุวิชญ์ จันตะมะ เลขที่6
ภาดา รสหอม เลขที่13
ชั้น ม.6/2

Search

Read the Text Version

คานา แผนการสอนฉบบั น้ีจดั ทาข้ึนเพ่ือเป็ นเอกสารประกอบการสอน วิชาเทคโนโลยีสาระสนเทศรหัส วชิ า ว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 ไบต

การเขยี นผงั งาน ผงั งาน คือ แผนภาพท่ีมีการใชส้ ญั ลกั ษณ์รูปภาพและลกู ศรที่แสดงถึงข้นั ตอนการทางาน ของโปรแกรมหรือระบบทีละข้นั ตอน รวมไปถึงทิศทางการไหลของขอ้ มลู ต้งั แต่แรกจนได้ ผลลพั ธ์ตามท่ีตอ้ งการ วธิ ีเขยี นผงั งานทดีน ี 1. ใชส้ ัญลกั ษณตามท่ีกาหนดไว้ 2. ใชล้ กู ศรแสดงทิศทางการไหลของขอ้ มูลจากบนลงล่าง หรือจากซา้ ยไปขวา 3. คาอธิบายในภาพสัญลกั ษณ์ผงั งานควรส้ันกะทดั รัด และเขา้ ใจง่าย 4. ทุกแผนภาพตอ้ งมีลกู ศรแสดงทิศทางเขา้ - ออก 5. ไม่ควรโยงเส้นเช่ือมผงั งานที่อยไู่ กลมาก ๆ ควรใช้ สญั ลกั ษณ์จุดเชื่อมต่อแทน 6. ผงั งานควรมีการทดสอบความถกู ตอ้ งของการทางาน ก่อนนาไปเข่ียนโปรแกรมจริง ประโยชัน์ของผงั งานต่อการเขยี นโปรแกรม 1. ลาดบั ข้นั ตอนการทางานของโปรแกรม และสามารถนาไปเขียนโปรแกรมไดโ้ ดยไม่สับสน 2. ตรวจสอบความถูกตอ้ ง และแกไ้ ขโปรแกรมไดง้ ่ายเม่ือเกิดขอ้ ผดิ พลาด 3. การปรับปรุง เปล่ียนแปลง แกไ้ ข ทาไดอ้ ยา่ งสะดวกและรวดเร็ว 4. ทาใหผ้ อู้ ่ืนสามารถศึกษาการทางานของโปรแกรมไดอ้ ยา่ งง่าย และรวดเร็วมากข้ึน ผังงานแบ่งได้ 2 ประเภท 2.1 ผงั งานระบบ (System Flowchart) ผงั งานที่แสดงการทางานของระบบซ่ึงแสดงภาพรวมของระบบ โดยมีการนาขอ้ มลู เขา้ ประมวลผล และขอ้ มลู ออก โดยแสดงถึงสื่อนาขอ้ มลู เขา้ -ออก แต่ไม่ไดแ้ สดงวธิ ีการ ประมวลผล การนาขอ้ มูลเขา้ วธิ ีการประมวลผล และการแสดงผลลพั ธ์ (Input Process - Output) ผงั งานโปรแกรม (Program Flowchart) ผงั งานท่ีแสดงการทางานยอ่ ยหรือลาดบั ในโปรแกรม ซ่ึงแสดงรายละเอียด ข้นั ตอนการทางานและประมวลผลโปรแกรมน้นั ๆทาใหร้ ู้วธิ ีการคานวณรับขอ้ มูล จากส่ือใด และประมวลผลอยา่ งไร รวมถึงการแสดงผลลพั ธ์ดว้ ยส่ือหรือวธิ ีใด

สัญลกั ษณ์ทใีน ชั้ในการเขยี นผงั งาน ในการเขียนผงั งานจะตอ้ งใชร้ ูปภาพ หรือสัญลกั ษณ์ มาใชแ้ ทนข้นั ตอนการ ทางานของโปรแกรม ลกั ษณะของรูปภาพ หรือสัญลกั ษณ์ จะมีความหมายในตวั ของ มนั เอง ซ่ึงมีหน่วยงานท่ีชื่อ American National Standard Institvte (ANSI) และ Internation Standard Organization (ISO) ไดร้ วบรวมและกาหนดใหเ้ ป็นสัญลกั ษณ์ มาตรฐานท่ีจะใชใ้ นการเขียนผงั งาน และผงั งานระบบ เพ่ือใหเ้ ขา้ ใจตรงกนั ดงั ต่อไปน้ี



ตวั อยา่ ง โจทย์ ผงั งานแสดงโปรแกรมการคานวณคา่ a จากสูตร a = x + yโดยรับค่า x และ y ทางแป้ นพมิ พ์ และแสดงผลลพั ธ์ a ออกทางจอภาพ จากโครงสร้างผงั งานแบบเรียงลาดบั ตามรูป สามารถอธิบายข้นั ตอนการทางานได้ ดงั น้ี 1. เริ่มตน้ การทางาน 2. รับค่าขอ้ มูลเขา้ มาเกบ็ ไวใ้ นตวั แปร x และตวั แปร y 3. คานวณค่า x + y แลว้ ไปเกบ็ ไวใ้ นตวั แปร a 4. แสดงค่าในตวั แปร a 5. สิ้นสุดการทางาน




Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook