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-09 07:24:43

Description: นาย ภัทรพล เพียรงาน เลขที่ 5
นาย ศิริชัย สุทนะ เลขที่ 8

Search

Read the Text Version

ความรู้เก่ียวกบั ภาษาซี ประกอบการเรียนวชิ า ว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 ไบต

การเขยี นผงั งาน ผงั งาน คือ แผนภาพท่ีมีการใชส้ ัญลกั ษณ์รูปภาพและลูกศรที่แสดงถึงข้นั ตอนการทางาน ของโปรแกรมหรือระบบทีละข้นั ตอน รวมไปถึงทิศทางการไหลของขอ้ มลู ต้งั แต่แรกจนได้ ผลลพั ธต์ ามที่ตอ้ งการ วธิ เี ขยี นผงั งานทดีน ี 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