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 จุรีรัตน์ อวดห้าว, 2020-11-08 00:32:00

Description: นายธนากูล ท่าคล่อง เลขที่11
นายบัณฑิต มีกลิ่น เลขที่12
ชั้น ม.602

Search

Read the Text Version

ความรู้เกยี่ วกบั ภาษาซี ประกอบการเรียนวิชา ว30268 ภาษาซี ครูผสู้ อน ครูรัชชนก วงศเ์ ขียว

คานา แผนการสอนฉบบั น้ีจดั ทาข้ึนเพ่ือเป็ นเอกสารประกอบการสอน วิชาเทคโนโลยี สาระสนเทศรหสั วิชา ว30268 ระดบั ช้นั มธั ยมศึกษาปี ท่ี6โดยประกอบไปดว้ ยเน้ือหา สาระ ซ่ึงเป็นแนวทางในการจดั การเรียนการสอนเพ่ือประสิทธิภาพของการสอน ผูจ้ ดั หวงั อย่างยิ่งว่าแผนการสอนฉบบั น้ีจะมีประโยชน์ต่อผูท้ ่ีสนใจ ไม่มากก็นอ้ ย หากมีขอ้ ผดิ พลาดประการใดกข็ ออภยั ไวใ้ นโอกาสน้ีดว้ ย ผ้จู ดั ทา นายธนากลู ท่าคล่อง เลท่ี11 นายบณั ฑติ มีกลน่ิ เลขท่ี12 ม.6/2

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