18
บทที1 หลักการพื ้นฐานของภาษา ภาษาโปรแกรม ( Programming languages) มีการคิดค้นเพื่อนามาใช้งานกับ เครื่องคอมพิวเตอร์ มีหลายภาษาแต่ละภาษามีวัตถุประสงค์ในการใช้งานตาม ผู้คิดค้นเฉพาะด้าน ภาษาโปรแกรมที่รู้จักกันอย่างทั่วไปนั ้นอาจจะมีบางภาษา เช่น โคบอล ( Cobal) ปาสคาล ( Pascal) เดลไพ ( Delphi) วิชวลเบสิก ( Visual BASIC) ซี (C) จาวา (Java) เป็นต้น ภาษาซี ( C programming language) เป็นภาษาที่เรียกว่า ภาษามีโครงสร้าง ในการออกแบบโปรแกรมในลักษณะชุดคาสั่ง โดยมีจุดเด่นด้าน ประสิทธิภาพการทางานที่รวดเร็ว มีความยืดหยุ ่นการเขียนโปรแกรมสูง ภาษาซี เป็นภาษาโปรแกรมบนคอมพิวเตอร์ได้รับการสร้างขึ ้นเมื่อ ค.ศ. 1972 โดย เดนนิส ริตชี (Dennis Ritchie) ที่ห้องปฏิบัติการแบลล์เทเลโฟน ( Bell Telephone Laboratories) (Steven และ Lutfar, 2006) ภาษาซีเป็นภาษาโปรแกรมหนึ ่งที่ได้รับความนิยมมากที่สุดตลอดกาล จัดลาดับ โดย http://www.langpop.com. ด้วยเพราะสถาปัตยกรรมคอมพิวเตอร์ เพียงส่วน น้อยเท่านั ้น ที่ไม่มีตัวแปลโปรแกรมของภาษาซี ภาษาซีมีอิทธิพล (powerful) อย่างมากต่อภาษาโปรแกรมที่นิยมอื่น ๆ ที่เด่นชัดที่สุดก็คือ ภาษาซีพลัสพลัส (C++) ซึ ่งเป็นส ่วนขยายของภาษาซี ภาษาซีเป็นภาษาที่มีความยืดหยุ ่นสูง (flexible) ภาษาที่ใช้ในการเขียนโปรแกรม เป็นระบบเชิงคาสั่ง (หรือเชิงกระบวนงาน) ถูกออกแบบขึ ้น เพื่อใช้แปลด้วย ตัวแปลโปรแกรมแบบการเชื่อมโยงที่ตรงไปตรงมา สามารถเข้าถึงหน่วยความจา ในระดับล่าง เพื่อสร้างภาษาที่จับคู ่อย่างมีประสิทธิภาพกับชุดคาสั่งเครื่อง

หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

บทท 1

หลกการพนฐานของภาษา

ภาษาโปรแกรม (Programming languages) มการคดคนเพอน ามาใชงานกบ

เครองคอมพวเตอร มหลายภาษาแตละภาษามวตถประสงคในการใชงานตาม

ผคดคนเฉพาะดาน ภาษาโปรแกรมทรจกกนอยางทวไปนนอาจจะมบางภาษา เชน

โคบอล (Cobal) ปาสคาล (Pascal) เดลไพ (Delphi) วชวลเบสก (Visual BASIC)

ซ (C) จาวา (Java) เปนตน ภาษาซ (C programming language) เปนภาษาทเรยกวา

ภาษามโครงสราง ในการออกแบบโปรแกรมในลกษณะชดค าสง โดยมจดเดนดาน

ประสทธภาพการท างานทรวดเรว มความยดหยนการเขยนโปรแกรมสง

ภาษาซ เปนภาษาโปรแกรมบนคอมพวเตอรไดรบการสรางขนเมอ ค.ศ. 1972 โดย

เดนนส รตช (Dennis Ritchie) ทหองปฏบตการแบลลเทเลโฟน (Bell Telephone

Laboratories) (Steven และ Lutfar, 2006)

ภาษาซเปนภาษาโปรแกรมหนงทไดรบความนยมมากทสดตลอดกาล จดล าดบ

โดย http://www.langpop.com. ดวยเพราะสถาปตยกรรมคอมพวเตอร เพยงสวน

นอยเทาน น ทไมมตวแปลโปรแกรมของภาษาซ ภาษาซมอทธพล (powerful)

