ชุดท2ี่ โครงสรา้ งของโปรแกรมภาษาซี บัตรเน้อื หาท่ี 1 เรม่ิ ตน้ กับภาษาซี ประวตั ิความเปน็ มาของภาษาซี ภาษาซีไดร้ ับการพฒั นาเมื่อปี ค.ศ. 27911 นาชเดนนดิ รเด ย่ี(Dennis M. Ritchie) เ้ังยื่อวา่ C เพราะ พัฒนามาจากภาษา BCPL และภาษา B ในย่วงแรกใย้ทดลองเขีชน คาิ่ังควบคุมในห้องปฏดบัเดการเบล (Bell Laboratories) เท่านั้น เมื่อปี ค.ศ. 2791 นาชไบรอัน เคอรอนดกยัน(Brian W. Kernighan) และนาชเดนนดิ รดเย่ี ร่วมกันกาหนดนดชามราชละเอีชดภาษาซี เผชแพร่ความรู้โดชจัดทาหนังิือ The C Programming Language มีหลาชบรดษัทให้ความินใจนาไปพัฒนาเ่อ จนมีภาษาซีหลาช รูปแบบและแพร่หลาชไปท่ัวโลก แเ่ชังไม่มีมาเรฐานคาิั่งเพื่อให้ ิามารถใย้งานร่วมกันได้ ดังน้ันเม่ือปี ค.ศ. 2711 เย่ีได้นาชรด ร่วมกันิถาบันกาหนดมาเANSI (American National Standards Institute) ิร้างมาเรฐานภาษาซีขึ้นมา มีผลให้ โปรแกรมคาิ่ังที่ ิร้างด้วชภาษาซีิังกัดบรดษทั ใดๆ ก็เามที่ใย้คาิั่งมาเรฐานของภาษา ิามารถนามาทางานรว่ มกันได้ ชุดกจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 1 รายวชิ าภาษาซี ง30243 ช้นั มัธยมศึกษาปที ี่ 5
ชดุ ท2่ี โครงสร้างของโปรแกรมภาษาซี ลักษณะเดน่ ของภาษาซี 1. มีความสามารถในการใชง้ านบนสภาพแวดล้อมทีแ่ ตกตา่ งกัน โปรแกรมภาษาซี สามารถรันได้หลาย ระดับตั้งแต่เมนเฟรมจนถงึ ไมโครคอมพิวเตอร์ สามารถเทียบเคยี งกับภาษา อืน่ ๆ จงึ สามารถนาไปใชง้ าน ร่วมกบั คอมพิวเตอรท์ ี่มีแพลตฟอร์มหรือใชร้ ะบบปฏิบตั ิการตา่ งกนั โดยไมต่ อ้ งแปลงชุดคาสัง่ ใดๆ หรือเปล่ยี น อาจปรับเพยี งเล็กน้อย 2. มีประสทิ ธิภาพสงู วดั จาก ชุดคาสัง่ กะทัดรัด การจัดการหนว่ ยความจา การทางานมคี วามรวดเร็ว 3. ความสามารถในการโปรแกรมแบบโมดูล ภาษาซีอนุญาตให้แบ่งโมดูลเพ่อื คอมไพล์ไดถ้ กู ออกแบบ ภาษาเชิงโครงสรา้ งดีเยยี่ ม ทส่ี าคัญภาษาซีจะประกอบดว้ ยฟังกช์ ่ันในโมดูลต่าง ๆ 4. พอยนเ์ ตอร์ สามารถกาหนดไดจ้ ากชนดิ ขอ้ มูลไดห้ ลากหลาย 5. มีความยดื หยนุ่ สงู สามารถเขียนใช้งานร่วมกบั ภาษาระดับต่าอยา่ งภาษาแอสแซมบลไี ด้ ตัวอักษร ตวั พมิ พเ์ ล็กและตัวพิมพใ์ หญ่ แตกต่างกัน ภาษาซีจะมองเป็นคนละตัว และไม่สามารถนามาใช้แทนกนั ได้ ดงั นนั้ การอา้ งชื่อตัวแปรและชอ่ื ฟังกช์ น่ั ควรพงึ ระวงั โครงสรา้ งของภาษาซี โปรแกรมภาษาซี ท่ีสามารถ execute ได้ ทุกโปรแกรมจะมีโครงสรา้ งอยา่ งง่าย ดงั นี้ 2 1. ส่วนของการประกาศสว่ นหัวของโปรแกรม หรือที่เรียกว่า เฮดเดอร์ไฟล์ (Header File) เป็นการเรียกใช้เฮดเดอร์ไฟล์เข้ามาร่วมใช้ งานภายในโปรแกรม โดยไฟล์เฮดเดอรเ์ ป็นไฟลท์ ี่ใชใ้ นการรวบรวมฟังก์ชนั่ การทางานต่าง ๆ ซึง่ เฮดเดอร์ไฟลจ์ ะ เขียนอยู่ภายในเครื่องหมาย < > เช่น #include <stdio.h> เป็นไฟล์เฮดเดอร์ที่รวบรวมเกี่ยวกับฟังก์ชั่น มาตรฐานทางดา้ นการรับข้อมูล (Input) และแสดงผลข้อมูล (Output) ยกตัวอย่างเช่น ฟงั ก์ชนั่ printf ( ) เป็น ฟงั ก์ชัน่ ในการแสดงผลข้อมลู ซงึ่ บรรจอุ ยู่ในไฟล์ stdio.h เป็นตน้ 2. สว่ นของชอ่ื ฟังกช์ ั่น ในที่นี้ ฟังก์ชั่นที่กาหนดขึ้นมาชื่อฟังก์ชั่น main() โดยทุกโปรแกรมจะต้องมีฟังก์ชั่น main() ทาหน้าที่เป็นฟังก์ชั่นหลักในการทางานในการประมวลผลโปรแกรมทุกครั้ง โปรแกรมจะทาการ ประมวลผลท่ีฟงั กช์ ่นั main() เปน็ ฟังกช์ น่ั แรก ซึ่งในการเขียนโปรแกรมภาษาซที กุ ครั้งจะขาดฟงั กช์ ่นั main() ไม่ได้ ชุดกจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง30243 ช้นั มัธยมศกึ ษาปที ่ี 5
ชดุ ท2ี่ โครงสรา้ งของโปรแกรมภาษาซี 3. สว่ นตวั โปรแกรม สว่ นน้ีเป็นส่วนในการเขยี นคาส่ังต่าง ๆ เพอ่ื สั่งให้คอมพิวเตอร์ทางาน ในการเขียน คาสั่งจะเขียนภายในเครื่องหมายปีกกาเปิด { และเครื่องหมายปีกกาปิด } โดยปกติส่วนของการเขียน โปรแกรมจะสามารถแบง่ ออกไดเ้ ป็น 2 สว่ นดว้ ยกนั คอื 1) ส่วนของการประกาศตัวแปร คือ ส่วนที่ใช้ในการกาหนดตัวแปรที่จะใช้งานในการ เขียนโปรแกรม 2) สว่ นของคาส่ัง หรอื ฟังก์ชัน่ ต่าง ๆ คอื ส่วนท่ใี ช้สาหรบั ในการพิมพ์คาสง่ั และ ฟงั ก์ชัน่ ต่าง ๆ ซ่งึ หลังจากพิมพฟ์ งั ก์ชน่ั เสร็จแล้วจะตอ้ งปดิ ทา้ ยดว้ ยเครือ่ งหมายเซมโิ คลอน ; เสมอ 4. สว่ นของการเปดิ โปรแกรมและปดิ โปรแกรม ตามโครงสรา้ งของภาษาซี จะต้องมกี ารกาหนดจุดเรม่ิ ตน้ และจบโปรแกรม โดยในทีน่ ใ้ี ช้ เครือ่ งหมายปกี กาเปดิ { ในการระบุตาแหน่งการเรม่ิ ต้นโปรแกรม และ ใชเ้ ครื่องหมายปกี กาปิด } ในการระบตุ าแหนง่ การจบโปรแกรม จากลกั ษณะโครงสรา้ งอย่างงา่ ยของภาษาซี ดังกล่าวมาข้างตน้ นนั้ สามารถเขียนรปู แบบโครงสรา้ ง อย่างง่าย ของโปรแกรมไดด้ งั น้ี รูปแบบโครงสร้างอยา่ งงา่ ยของโปรแกรมภาษาซี # include<stdio.h> void main(void) { คาสั่งประกาศตวั แปร; คาส่ังหรือฟังก์ชนั ต่าง ๆ; } เพื่อให้มีความเข้าใจเกี่ยวกับโครงสร้างอย่างง่ายของโปรแกรมภาษาซี มากยิ่งขึ้น ให้ศึกษาจาก โปรแกรมตวั อย่างภาษาซี ดงั ต่อไปน้ี ชดุ กิจกรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 3 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศึกษาปที ่ี 5
ชดุ ท2ี่ โครงสรา้ งของโปรแกรมภาษาซี โปรแกรมตวั อยา่ งที่ 2.1 แสดงโปรแกรมภาษาซี อยา่ งงา่ ย /* simple.c */ /* บรรทดั ท่ี 1 */ #include<stdio.h> /* บรรทดั ท่ี 2 */ void main(void) /* บรรทดั ท่ี 3 */ { /* บรรทัดที่ 4 */ /* บรรทดั ท่ี 5 */ printf(“Hello, C Language \\n”); } ผลลัพธ์ท่ีไดจ้ ากโปรแกรม Hello, C Language คาอธบิ ายโปรแกรม จากตัวอย่างโปรแกรมภาษาซี ข้างตน้ สามารถอธิบายการทางานได้ดังน้ี บรรทดั ที่ 1 #include<stdio.h> เป็นคาสั่งทเี่ รียกแฟม้ ท่ีชือ่ ว่า stdio.h ซง่ึ ภายในจะบรรจคุ าสั่ง หรอื ฟังกช์ นั ที่จาเป็นต้องใชใ้ นภาษาซี เช่น printf( ), scanf( ) เป็นต้น บรรทดั ท่ี 2 void main(void) เป็นการบอกให้ C compiler รูว้ า่ ฟงั กช์ ัน main( ) เป็นฟังกช์ นั ทไี่ ม่มีการส่ง คา่ ข้อมูล และไม่มีการรบั ค่าขอ้ มลู กลบั บรรทดั ท่ี 3 เครอ่ื งหมาย { เป็นการแสดงจดุ เริ่มต้นของฟงั กช์ นั main( ) บรรทัดท่ี 4 คาสงั่ printf(“Hello, C Language \\n”); เป็นคาส่งั ท่ีใชพ้ มิ พข์ ้อความทอ่ี ยใู่ นเคร่ืองหมาย “….” แสดงออกทางจอภาพแลว้ ข้ึนบรรทัดใหมเ่ พราะมีรหัส \\n (new line) บรรทัดที่ 5 เครื่องหมาย } เป็นการแสดงจุดส้ินสุดของฟังก์ชัน main( ) ชุดกจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 4 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศึกษาปที ่ี 5
ชุดท2ี่ โครงสร้างของโปรแกรมภาษาซี สาหรับข้อความท่ีอยูใ่ นเคร่อื งหมาย /*.......*/ เปน็ คาอธบิ ายในโปรแกรมภาษาซี เพอ่ื ที่จะอธิบายให้ ผอู้ า่ นไดท้ ราบว่ากาลังทาอะไรในโปรแกรม สว่ นมากถา้ เขยี นโปรแกรมทม่ี ขี นาดใหญเ่ ราจาเปน็ ตอ้ งใช้ เครอื่ งหมาย /*.......*/ โดยท่ี C compiler จะไม่ทางานใด ๆ เมอ่ื เจอเครอ่ื งหมาย /*… */ คาอธิบายในโปรแกรมภาษาซี คาอธบิ ายในโปรแกรม (program comment) คอื ข้อความทแี่ ทรกอย่ภู ายในโปรแกรมซ่ึงคอมพวิ เตอร์ จะไม่แปลข้อความนี้ให้เป็นส่วนหนึ่งของโปรแกรม กล่าวคือจะไม่มีผลต่อการทางานของโปรแกรม เขียนไว้ เพื่ออธิบายโปรแกรมซ่ึงในบางครั้งผู้เขียนโปรแกรมอาจต้องการเขียนคาอธิบายกากับขั้นตอนการทางานของ โปรแกรมในแตล่ ะข้ัน ทาให้เกิดประโยชน์กบั ผู้เขียนและผู้ที่อ่านโปรแกรมได้เข้าใจง่ายข้ึน และช่วยทาให้การ แก้ไขและปรับปรงุ โปรแกรมเป็นไปไดง้ ่ายย่งิ ข้นึ โปรแกรมตวั อยา่ งท่ี 2.2 แสดงการใส่คาอธิบายในโปรแกรมบรรทัดเดียว โดยการใช้ เคร่อื งหมาย /* หน้าข้อความที่อธบิ าย และใส่เครื่องหมาย */ หลงั สน้ิ สุดขอ้ ความทอี่ ธบิ าย /* The first program with C */ main() { statement(s); } จากโปรแกรมตัวอย่างขา้ งตน้ มีคาอธบิ ายโปรแกรมดังนี้คือ /* The first program with C */ เปน็ การอธิบายโปรแกรมบรรทดั เดยี ว บอกให้ทราบวา่ โปรแกรมนี้เป็นโปรแกรมแรกทีเ่ ขยี นด้วยภาษาซี โปรแกรมตัวอย่างท่ี 2.3 แสดงการใส่คาอธิบายในโปรแกรมมากกว่า 1 บรรทัด โดยการใช้เครื่องหมาย /* หน้าบรรทัดแรกของข้อความที่อธิบาย และใส่เครื่องหมาย */ หลังสิ้นสุดข้อความที่อธิบายของบรรทัด สดุ ทา้ ย ชดุ กจิ กรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 5 รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศึกษาปีท่ี 5
ชดุ ท2่ี โครงสรา้ งของโปรแกรมภาษาซี /* test.c */ /* This program is to show how to write comments */ main() { statement(s); } จากตัวอยา่ งข้างตน้ มคี าอธบิ ายโปรแกรมดังน้คี อื /* test.c */ เป็นการอธบิ ายโปรแกรมบรรทัด เดียว บอกให้ทราบวา่ โปรแกรมชอ่ื test.c และ /* This program is to show how to write comments */ เปน็ การอธบิ ายโปรแกรม 2 บรรทัด แสดงใหเ้ ห็นถงึ วิธีการใสค่ าอธิบายในโปรแกรม ข้อสังเกต ในชุดกิจกรรมเลม่ นจี้ ะปรากฏการใส่เคร่ืองหมาย /* … */ เพอ่ื อธิบายโปรแกรม ตลอดทง้ั เล่ม ซ่ึงส่วนมากจะใช้บอกใหท้ ราบช่ือโปรแกรม และบอกหมายเลขบรรทดั เพอื่ ใช้ ประกอบการอธบิ ายโปรแกรม ข้นั ตอนการพัฒนาโปรแกรมภาษาซี ขนั้ ตอนการพฒั นาโปรแกรมภาษาซี 6 การพฒั นาโปรแกรมภาษาซี มขี ้นั ตอนดงั นี้ 1. เขียนโปรแกรมต้นฉบบั (source program) ด้วยภาษาซี ใช้โปรแกรม Dev c++ เพอ่ื เขียนโปรแกรมตน้ ฉบบั ดว้ ยภาษาซี จากนั้นบันทึกโปรแกรมพร้อมกับ ตง้ั ชื่อแฟม้ ไว้ แฟม้ ทไี่ ด้จะมนี ามสกุล *.c หรือ *.cpp เช่น simple.c หรอื simple.cpp เป็นตน้ นอกจากนี้ ยังสามารถใช้โปรแกรม Dev c++ เขียนโปรแกรมภาษา C++ ได้อีกดว้ ย ชุดกิจกรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศึกษาปที ่ี 5
ชุดท2ี่ โครงสรา้ งของโปรแกรมภาษาซี 2. แปลโปรแกรมภาษา C ไปเป็นโปรแกรมภาษาเคร่ือง (object program) ใช้คาสั่ง compile เพ่อื แปลโปรแกรมภาษาซี ไปเป็นโปรแกรมภาษาเครอ่ื ง แฟ้มทีไ่ ดจ้ ะมี นามสกุล *.obj ซงึ่ ในขัน้ ตอนนโ้ี ปรแกรมต้นฉบบั อาจเกดิ ความผิดพลาดทางไวยกรณภ์ าษา (syntax error) ข้ึนได้ จงึ ตอ้ งยอ้ นกลับไปแกไ้ ขโปรแกรมต้นฉบบั ในข้อ 1. ให้ถูกต้องเสียกอ่ น 3. เชื่อมโยง (link) โปรแกรมภาษาเครอื่ งเข้ากบั library function ของภาษาซี จะได้เปน็ execute program โดยใช้คาสงั่ link แฟ้มทไ่ี ดจ้ ะมนี ามสกุล *.exe 4. สัง่ ให้ execute program แสดงผลลพั ธ์ออกมา โดยใช้คาส่งั run ในข้นั ตอนนี้ผเู้ ขียนโปรแกรม ควรตรวจสอบผลลัพธ์ท่ไี ด้จากโปรแกรมวา่ ตรงกบั ความตอ้ งการของเรา หรอื ไมถ่ ้าผลลัพธ์ทไ่ี ด้ไมต่ รงกับความต้องการใหก้ ลับไปแกไ้ ขโปรแกรมต้นฉบบั ในข้อ 1. เสร็จแลว้ ทาข้ันตอน ขอ้ 2. ถงึ ขอ้ 4. ซ้าอีก ทาซ้าเชน่ น้ีจนกวา่ จะไดผ้ ลลพั ธ์ทตี่ อ้ งการ เขยี นโปรแกรม แปลโปรแกรมภาษา เชือ่ มโยง แสดงผลลพั ธ์ (source program) (compile) (link) (run) ชดุ กิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 7 รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศึกษาปีที่ 5
ชุดท2่ี โครงสร้างของโปรแกรมภาษาซี โดยสรปุ เราสามารถเขียนผงั งานแสดงขัน้ ตอนการพฒั นาโปรแกรมภาษาซี ได้ดังน้ี ชดุ กจิ กรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 8 รายวชิ าภาษาซี ง30243 ชนั้ มธั ยมศกึ ษาปีที่ 5
Search
Read the Text Version
- 1 - 10
Pages: