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:34

Description: นาย ณัฐภัทร ปั้นรูป เลขที่2 ม.6/2
นาย ทิชานนท์ หมั้นขัน เลขที่3 ม.6/2

Search

Read the Text Version

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

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

ลกั ษณะของภาษาคอมพวิ เตอร์ ภาษาคอมพวิ เตอร์ มนุษย์ ใชภ้ าษาในการส่ือสารมาต้งั แต่สมยั โบราณ การใชภ้ าษา เป็นเร่ืองที่มนุษยพ์ ยายามถา่ ยทอดความคิดและความรู้สึกต่าง ๆ เพอ่ื การโตต้ อบและสื่อความหมาย ภาษาท่ีมนุษยใ์ ชต้ ิดต่อส่ือสาร ในชีวิตประจาวนั เช่น ภาษาไทย ภาษาองั กฤษ หรือภาษาจีน ต่าง เรียกวา่ “ภาษาธรรมชาติ” (Natural Language) เพราะมี การศึกษา ไดย้ นิ ไดฟ้ ัง กนั มาต้งั แต่เกิดการใชง้ านคอมพวิ เตอร์ ซ่ึงเป็นเครื่องมือทางอิเลก็ ทรอนิกส์ใหท้ างานตามท่ีตอ้ งการ จาเป็นตอ้ งมีการกาหนดภาษา สาหรับใชต้ ิดต่อส่งั งานกบั คอมพวิ เตอร์ ภาษาคอมพวิ เตอร์จะเป็น ”ภาษาประดิษฐ”์ (Artificial Language) ที่มนุษยค์ ิดสร้างมาเอง เป็นภาษา ท่ีมีจุดมุ่งหมายเฉพาะ มีกฎเกณฑท์ ี่ตายตวั และจากดั คืออยใู่ น กรอบใหใ้ ชค้ าและไวยากรณ์ท่ีกาหนดและมีการตีความหมายท่ี ชดั เจน จึงจดั ภาษาคอมพิวเตอร์เป็นภาษาท่ีมีรูปแบบเป็นทางการ (Formal Language) ต่างกบั ภาษาธรรมชาติท่ีมีขอบเขต กวา้ งมาก ไม่มีรูปแบบตายตวั ที่แน่นอน กฎเกณฑข์ องภาษาจะ ข้ึนกบั หลกั ไวยากรณ์และการยอมรับของกล่มุ ผใู้ ชน้ ้นั ๆ

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

2 ภาษาระดบั ต่า (Low Level Language) เน่ือง จากภาษาเครื่องเป็นภาษาท่ีมีความยงุ่ ยากในการเขียนดงั ไดก้ ล่าวมาแลว้ จึง ไม่มีผนู้ ิยมและมีการใชน้ อ้ ย ดงั น้นั ไดม้ ีการพฒั นาภาษาคอมพวิ เตอร์ข้ึนอีกระดบั หน่ึง โดยการใชต้ วั อกั ษรภาษาองั กฤษเป็นรหสั แทนการทางาน การใชแ้ ละการต้งั ชื่อตวั แปรแทนตาแหน่งท่ีใชเ้ กบ็ จานวนต่าง ๆ ซ่ึงเป็นค่าของตวั แปรน้นั ๆ การใช้ สญั ลกั ษณ์ช่วยใหก้ ารเขียนโปรแกรมน้ีเรียกวา่ “ภาษาระดบั ต่า”ภาษาระดบั ต่าเป็น ภาษาที่มีความหมายใกลเ้ คียงกบั ภาษาเครื่อง มากบางคร้ังจึงเรียกภาษาน้ีวา่ “ภาษา อิงเครื่อง” (Machine – Oriented Language) ตวั อยา่ งของ ภาษาระดบั ต่า ไดแ้ ก่ ภาษาแอสเซมบลี เป็นภาษาท่ีใชค้ าในอกั ษรภาษาองั กฤษ เป็นคาสงั่ ใหเ้ คร่ืองทางาน เช่น ADD หมายถึง บวก SUB หมายถึง ลบ เป็นตน้ การใชค้ าเหลา่ น้ีช่วยใหก้ ารเขียนโปรแกรมง่ายข้ึนกวา่ การใชภ้ าษาเครื่องซ่ึง เป็น ตวั เลขลว้ น ดงั ตารางแสดงตวั อยา่ งของภาษาระดบั ต่าและภาษาเคร่ืองที่ส่งั ใหม้ ีการ บวกจานวน ที่เกบ็ อยใู่ นหน่วยความจา

3 ภาษาระดบั สูง (High Level Language) ภาษา ระดบั สูงเป็นภาษาท่ีสร้างข้ึนเพื่อช่วยอานวยความสะดวกในการเขียน โปรแกรม กล่าวคือลกั ษณะของคาส่งั จะประกอบดว้ ยคาต่าง ๆ ในภาษาองั กฤษ ซ่ึง ผอู้ า่ นสามารถเขา้ ใจความหมายไดท้ นั ที ผเู้ ขียนโปรแกรมจึงเขียนโปรแกรมดว้ ย ภาษาระดบั สูงไดง้ ่ายกวา่ เขียนดว้ ยภาษาแอ สเซมบลีหรือภาษาเครื่อง ภาษา ระดบั สูงมีมากมายหลายภาษา อาทิเช่น ภาษาฟอร์แทรน (FORTRAN) ภาษา โคบอล (COBOL) ภาษาปาสคาล (Pascal) ภาษาเบสิก(BASIC) ภาษา วิชวลเบสิก (Visual Basic) ภาษาซี (C) และภาษาจาวา (Java) เป็นตน้ โปรแกรมที่เขียนดว้ ยภาษาระดบั สูงแต่ละภาษาจะตอ้ งมีโปรแกรมท่ีทาหนา้ ท่ีแปล ภาษาระดบั สูงใหเ้ ป็นภาษาเครื่อง เช่น โปรแกรมแปลภาษาฟอร์แทรนเป็น ภาษาเคร่ือง โปรแกรมแปลภาษาปาสคาลเป็นภาษาเครื่อง คาสง่ั หน่ึงคาส่ังใน ภาษาระดบั สูงจะถกู แปลเป็นภาษาเครื่องหมายคาส่งั

ประวตั ิความเป็ นมาของภาษาซี ภาษาซีเป็นภาษาท่ีถือวา่ เป็นท้งั ภาษาระดบั สูงและระดบั ต่า ถกู พฒั นาโดยเดนนิส ริดชี (Dennis Ritche) แห่งหอ้ งทดลองเบลล์ (Bell Laboratories) ที่เมอร์รี ฮิล มลรัฐนิวเจอร์ซี่ โดยเดนนิสไดใ้ ชห้ ลกั การของภาษา บีซีพีแอล (BCPL : Basic Combine Programming Language) ซ่ึงพฒั นาข้ึนโดยเคน ทอมสนั (Ken Tomson) การออกแบบและพฒั นาภาษาซีของเดนนิส ริดชี มีจุดมุ่งหมาย ใหเ้ ป็นภาษาสาหรับใชเ้ ขียนโปรแกรมปฏิบตั ิการระบบยนู ิกซ์ และไดต้ ้งั ช่ือวา่ ซี (C) เพราะเห็นวา่ ซี (C) เป็นตวั อกั ษรต่อจากบี (B) ของภาษา BCPL

โครงสร้างภาษาซี การเขียนโปรแกรมไม่วา่ จะเป็นภาษาใดกต็ าม กจ็ ะมีโครงสร้างของตวั ภาษาอยู่ ภาษาซีกเ็ ช่นเดียวกนั โดยส่วนใหญ่ประกอบไปดว้ ย 3 ส่วนหลกั ๆ คือ ส่วนหวั (Header) ส่วนประกาศตวั แปร(Declaration) และส่วนคาสง่ั (Body)

ส่วนท่ี 1 ส่วนหวั (header) ส่วนหวั เป็นส่วนที่ระบุซีคอมไพเลอร์เตรียมการทางานที่กาหนดใน ส่วนน้ีไว้ โดยหนา้ คาสงั่ จะมีเคร่ืองหมาย # ตวั อยา่ ง # include <stdio.h> หมายถึง เป็นการระบุใหน้ าไฟล์ stdio.h มารวมกบั ไฟลน์ ้ี เพือ่ ที่จะ สามารถใชค้ าส่ังท่ีอยใู่ นไฟลน์ ้ีมาใชง้ านได้ # define START 0 หมายถึง เป็นการกาหนดค่าคงท่ีใหก้ บั ตวั แปร START โดยใหม้ ีค่าเป็น 0 # define temp 37 หมายถึง เป็นการกาหนดใหต้ วั แปร temp มีค่าเท่ากบั 37 ส่วนท่ี 2 ประกาศตัวแปร (Declaration) ส่วนประกาศตวั แปร เป็นการกาหนดชนิดขอ้ มลู ที่จะใชใ้ นโปรแกรม ซ่ึง ตวั แปร หรือขอ้ มลู ต่างๆน้นั จะถกู ประกาศ(Declare) ในส่วนน้ีก่อน จึงจะ สามารถนาไปใชใ้ นโปรแกรมไดด้ งั ตวั อยา่ ง