อยางมากตอภาษาโปรแกรมทนยมอน ๆ ทเดนชดทสดกคอ ภาษาซพลสพลส

(C++) ซงเปนสวนขยายของภาษาซ

ภาษาซเปนภาษาทมความยดหยนสง (flexible) ภาษาทใชในการเขยนโปรแกรม

เปนระบบเชงค าสง (หรอเชงกระบวนงาน) ถกออกแบบขน เพอใชแปลดวย

ตวแปลโปรแกรมแบบการเชอมโยงทตรงไปตรงมา สามารถเขาถงหนวยความจ า

ในระดบลาง เพอสรางภาษาทจบคอยางมประสทธภาพกบชดค าสงเครอง

Page 2: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

2

และแทบไมตองการสนบสนนใด ๆ ขณะท างาน ภาษาซจงเปนประโยชนส าหรบ

หลายโปรแกรม

ในป ค.ศ. 1983 ไดมการจดต งหนวยงานมาตรฐานดานการก าหนดรหสของ

ตวอกษรของอเมรกาขนเปนหนวยชอ American National Standards Institute

(ANSI) ส าหรบก าหนดมาตรฐานใหกบภาษาซ ขนเพอเปนขอก าหนดในการแปล

ความหมายใหกบทก ๆ รปแบบทมการใชงาน ภาษาซ (Brian, W. K., Online)

ภาษาคอมพวเตอร

ภาษาคอมพวเตอร หมายถง ชดค าสงทเขยนขนตามรปแบบและโครงสรางของ

ภาษา เพอสงงานใหคอมพวเตอรท างานตามชดค าสงหรอโปรแกรมทถกเขยนขน

โดยโปรแกรมเมอร (Programmer) โดยทวไปภาษาคอมพวเตอรแบงออกตาม

ความยากงายในการท าความเขาใจของการเขยนโปรแกรมได 3 ระดบดงน

ระดบท 1. ภาษาระดบต า (low level language) เปนภาษาทคอมพวเตอรทสงงาน

ถงการท างานของฮารดแวร ไดโดยตรง ภาษาระดบต าจงท างานไดเรว การเขยน

โปรแกรมดวยภาษาระดบต า โปรแกรมเมอรตองมความรดานโครงสรางระบบ

คอมพว เตอ ร (system computer architecture) เ ชน หนวยประมวลผลกลาง

หนวยความจ า (ROM, RAM) หนวย รบขอ มล และหนวยแสดงผล ว า ม

สวนประกอบทมความเชอมโยง ท างานรวมกนกบสวนใด และอยางไรเปนอยางด

จงท าใหสามารถเขยนโปรแกรมไดสมบรณแบบ ซงภาษาระดบต าสามารถแบง

ออกได 2 ภาษาคอ

Page 3: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

3

ภาษาเครอง (machine language) เปนชดค าสงทอยในระบบเลขฐาน 2

(binary number) ตดตอกบฮารดแวรไดโดยตรง คอมพวเตอรสามารถท างานตาม

ค าสงไดทนท โดยไมตองใชตวแปลภาษาท าใหคอมพวเตอรสามารถท างานตามท

โปรแกรมไดท าการก าหนดใหอปกรณใดท างานกอนหลงอยางไรไดโดยตรง

ภาษาแอสเซมบล (assembly language) เปนภาษาทเขยนอยในรปแบบ

ของชดค าสงในระบบเลขฐาน 16 (hexadecimal number) เปนภาษาท งายกวา

ภาษาเครองแตกย งเขาใจยากกวาภาษาระดบกลางและภาษาระดบสง การ

ประมวลผลการท างานไดรวดเรว การตดตอกบฮารดแวรท าไดด การสงงานให

คอมพวเตอรท างานตองมการแปลภาษาเปนภาษาเครองกอนโดยใชตวแปลภาษาท

เรยกวา แอสเซมเบลอร (assembler) กอนทถอดความหมายใหเครองคอมพวเตอร

ท างานตามทก าหนดของโปรแกรม

ระดบท 2. ภาษาระดบกลาง (medium level language) เปนภาษาทมลกษณะผสม

กนระหวางภาษาระดบสงกบภาษาระดบต า รปแบบของค าสงคลายกบประโยค

ทางภาษาองกฤษ บางค าสงน ารปแบบภาษาระดบต ามาใชงานรวมดวย การเขยน

