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:24:48

Description: นางสาว จิณห์วรา บัวตอง เลขที่ 31 ม.6/2
นางสาว วชริณญาณ์ คนโต เลขที่ 35 ม.6/2

Search

Read the Text Version

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

หนังสืออเิ ลก็ ทรอนิกส์เล่มนี้ จดั ทาขนึ้ เพื่อใช้ประกอบการเรียนการศึกษาวชิ า เทคโนโลยสี ารสนเทศ เพ่ือให้ผู้เรียนเข้าใจถงึ ความสาคญั ของเทคโนโลยสี ารสนเทศ เพ่ือนาไปใช้ในการเรียน และเป็ นผ้มู คี วามสามารถมีทกั ษะในการนาเทคโนโลยี เกย่ี วกบั ภาษาซีไปศึกษาค้นคว้าประยุกต์ใช้ และพฒั นาตนเองท้งั ทางด้านภาษาซีและ การดาเนินชีวติ จะมปี ระโยชน์ต่อผ้ทู ส่ี นใจ ไม่มากกน็ ้อย หากมีข้อผดิ พลาดประการใด กข็ ออภยั ไว้ในโอกาสนีด้ ้วย คณะผจู้ ดั ทา นางสาว จิณห์วรา บวั ตอง เลขที่ 31 นางสาว วชิรญาณ์ คนโต เลขท่ี 35

ลกั ษณะของภาษาคอมพวิ เตอร์ ภาษาคอมพวิ เตอร์ หมายถึง ภาษาใด ๆ ท่ีผใู้ ชง้ านใชส้ ่ือสารกบั คอมพิวเตอร์ หรือ คอมพิวเตอร์ดว้ ยกนั แลว้ คอมพิวเตอร์สามารถทางานตามคาส่ังน้นั ได้ คาน้ีมกั ใชเ้ รียกแทน ภาษาโปรแกรม แต่ความเป็นจริงภาษาโปรแกรมคือส่วนหน่ึงของภาษาคอมพวิ เตอร์เท่าน้นั และมีภาษาอ่ืน ๆ ท่ีเป็นภาษาคอมพวิ เตอร์เช่นกนั ยกตวั อยา่ งเช่น เอชทีเอม็ แอล เป็นท้งั ภาษา มาร์กอปั และภาษาคอมพิวเตอร์ดว้ ย แมว้ า่ มนั จะไม่ใช่ภาษาโปรแกรม หรือภาษาเคร่ืองน้นั ก็ นบั เป็นภาษาคอมพิวเตอร์ ซ่ึงโดยทางเทคนิคสามารถใชใ้ นการเขียนโปรแกรมได้ แต่กไ็ ม่จดั วา่ เป็นภาษาโปรแกรม ภาษาคอมพิวเตอร์ แบ่งออกเป็น 3 ระดบั คือ ภาษาเครื่อง ภาษาระดบั ต่า และภาษา ระดบั สูง ภาษาเคร่ืองประกอบดว้ ยตวั เลขที่เป็นรหสั ซ่ึงใชแ้ ทนคาสงั่ ต่าง ๆ ภาษาระดบั ต่ามีการใชต้ วั อกั ษรเป็นรหสั ไดแ้ ก่ ภาษาแอสเซมบลี ภาษาระดบั สูงเป็นภาษา ที่ใชอ้ กั ษรภาษาองั กฤษที่แปลง่ายและเขา้ ใจไดเ้ ร็ว เช่น ภาษาโคบอล ภาษาปาสคาล ภาษา เบสิก ภาษาจาวา ภาษาซี

ประวตั คิ วามเป็ นมาของภาษาซี ภาษาซีเกิดข้ึนในปี ค.ศ.1972 โดย Dennis Ritchie แห่ง Bell Labs โดยภาษาซีน้นั พฒั นา มาจาก ภาษา B และจากภาษา BCPL ซ่ึงในช่วงแรก น้นั ภาษาซีถูกออกแบบใหใ้ ชเ้ ป็นภาษาการเขียน โปรแกรมในระบบ UNIX และเริ่มมีคนสนใจมากข้ึน ในปี ค.ศ.1978 เมื่อ Brain Kernighan ร่วมกบั Dennis Ritchie พฒั นามาตรฐานของภาษาซี ข้ึนมา คือ K&R (Kernighan & Ritchie) และท้งั สองยงั ไดแ้ ต่งหนงั สือชื่อวา่ \"The C Programming Language\" โดยภาษาซี น้นั สามารถจะปรับใชก้ บั เครื่องคอมพวิ เตอร์รูปแบบ ต่างๆได้ ต่อมาในช่วง ปี ค.ศ.1988 Ritchie และ Kernighan ไดร้ ่วมกบั ANSI (American National Standards Institute) สร้าง เป็นมาตรฐานของภาษาซีข้ึนมาใหม่มีชื่อวา่ \"ANSI C\" ภาษาซีน้นั จดั เป็นภาษาที่ใชใ้ นการเขียนโปรแกรมท่ีนิยม ใชง้ าน ซ่ึงภาษาซีจดั เป็นภาษาระดบั กลาง (Middle-Level Language) เหมาะกบั การเขียนโปรแกรมแบบโครงสร้าง (Structured Programming) โดยมี คุณสมบตั ิโดดเด่นอยา่ งหน่ึงคือ มีความยดื หยนุ่ มาก กล่าวคือ สามารถทางานกบั เครื่องมือต่างๆ สามารถ ปรับเปล่ียนการเขียนโปรแกรมในรูปแบบต่างๆได้ เช่น สามารถเขียนโปรแกรมท่ีมีความยาวหลายบรรทดั ให้ เหลือความยาว 2-3 บรรทดั ได้ โดยมีการผลการทางานท่ี เหมือนเดิม

โครงสร้างภาษาซี โครงสร้างของโปรแกรมภาษาซีแบ่งออกเป็ น 3 ส่วน 1. ส่วนหัวของโปรแกรม ส่วนหวั ของโปรแกรมน้ีเรียกวา่ Preprocessing Directive ใชร้ ะบุเพื่อบอกให้ คอมไพเลอร์กระทาการ ใด ๆ ก่อนการแปลผลโปรแกรม ในที่น่ีคาสัง่ #include <stdio.h> ใชบ้ อกกบั คอมไพเลอร์ใหน้ าเฮดเดอร์ไฟลท์ ่ีระบุ คือ stdio.h เขา้ ร่วมใน การแปลโปรแกรมดว้ ย โดยการกาหนด preprocessing directives น้ีจะตอ้ ง ข้ึนตน้ ดว้ ยเคร่ืองหมาย # เสมอ 2. ส่วนของฟังก์ช่ันหลกั ฟังกช์ น่ั หลกั ของภาษาซี คือ ฟังกช์ น่ั main() ซ่ึงโปรแกรมภาษาซีทุกโปรแกรมจะตอ้ งมี ฟังกช์ น่ั น้ีอยใู่ นโปรแกรมเสมอ จะเห็นไดจ้ ากชื่อฟังกช์ น่ั คือ main แปลวา่ “หลกั ” ดงั น้นั การ เขียนโปรแกรมภาษซีจึงขาดฟังกช์ นั่ น้ีไปไม่ได้ โดยขอบเขตของฟังกช์ นั่ จะถูกกาหนดดว้ ย เคร่ืองหมาย { และ } กล่าวคือ การทางานของฟังกช์ นั่ จะเร่ิมตน้ ที่เครื่องหมาย { และจะสิ้นสุดที่ เครื่องหมาย } ฟังกช์ น่ั main() สามารถเขียนในรูปแบบของ void main(void) กไ็ ด้ มี ความหมายเหมือนกนั คือ หมายความวา่ ฟังกช์ นั่ main() จะไม่มีอาร์กิวเมนต์ (argument) คือไม่มีการรับค่าใด ๆ เขา้ มาประมวลผลภายในฟังกช์ นั่ และจะไม่มีการคืนค่า ใด ๆ กลบั ออกไปจากฟังกช์ น่ั ดว้ ย

3. ส่วนรายละเอยี ดของโปรแกรม เป็ นส่วนของการเขยี นคาส่ัง เพื่อให้โปรแกรมทางานตามทไ่ี ด้ออกแบบไว้ คอมเมนต์ในภาษาซี คอมเมนต์ (comment) คือส่วนทเ่ี ป็ นหมายเหตุของโปรแกรม มไี ว้เพ่ือให้ ผู้เขยี นโปรแกรมใส่ข้อความอธบิ ายกากบั ลงไปใน source code ซึ่ง คอมไพเลอร์จะข้ามาการแปลผลในส่วนทเี่ ป็ นคอมเมนต์นี้ คอมเมนต์ในภาษาซีมี 2 แบบคือ 1. ¨ คอมเมนต์แบบบรรทดั เดียว ใช้เครื่องหมาย // 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. ชื่อตวั แปร ไม่สามารถใชต้ วั เลขนาหนา้ ได้ 2. ชื่อตวั แปร ไม่สามารถนาเคร่ืองหมายทางคณิตศาสตร์มาประกอบการต้งั ช่ือ 3. ชื่อตวั แปร ไม่สามารถนาเครื่องหมายวรรคตอน (Punctuation) มาใชร้ ่วมได้ 4. ไม่สามารถนาคาสงวนมาไชเ้ พ่อื ต้งั ชื่อตวั แปร 5. ช่ือตวั แปรไม่สามารถคน่ั ดว้ ยช่องวา่ งได้

6. ช่ือตวั แปรสามารถใชต้ วั เลขตามหลงั ได้ 7. สามารถใชเ้ ครื่องหมาย _ (Under Score) เช่ือมคา เพือ่ สื่อความหมายในตวั แปรได้ 8. สามารถใชต้ วั อกั ษรตวั พิมพใ์ หญ่หรือตวั พิมพเ์ ลก็ ในการกาหนดชื่อตวั แปรร่วมกนั ได้ ตวั แปรสาหรับข้อความ ในภาษา C ไม่มีการกาหนดชนิดของตวั แปรสาหรับขอ้ ความโดยตรง แต่จะใชก้ าร กาหนดชนิดของตวั แปรอกั ขระ (char) ร่วมกบั การกาหนดขนาดแทน และจะเรียกตวั แปรสาหรับเกบ้ ขอ้ ความวา่ ตวั แปรสตริง (string) รูปแบบการประกาศตวั แปรสตริง แสดงไดด้ งั น้ี char name[n] = \"str\"; name ชื่อของตวั แปร n ขนาดของขอ้ ความ หรือจานวนอกั ขระในขอ้ ความ str ขอ้ ความเร่ิมตน้ ที่จะกาหนดใหก้ บั ตวั แปรซ่ึงตอ้ งเขียนไวภ้ ายในเคร่ืองหมาย \" \"

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

ผงั งานแบ่งได้ 2 ประเภท ผงั งานระบบ (System Flowchart) ผงั งานท่ีแสดงการทางานของระบบซ่ึงแสดงภาพรวมของระบบ โดยมีการ นาขอ้ มูลเขา้ ประมวลผล และขอ้ มูลออก โดยแสดงถึงส่ือนาขอ้ มูลเขา้ -ออก แต่ไม่ไดแ้ สดง วธิ ีการประมวลผล การนาขอ้ มูลเขา้ วธิ ีการประมวลผล และการแสดงผลลพั ธ์ (Input – Process - Output) ผงั งานโปรแกรม (Program Flowchart) ผงั งานที่แสดงการทางานยอ่ ยหรือลาดบั ในโปรแกรม ซ่ึงแสดงรายละเอียด ข้นั ตอนการทางานและประมวลผลโปรแกรมน้นั ๆทาใหร้ ู้วธิ ีการคานวณรับขอ้ มูลจากสื่อ ใด และประมวลผลอยา่ งไร รวมถึงการแสดงผลลพั ธด์ ว้ ยส่ือหรือวธิ ีใด

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




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