int stdno; หมายถึง เป็นตวั กาหนดวา่ ตวั แปร stdno เป็นชนิด ขอ้ มูลจานวนเตม็ integer ซ่ึงอาจไดแ้ ก่ค่า 0,4,-1,-3,...เป็นตน้ float score; หมายถึง เป็นการกาหนดวา่ ตวั แปร score เป็นขอ้ มูล ชนิดเลขมีจุดทศนิยม(floating point) ซ่ึงอาจมีค่า 0.23, 1.34, -21.002,….เป็นตน้ ส่วนท่ี 3 ส่วนตวั คำส่ัง (Boddy) ส่วนตวั คาสงั่ คือส่วนของโปรแกรม โดยจะตอ้ งเร่ิมตน้ ดว้ ยฟังกช์ นั main () แลว้ ใส่เครื่องหมายกาหนดขอบเขตเริ่มตน้ ของตวั โปรแกรมคือ { หลงั จากน้นั ใส่คาสง่ั หรือฟังกช์ นั ต่างๆโดย แต่ล่ะคาสง่ั หรือฟังกช์ นั น้นั ๆ จะตอ้ งปิ ดดว้ ยเครื่องหมาย ; เมื่อ ตอ้ งการจบโปรแกรมใหใ้ ส่เครื่องหมาย } ดงั ตวั อยา่ ง main () { /*เริ่มตน้ โปรแกรม*/ คาสง่ั ต่างๆ ; ฟังกช์ น่ั ; .................... ..................... }/*จบโปรแกรม*/

ตวั แปร ตัวแปร (Variable) คือ การจองพ้ืนท่ีในหน่วยความจาของคอมพิวเตอร์สาหรับ เกบ็ ขอ้ มลู ที่ตอ้ งใชใ้ นการทางานของโปรแกรม โดยมีการต้งั ช่ือเรียกหน่วยความจา ในตาแหน่งน้นั ดว้ ย เพือ่ ความสะดวกในการเรียกใชข้ อ้ มลู ถา้ จะใชข้ อ้ มลู ใดกใ็ ห้ เรียกผา่ นช่ือของตวั แปรที่เกบ็ เอาไว้ หลกั การต้งั ชื่อตวั แปร 1.ตอ้ งข้ึนตน้ ดว้ ยตวั อกั ษร A-Z หรือ a-z หรือเครื่องหมาย _(Underscore) เท่าน้นั 2.ภายในชื่อตวั แปรสามารถใชต้ วั อกั ษร A-Z หรือ a-z หรือตวั เลข0-9 หรือ เครื่องหมาย _ 3.ภายในชื่อหา้ มเวน้ ชื่องวา่ ง หรือใชส้ ญั ลกั ษณ์นอกเหนือจากขอ้ 2 4.ตวั อกั ษรเลขหรือใหญ่มีความหมายแตกต่างกนั 5.หา้ มต้งั ชื่อซ้ากบั คาสงวน (Reserved Word) ดงั น้ี auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while

การต้งั ชื่อ กฎการต้งั ชื่อ การปรากาศตวั แปร จะตอ้ งมีการกาหนดชื่อใหก้ บั ตวั แปร เพอื่ ใหโ้ ปรแกรม ทางาน กฏการต้งั ช่ือในภาษาซียงั ใชก้ บั ช่ือต่างๆ ในโปรแกรมไดอ้ ีกดว้ ย ตวั อยา่ งเช่น การ กาหนด ชื่อโปรแกรม ชื่อของตวั แปรต่างๆ เป็นตน้ การต้งั ช่ือในภาษาซี มีรูปแบบดงั น้ี 1. ชื่อตอ้ งไม่ซ้ากบั คาสงวน (Reserved word) และคามาตรฐานท่ีคอมไพล์ เลอร์รู้จกั 2. จะตอ้ งข้ึนตน้ ดว้ ยตวั อกั ษร (A-Z, a-z) หรือเคร่ืองหมาย _ (Underscore) เท่าน้นั 3. ตวั ต่อไปตอ้ งเป็นตวั อกั ษรหรือตวั เลขหรือเครื่องหมาย _ 4. การต้งั ช่ือจะตอ้ งไม่มีช่องวา่ ง 5. ตวั อกั ษรตวั เลก็ และตวั อกั ษรตวั ใหญ่จะมีความมายแตกต่างกนั ตวั อยา่ งการต้งั ชื่อ เช่น X sum_1 y12 _temp name area tax_rate TABLE*** การต้งั ช่ือไม่สามารถต้งั ชื่อเหมือนกบั คาสงวนไดแ้ ละไม่สามารถเวน้ ช่องวา่ งระหวา่ งชื่อได้ ***

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

ผู้จดั ทา นาย ณฐั ภทั ร ป้ันรูป เลขท2่ี ม.6/2 นาย ทิชานนท์ หม้นั ขัน เลขท3่ี ม.6/2


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