โปรแกรมไดจงมความเขาใจไดเรวกวาภาษาระดบต า ในสงงานใหคอมพวเตอร

ท างานจะตองมตวแปลความหมายโดยใชตวแปลทเรยกกนวา “คอมไพเลอร”

(compiler) ดงเชน ภาษาซ เมอท าการสรางโคดตวโปรแกรม ตามรปแบบของ

โครงสรางภาษาซแลวตองมามาผานตวแปล คอมไพเลอรของภาษาซกอนจงจะได

แฟมขอมลชนดประมวลผล (exe) ทน าไปท างานบนเครองคอมพวเตอรใด ๆ ก

สามารถท างานตามทโปรแกรมก าหนดได

Page 4: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

4

ระดบท 3. ภาษาระดบสง (high level language) เปนภาษาทสามารถศกษาและ

สามารถเขาใจไดงาย มลกษณะค าสงคลายกบประโยคทางภาษาองกฤษใน

ชวตประจ าวน จงงายตอการท าความเขาใจและใชเวลาในการเขยนโปรแกรมนอย

การสงงานใหคอมพวเตอรท างานจะมขนตอนทซบซอนกวาภาษาระดบต าและ

ภาษาระดบกลาง การสงงานเปนการสงงานไดเพยงบางสวนของคอมพวเตอร

เทาน น การแปลค าสงตองใชตวแปลภาษาระดบสงเรยกวา อนเตอรพรเตอร

(Interpreter) หรอ คอมไพเลอร (compiler) เชน ภาษาเบสก (BASIC language),

ปาสคาล (pascal language) และภาษาจาวา (java language) เปนตน โดยการท างาน

เหมาะกบการโปรแกรมบนระบบเครองคอมพวเตอรสวนบคคล (personal

computer) ทวไป เ ชนภาษาจาวา ในการท างานของโปรแกรมตองท าการ

คอมไพเลอร กอนจงสามารถท างานไดโดยขณะท างานตองอาศยตว อนเตอรพร-

เตอรจาวา มาท างานรวมดวยเสนอ ซงแตกตางกบกลมของภาษาระดบต ากบ

ภาษาระดบกลาง มกเปนการเขยนโปรแกรมเพอน าไปควบคมอปกรณไฟฟา

อปกรณอเลกทรอนกส ตวโปรแกรมมขนาดเลกถงเลกมาก กลมภาษาระดบต า

และกลมภาษาระดบกลางนจงสามารถเขยนโปรแกรมบน เครองคอมพวเตอรท

เปนเครองไมโครโปรเซสเซอร หรอน ามาเขยนโปรแกรมบนเครองอปกรณไฟฟา

ชนดผงตว (embedded) ได

Page 5: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

5

ขบวนการประมวลผลของภาษาซ

รปท 1.1 โฟลวชารตการประมวลผลของภาษาซ

START

สรางโปรแกรม

คอมไพเลอร

ท าการเชอมตอไฟล

ไฟลสวนหว

ไฟลไลบราร

ตวสอบความผดพลาด ?

สงโปรแกรมท างาน

ตวสอบความผดพลาด ?

End

Yes

Yes

File *.obj

File *.exe

Yes

แสดงผลการท างาน

Page 6: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

6

การเขยนโปรแกรมภาษาซ เรมตนจากท าการสรางโปรแกรม (source program

หรอ source code) ซ งตองเ ขยนตามลกษณะโครงสรางของภาษาซ (ตาม

รายละเอยดบทถดไป) ท าการบนทก (save หรอ save as) เปนไฟลนามสกล .c น า

โคดทไดท าการเขยนท าการคอมไพล ท าการตรวจสอบขอผดพลาดวามหรอไม ถา

มใหกลบไปแกไขทโปรแกรม แตถาไมมขอผดพลาดตวระบบภาษาซจะสรางไฟล

นามสกล .obj แลวท าการเชอมตอไฟลจากไฟลไลบรารและระบบจะท าการสราง

ไฟลนามสกล .obj และท าการตรวจสอบความผดพลาดในการเชอมตอ ถาไมม

ขอผดพลาดจะไดไฟลนามสกล .exe ซงเปนไฟลทพรอมน าไปสงงานใหแสดงผล

การท างานตามทก าหนดของโปรแกรม ไฟลทเปนนามสกล .exe นไมสามารถท า

การแกไขไดดวยเพราะเปนไฟลทเปนรหสใหเครองคอมพวเตอรท างาน ดงนน

ถาตองการปรบปรงหรอแกไขโปรแกรมผ เขยนโปรแกรมตองมไฟลทเปน

นามสกล .c มาเขาขบวนการประมวลผลภาษาซใหมตงแตเรมตน

สวนประกอบของภาษาซ

โครงสรางโปรแกรมภาษาซ สามารถแบงออกไดเปน 2 สวน คอ ไฟลสวนหว

(header files) และสวนของตวโปรแกรม

ไฟลสวนหวโปรแกรม (header files)

เปนไฟลทมสวนขยายเปนนามสกล *.h เปนไฟลทสรางฟงกชนใชงานในการ

อ านวยความสะดวกใหกบผใชงานโปรแกรมภาษาซ ทสามารถน าฟงกชนทถก

สรางไวเปนมาตาฐานแลวน ามางานไดทนท ซงฟงกชนตางๆ ไดเกบไวในไลบราร

(library) ของภาษาซเพอใชรวมกบ (include) ในการคอมไพลโปรแกรม เชน

Page 7: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

7

stdio.h (standard input output) เปนไฟลทเกบไลบรารมาตรฐานเกยวกบการรบ

ขอมลและการแสดงผล ซงฟงกชน printf() กถกนยามไวใน stdio.h ดงนนการ

เขยนโปรแกรมทมการเรยกใชฟงกชน printf() ตองท าการประกาศไฟล stdio.h

เพอใชรวมในการคอมไพลโปรแกรมดวย

สวนของตวโปรแกรม

โปรแกรมภาษาซจะประกอบดวยฟงกชน ซงอาจะมหนงฟงกชน หรอหลาย

ฟงกชนกได แตตองมฟงกชน main() ซงเปนฟงกชนหลกของโปรแกรมอยดวย

เสมอโดยฟงกชน จะอยเปนฟงกชนแรกหรออยสวนใดของโปรแกรมกได แต

โดยทวไปนยมก าหนดใหเปนฟงกชนแรก โดยก าหนดใหมเครองหมายปกกาเปด

({ ) เปนเครองหมายเรมตนการเขยนโปรแกรม เครองหมายปกกาปด ( }) เปน

เครองหมายจบโปรแกรม ซงภายในฟงกชน main() จะประกอบไปดวยชดค าสง

และฟงกชนตาง ๆ ซงเกอบทงหมดจะปดทายดวย เครองหมายเซมคอลอน (;)

การเขยนโปรแกรมภาษาซจะเขยนดวยตวอกษรภาษาองกฤษพมพเลก และสวน

ค าอธบาย (comment) จะใชเครองหมาย /* และ */ คนตามล าดบซงจะใชในการ

อธบายโปรแกรมใหผสรางและผพฒนาโปรแกรมเขาใจวตถประสงคของการเขยน

ค าสงหรอฟงกชนนนวาเขยนไวเพออะไร ซงสวนค าอธบายจะไมมผลตอการ

คอมไพล (Alexander, Online)

Page 8: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

8

ตวอยาง 1.1 แสดงตวอยางโครงสรางโปรแกรมภาษาซเบองตน

// สวนของค าอธบาย (comment) /* Example Program */ // ไฟลสวนหวของโปรแกรม (header files) #include<stdio.h> // ไฟลสวนหวของโปรแกรม (header files) #include<conio.h> // ฟงกชนหลกของโปรแกรม main()

// ปกกาเปดเรมตนการเขยนโปรแกรม {

// สวนของตวโปรแกรม clrscr();

printf(“****************\n”); printf(“ Information \n”); printf(“****************\n”); getch(); return 0;

// ปกกาปดจบโปรแกรม }

Page 9: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

9

ผลการท างานโปรแกรม แสดงรปท 1.2

รปท 1.2 แสดงตวโปรแกรมภาษาซและผลการท างานของโปรแกรมตวอยาง

ตวอยางการโปรแกรมภาษาซเบองตน

ตามตวอยางโปรแกรมภาษาซน เปนการแสดงคณสมบตทใชงานทวไปของภาษาซ

ใหท าความเขาใจเบองตน ดงนนผเขยนโปรแกรมยงไมตองท าความเขาใจกบ

รายละเอยดของไวยากรณ (syntax) จากตวอยาง แตใหศกษาคณสมบตตางๆ ของ

ภาษาซทจะมสวนคลายกบภาษาโปรแกรมอนๆ

จากตวอยางรปท 1.2 ในการการเขยนโปรแกรมภาษาซ มขนตอนด าเนนการโดย

ท าการเขยนโคดโปรแกรมลงบนสวนของ พนทการเขยนโปรแกรม ล าดบถดไป

สงใหตวโปรแกรมภาษาซ ท าการคอมไพเลอร (Compiler) โดยการสงทเมน

Page 10: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

10

Compile หรอกด Alt+F9 ตวโปรแกรมทโปรแกรมเมอรไดท าการเขยน วาถกตอง

หรอไมถามขอผดพลาดตวคอมไพเลอร จะแจงวาผดพลาดในสวนใด ถาโปรแกรม

ผานการคอมไพเลอรโดยไมมขอผดพลาด ล าดบถดมาตองสงใหท าการแสดงผล

การท างานของโปรแกรม โดยสงผานเมน Run หรอ กด Ctrl+F9

โครงสรางของโปรแกรมภาษาซ

โปรแกรมภาษาซ เปนการเขยนโปรแกรมแบบโครงสราง ซงแตละโปรแกรมจะ

ประกอบดวยฟงกชนทเปนตวฟงกชนหลกทเรยกวา main ตองมและยงตอง

ประกอบดวยฟงกชนทท าหนาทอนๆ อกหลายฟงกชน โดยการจดเรยงต าแหนง

ของฟงกชนทประกอบอาจอยกอนหรอหลงฟงกชน main กได โดยในการ

ประมวลผลการท างานของโปรแกรมตองกระท าในสวนของ ฟงกชน main กอน

เสนอ หลงจากนนในฟงกชน main ถามการเรยกใชฟงกชนใดๆ ไดตามล าดบของ

การเขยนโปรแกรม (statement) ตามตวอยางท 1.2

Page 11: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

11

ตวอยางท 1.2 แสดงตวอยางการค านวณพนทวงกลม

จากตวอยาง 1.2 มขอสงเกตดงน

1. การพมพค าสงทงหมดใหใชตวเลก (lowercase) เทานนสวนบางสวนทไม

ใชตวค าสง เปนค าอธบายหรอเปนสวนทจะสอสารกบผใชโปรแกรม

สามารถใชตวพมพใหญรวมดวยได เชน ในค าสง printf("Radius = ?");

พบวามค าวา Radius มตวใหญคอ R ถอวาตองถกเพราะเปนขอความทใช

ในการสอสารกบผใชโปรแกรมใหท าการกรอกคา รศมทตองการให

โปรแกรมท าการค านวณพนทวงกลม

#include<stdio.h> #include<conio.h> main()

{ clrscr(); float radius, area; printf("Radius = ?"); scanf("%f",&radius); area = 3.14159 * radius * radius; printf("Area= %f", area); return 0; }

Page 12: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

12

2. ในบรรทด ท 1และ 2 มการอางแฟมขอมล ชอ stdio.h และ conio.h

ตามล าดบ ซงเปนแฟมขอมลทจะตองรวมเขามาในตอนแปลโปรแกรม

(compiler) ซงตวแปลโปรแกรมจะท าการรวมอตโนมต

3. บรรทดท 3 เปนสวนหวของฟงกชน main หลงจากชอฟงกชนตองตาม

ดวย ( ) เสมอ โดยในวงเลบไมมขอมลใดๆอยแสดงวา ฟงกชนนไมตอง

อารกวเมนต (argument)

4. สวนบรรทดทอยภายใตวงเลบปกกา จ านวน 7 บรรทดเปนฟงกชนทเปน

ประโยคเชงซอน อยในฟงกชน main

5. บรรทดแรกในฟงกชน main ทยอหนาเขามาเปนการเรยกใชฟงกชน

clrscr() จาก conio.h ท าหนาทในการลางขอความหนาจอภาพ

6. บรรทดถดมาเปนการประกาศ (จอง, สราง) ตวแปล (variable declaration)

ชอ radius และ area ทเปนตวแปลชนดใชเกบคาตวเลขทเปนทศนยม

(รายละเอยดจะกลาวภายหลง)

7. บรรทดถดมาเปนการแสดงขอความเพอขอขอมล ในการรบขอมลจาก

ค าสง scanf (รายละเอยดจะกลาวภายหลง)

8. เปนบรรทดทสงใหท าการค านวณ เปนประโยคก าหนดคา (assignment

statement) โดยการค านวณค าพ น ทจากค า รศ ม ท ปอนเขาไป กบ

เครองหมายดอกจน (*) ในทนหมายถงการคณ แลวน าคาเขาไปเกบตว

แปรชอ area

Page 13: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

13

9. เปนค าสงสดทาย (printf) แสดงคาค านวณโดยมขอความ Area= อธบาย

ผลการแสดงการค านวณคาพนท

10. ทส าคญในการเขยนโปรแกรมของแตละบรรทดหรอค าสง ตองจบดวย

เครองหมายอฒภาค (;) เสมอ

11. ในการเวนวรรค ยอหนา หรอการจดบรรทดเปนการใหการอานโปรแกรม

เขางาย และถอวาเปนการเขยนโปรแกรมทด

ผลการท างานโปรแกรมไดดงน

Radius =? 12 (ตวอยางผใชโปรแกรมกรอกคารศม เทากบ 12)

Area = 452.88947

โดยการกรองคา รศมในโปรแกรมท าการค านวณในทนคอ 12 จงไดผลการค านวณ

พนทวงกลมมคาเทากบ 452.88947

สรป

ภาษาโปรแกรมคอมพวเตอร มการคดคนพฒนาอยตลอดเวลา ตงแตอดต

ถงปจจบน เพอให การเขยนโปรแกรมคอมพวเตอรตอบสนองการใชงาน ใหมาก

ทสด ดงนนในการพฒนาภาษาคอมพวเตอร จงม 3 ระดบ คอ ภาษาระดบต า เปน

ภาษาคอมพวเตอรทผ เขยนโปรแกรม ตองเขาใจฮารดแวรเปนอยางด ภาษา

ระดบกลางเปนภาษาทมผเขยนโปรแกรมมความรฮารดแวรระดบโครงสราง ของ

สถาปตยกรรมคอมพวเตอร กสามารถเขยนโปรแกรมควบคมได เชน ภาษาซ

นนเอง สวนระดบสดทายคอ ภาษาระดบสง เปนภาษาทมผเขยนโปรแกรม ม

ความรในระดบการใชงาน กสามารถเขยนโปรแกรมไดแลว

Page 14: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

14

แบบฝกหดทายบทท 1

ตอนท 1 จงเตมค าหรอขอความในชองวางตอไปนใหถกตอง 1. โปรแกรมภาษาโครงสรางประกอบดวยโปรแกรมใดบาง ……………………………………………………………………………………

2. ภาษาในการเขยนโปรแกรมภาษาใดเปนทนยมมากสด ……………………………………………………………………………………

3. หนวยงานมาตรฐานทท าหนาทในการก าหนดรหสตวอกษรชอเตมวา ……………………………………………………………………………………

4. ภาษาคอมพวเตอรระดบต าประกอบดวยภาษาใดบาง ……………………………………………………………………………………

5. โคดภาษาซเมอท าการบนทกตองบนทกเปนนามสกลหรอแฟมชนดใด ……………………………………………………………………………………

6. แฟมทสรางขนเมอท าการแปลค าสงภาษาซสมบรณประกอบดวยแฟมชนดใดบาง

……………………………………………………………………………………

7. แฟมชนดใดทไมสามารถอานเมอถกแปลค าสงแลวไมสามรถน ามาอานหรอแกไขค าสงได

……………………………………………………………………………………

Page 15: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

15

8. เมอโคดถกแปลค าสงและท าการเชอมตอแฟมไลบรารสมบรณแลวจะท าการสรางแฟมขนเปนนามสกลใด

……………………………………………………………………………………

9. เครองหมายค าสงใดของภาษาซท าหนาทก าหนดขอบเขตจดเรมตนและจดสนสดของโปรแกรมหรอฟงกชน

……………………………………………………………………………………

10. โคดโปรแกรมภาษาซสามารถเขยนโดยไมตองขนบรรทดใหมไดหรอไม ……………………………………………………………………………………

Page 16: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

16

ตอนท 2 จงท าเครองหมายกากบาท (x) ทบหนาขอทถกตองทสด

1. ภาษาซจดเปนภาษาโปรแกรมคอมพวเตอรระดบใด ก. ภาษาเครอง ข. ภาษาแอสเซมบล ค. ภาษาระดบกลาง ง. ภาษาระดบสง

2. แฟมขอมลชนดใด ไมม ความเกยวของกบกระบวนการพฒนาภาษาซ ก. .c ข. .obj ค. .exe ง. .abc

3. แฟมขอมลภาษาซทผเขยนโปรแกรมตองท าการเกบไวเปนสทธสวนทตวเปนแฟมขอมลชนดใด

ก. .c ข. .obj ค. .exe ง. .abc

4. แฟมขอมลชนดใดทผเขยนโปรแกรมควรสงใหลกคาน าไปใชงานเพอปองกนการส าเนาโคดโปรแกรม

ก. .c ข. .obj ค. .exe ง. .abc

5. การสงใหท าการแปลค าสง (compiler) สามารถสงดวยคยลดขอใด ก. Ctrl+F9 ข. Alt+F9 ค. Ctrl+F1 ง. Alt+F1

6. เมอแปลค าสงสมบรณแลวตองการใหโปรแกรมท างานสามารถสงดวยคยลดขอใด

ก. Ctrl+F9 ข. Alt+F9 ค. Ctrl+F1 ง. Alt+F1

7. ฟงกชนหลกของการเขยนโปรแกรมภาษาซทกครงตองมฟงกชนนเสมอคอฟงกชนใด ก. main() ข. printf()

ค. getch() ง. return 0

Page 17: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

17

8. ฟงกชนใดท าหนาทในการสงใหท าการแสดงขอมลออกสหนาจอภาพคอมพวเตอร ก. main() ข. printf()

ค. getch() ง. return 0 9. ค าสง clrscr() ท าหนาทในการสงใหลบขอมลบนหนาจอภาพคอมพวเตอร

เมอเรยกใชงานตองท างานรวมกบไลบรารใด ก. stdio.h ข. conio.h

ค. string.h ง. math.h 10. ค าสงใดท าหนาท ไมมการคนคาของฟงกชน

ก. main() ข. printf() ค. getch() ง. return 0 ………………………………………………………………………………….. ตอนท 3 จงท าการวเคราะหค าถามและท าการเขยนอภปรายค าตอบตามทผอานเขาใจโดยยดความถกตองของเนอหาประกอบการบรรยาย 1. การเขยนโปรแกรมภาษาซมความแตกตาง หรอสมพนธกบภาษาเครอง

อยางไร 2. อากวเมนตมความส าคญอยางไร พรอมยกตวอยางฟงกชนทมอากวเมนตใน

การสงการ 3. การเขยนค าอธบายในโปรแกรมภาษาซท าไดดวยเครองหมายใดไดบาง 4. ค าสงภาษาซสามารถเขยนดวยตวอกษรตวใหญไดหรอเพาะเหตใด 5. ในการสงของโปรแกรมภาษาซในแตละค าสงตองใชเครองหมายใดในสงจบ

ค าสง ในแตละบรรทดสามารถเขยนค าสงไดมากกวาหนงค าสงไดหรอไม อธบายพรอมยกตวอยางค าสง

…………………………………………………………………………………..

Page 18: หลกัการพื้นฐานของภาษา - Dr. Skul Kamnuanchailearn · 2015-01-11 · ภาษาซีเป็นภาษาที่มีความยืดหยุ่นสูง

การเขยนโปรแกรมคอมพวเตอร [ส านกพมพ ศสว.] สกล ค านวนชย

18

เอกสารอางอง

ศรณย อนทโกสม (2539). ทฤษฏและตวอยางโจทยการเขยนโปรแกรมดวยภาษาซ กรงเทพฯ : แมคกรอฮล อนเตอรเนชนแนล เอนเตอรไพรส, องค. ธนวา ศรประโมง (2539). การเขยนโปรแกรมภาษาซส าหรบวศวกรรม. พมพครง ท 4. กรงเทพฯ : มหาวทยาลยเทคโนโลยมหานคร. วจกษณ ศรสจจะเลศวาจา และดษฎ ประเสรฐธตพงษ ออนไลน : www.satit.su.ac.th/soottin. Alexander, A. Tutorial Online : http://www.cprogramming.com. Brian, W. K. Programming in C: A Tutorial Online : http://www.lysator.liu.se/c/bwktutor.html. DedaSys. (2009). Programming Language Popularity Online : http://www.langpop.com. Dennis R., (1971). Borland replaced Turbo C with Turbo C++ Online : http://www.cprogrammingexpert.com/C/Tutorial/turbo_cpp_ide.aspx Steven, H. & Lutfar, R. (2006). Art of Programming Contest: C Programming | Data Structure | Algorithms (ACM supported), 2nd Edition.