ประกอบการเรียนวิชา ว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; เป็นขหอ้ มมาูลยชถนงึ ดิ เเปลน็ ขมกจีารุดกทาศหนนยิ ดมว(่าfตloวัatแinปgรposicnotr)e ซง่ึ อาจมคี ่า 0.23, 1.34, -21.002,….เปน็ ตน้ สว่ นท่ี 3 สว่ นตัวคาสง่ั (Boddy) จะตอ้ สงว่เรนมิ่ ตตวั น้ คดาส้วง่ัยฟคังือกส์ช่วันนขmอaงinโป()รแแลกว้ รใสม่ โดย เครื่องหมายกาหนดขอบเขตเร่ิมต้นของตวั โปรแกรมคอื { หลังจากนั้นใสค่ าส่งั หรือ ฟจโปะงั รตกแ้อช์ งกนั ปรติดมา่ ดใงห้วๆใ้ยโสดเ่เคยครแร่ือตอ่ื งงล่ หห่ะมคมาาายสยงั่;}เหมดร่อืงั อื ตตฟ้อวั งังอกกย์ชาา่ รันงจนบั้นๆ 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) ผงั งานแบง่ ได้ 2 ประเภท 1. ผงั งานระบบ (System Flowchart) คือ ผังงานทแ่ี สดงขนั้ ตอนการทางานในระบบ อยา่ งกว้างๆ แตไ่ ม่เจาะลงในระบบงานยอ่ ย 2. ผังงานโปรแกรม (Program Flowchart) คือ ผงั งานทแี่ สดงถึงขน้ั ตอนในการ ทางานของโปรแกรม ตัง้ แตร่ ับข้อมูล คานวณ จนถึงแสดงผลลพั ธ์ การเขยี นผงั งาน ( Flowchart ) ผังงาน คอื แผนภาพทีม่ กี ารใช้สัญลกั ษณ์รูปภาพและลกู ศรทแ่ี สดงถึงขน้ั ตอนการ ทางานของโปรแกรมหรือระบบทลี ะข้ันตอน รวมไปถึงทิศทางการไหลของข้อมูล ต้งั แตแ่ รกจนไดผ้ ลลัพธต์ ามที่ตอ้ งการ สญั ลักษณผ์ งั งาน วธิ เี ขยี นผงั งานทด่ี ี 1. ใชส้ ญั ลักษณตามท่ีกาหนดไว้ 2. ใชล้ ูกศรแสดงทศิ ทางการไหลของขอ้ มูลจากบนลงลา่ ง หรอื จากซ้ายไปขวา 3. คาอธิบายในภาพสัญลักษณ์ผังงานควรสน้ั กะทดั รดั และเขา้ ใจงา่ ย 4. ทุกแผนภาพตอ้ งมีลูกศรแสดงทศิ ทางเขา้ - ออก 5. ไมค่ วรโยงเส้นเชอื่ มผังงานทอี่ ยไู่ กลมาก ๆ ควรใช้ สัญลักษณ์จดุ เชื่อมตอ่ แทน 6. ผงั งานควรมีการทดสอบความถูกต้องของการทางาน ก่อนนาไปเขย่ี นโปรแกรม จริง
นางสาวพชิ ญา อนนท์ เลขท2่ี 4 ม.6/2 FB: Pichaya Anon นางสาวกติ ตกิ า ชยิ าง คะบุตร เลขท4่ี 1 ม.6/2 FB: Kittika Chiyangkhabutr
Search
Read the Text Version
- 1 - 15
Pages: