บทที่ 3...

28
บทที่ 3 พื้นฐานของภาษาซี ก่อนที่จะเริ่มเขียนโปรแกรมคอมพิวเตอร์ ไม่ว่าจะเป็นภาษาคอมพิวเตอร์ใด ๆ ก็ตาม ผู้เรียน ควรจะศึกษาถึงเครื่องมือ หรือโปรแกรมที่ช่วยในการเขียนโปรแกรมคอมพิวเตอร์ภาษานั้น ๆ เสียก่อน และเลือกใช้เครื่องมือที่มีประสิทธิภาพมากที่สุด และสามารถเขียนโปรแกรมได้สะดวก ที่สุด และเป็นเรื่องจาเป็นอย่างยิ่งที่ควรศึกษาการใช้งานโปรแกรมนั้น ๆให้เข้าใจมากที่สุดเท่าที่จะ สามารถทาได้ การใช้งานโปรแกรม Turbo C++ ในการเขียนโปรแกรมด้วยภาษาซีนั้น ควรจะเขียนโปรแกรม และทดสอบการทางานผ่าน ตัวแปลภาษาซี ในที่นี้จะใช้ตัวแปลภาษาซี ที่ชื่อ Turbo C++ version 3.0 ซึ่งตัวแปลภาษาซีนีสามารถทางานได้บนระบบปฏิบัติการดอส ( Dos) และวินโดวส์ ( Windows) โดยมีวิธีการเรียกใช้ งานดังนี1. การใช้งาน Turbo C++ บนระบบปฏิบัติการ Dos สามารถทางานได้ตามขั้นตอนต่อไปนี1.1 การใช้งาน Turbo C++ บนระบบปฏิบัติการ Dos สามารถเรียกการทางานได้ โดยเมื่ออยู่บนระบบปฏิบัติการ Dos สามารถพิมพ์คาสั่งเพื่อเรียกใช้งานได้ดังนีC:\> พิมพ์ cd c:\langs\tc3\bin C:\langs\tc3\bin> พิมพ์ tc

Transcript of บทที่ 3...

Page 1: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

37

บทท 3 พนฐานของภาษาซ

กอนทจะเรมเขยนโปรแกรมคอมพวเตอร ไมวาจะเปนภาษาคอมพวเตอรใด ๆ กตาม ผเรยนควรจะศกษาถงเครองมอ หรอโปรแกรมทชวยในการเขยนโปรแกรมคอมพวเตอรภาษานน ๆ เสยกอน และเลอกใชเครองมอทมประสทธภาพมากทสด และสามารถเขยนโปรแกรมไดสะดวกทสด และเปนเรองจ าเปนอยางยงทควรศกษาการใชงานโปรแกรมนน ๆใหเขาใจมากทสดเทาทจะสามารถท าได

การใชงานโปรแกรม Turbo C++

ในการเขยนโปรแกรมดวยภาษาซนน ควรจะเขยนโปรแกรม และทดสอบการท างานผานตวแปลภาษาซ ในทนจะใชตวแปลภาษาซ ทชอ Turbo C++ version 3.0 ซงตวแปลภาษาซน สามารถท างานไดบนระบบปฏบตการดอส (Dos) และวนโดวส (Windows) โดยมวธการเรยกใชงานดงน

1. การใชงาน Turbo C++ บนระบบปฏบตการ Dos สามารถท างานไดตามขนตอนตอไปน

1.1 การใชงาน Turbo C++ บนระบบปฏบตการ Dos สามารถเรยกการท างานได โดยเมออยบนระบบปฏบตการ Dos สามารถพมพค าสงเพอเรยกใชงานไดดงน C:\> พมพ cd c:\langs\tc3\bin C:\langs\tc3\bin> พมพ tc

Page 2: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

38

1.2 จากนนจะปรากฏหนาจอเขาสโปรแกรม Turbo C++ ดงภาพท 3.1

ภาพท 3.1 หนาจอแรกของโปรแกรม Turbo C++ จากนนกสามารถทจะเขยนโปรแกรมภาษาซ และทดสอบโปรแกรมผานทางตวแปลภาษา Turbo C++ ไดทนท ซงจะมการแนะน าการใชงานแตละสวนตอไป

2. การใชงาน Turbo C++ บนระบบปฏบตการ Windows สามารถท างานไดตามขนตอนตอไปน

2.1 คลกเมาสทปม Windows ตามดวยเลอกเมน Accessories แลวตามดวยเมน Windows Explorer ตามล าดบ ดงภาพท 3.2

Page 3: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

39

ภาพท 3.2 เลอก Folder ของโปรแกรม Turbo C++

Page 4: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

40

2.2 เลอก Folder ทเกบตวแปลภาษา Turbo C++ ตามล าดบ ดงภาพท 3.3

ภาพท 3.3 เลอก Folder ทเกบตวแปลภาษา Turbo C++

Page 5: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

41

2.3 ใหคลกชอไฟล TC เพอเปดตวแปลภาษา Turbo C++ ดงภาพท 3.4

ภาพท 3.4 เลอกชอไฟล TC เพอเขาสตวแปลภาษา

2.4 เมอเลอกเขาสตวแปลภาษา Turbo C++ แลวในระบบปฏบตการ Windows บางเวอรชนจะไมรองรบการแสดงผลแบบเตมหนาจอได แตหากตองการท างานตอกสามารถเลอกปม Ignore ดงภาพท 3.5

ภาพท 3.5 ภาพหนาจอ 16 bit MS-DOS Subsystem

Page 6: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

42

2.5 จากนนจะเขาสตวแปลภาษา Turbo C++ ดงภาพท 3.6

ภาพท 3.6 หนาจอแรกของตวแปลภาษา Turbo C++

สวนประกอบของโปรแกรม Turbo C++ ในตวแปลภาษา Turbo C++ แบงสวนของหนาจอในการใชงานออกเปน 4 สวนดวยกนคอ

1. สวนเมนหลก (Main Menu) เปนสวนทแบงการท างานออกเปนเมนตาง ๆ ตามลกษณะการท างาน ไดแกเมน File , Edit , Search , Run , Compile , Debug , Project , Options , Window และ Help

2. สวนเขยนโปรแกรม (Edit) เปนสวนทผใชงานจะใชเพอเขยนโปรแกรมภาษาซ โดยค าสงทใชในการเขยนตองเปนค าสงทรองรบบนภาษาซ และซพลสพลส เทานน

3. สวนขอความ (Text) เปนสวนของการแสดงขอความท เปนทงผลลพธ (output) และสวนของขอความผดพลาด (Error) ซงจะแจงใหทราบผานทางหนาจอน

4. สวนฟงกชนคย (Function Keys) เปนสวนของการแสดงการกดคยลด เพอความรวดเรวในการท างาน โดยสวนใหญกจะเปนค าสงทใชงานกนบอย ๆ อาทเชน F1 เพอตองการขอความชวยเหลอ ดงภาพท 3.7

Page 7: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

43

ภาพท 3.7 สวนประกอบของโปรแกรม Turbo C++

เมนตาง ๆ ของโปรแกรม Turbo C++ ในตวโปรแกรม Turbo C++ นนจะมค าสงแบบออกเปนกลมตาง ๆ มากมาย แตจะขออธบายเฉพาะค าสงทมการใชงานบอย ๆ เทานน เมนตาง ๆ แบงออกเปนกลมค าสงตาง ๆ ดงตอไปน

1. เมน File เปนกลมค าสงทใชเพอจดการกบไฟล (File) และไดเรคทอร ตวอยางเชน สรางไฟลใหม

(New) เปดไฟล (Open) หรอบนทกไฟล (Save) ดงภาพท 3.8

ภาพท 3.8 เมน File

Page 8: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

44

1.1 New ใชเพอสรางไฟลใหม 1.2 Open ใชเพอเปดไฟลทมอยแลว 1.3 Save ใชเพอบนทกไฟล 1.4 Save as ใชเพอบนทกไฟลเปนไฟลชออน ๆ 1.5 Change Dir ใชเพอเปลยนไดเรกทอรท างาน 1.6 Print พมพโปรแกรมทไดเขยนขน 1.7 Dos shell ไปท างานทโหมดดอส ( Dos) 1.8 Quit ออกจากโปรแกรม

2. เมน Edit เปนกลมค าสงทใชเพอการแกไขในขณะทเขยนโปรแกรม และจดการกบขอความทอยใน

หนวยความจ าประเภท Clipboard ตวอยางเชน Undo , Redo , Copy , Cut ดงภาพท 3.9

ภาพท 3.9 เมน Edit

2.1 Undo ยกเลกการท างานกอนหนาน 2.2 Redo ท าซ าการท างานอกครง 2.3 Cut ตดขอความ 2.4 Copy คดลอกขอความ 2.5 Paste วางขอความ 2.6 Clear ยกเลกขอความ 2.7 Copy example คดลองตวอยาง 2.8 Show clipboard แสดงขอความในหนวยความจ า

Page 9: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

45

3. เมน Search เปนกลมค าสงทใชเพอการคนหา แทนทค า และการไปยงบรรทดตาง ๆ ดงภาพท 3.10

ภาพท 3.10 เมน Search

3.1 Find คนหาค า 3.2 Replace แทนทค า 3.3 Search again คนหาอกครง 3.4 Go to line number ไปยงหมายเลขบรรทดท 3.5 Previous error ไปยงขอผดพลาดกอนหนาน 3.6 Next error ไปยงขอผดพลาดถดไป 3.7 Locate function คนหาฟงกชน

4. เมน Run เปนกลมค าสงทใชเพอรนโปรแกรม ดงภาพท 3.11

ภาพท 3.11 เมน Run

Page 10: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

46

4.1 Run เรมรนโปรแกรม 4.2 Program reset ตงตนโปรแกรมใหม 4.3 Go to cursor รนจนถงบรรทดทเคอรเซอรอย 4.4 Trace into รนทละค าสง 4.5 Step over รนทละค าสง แตไมเขาไปรนในฟงกชน 4.6 Arguments ก าหนดคา argumentใหกบโปรแกรม

5. เมน Compile เปนกลมค าสงทใชเพอคอมไพลโปรแกรมทเขยนขนมา ดงภาพท 3.12

ภาพท 3.12 เมน Compile

5.1 Compile คอมไพลโปรแกรมทเขยนขนมา 5.2 Make คอมไพลโปรแกรมทเปน .c ใหเปน .exe 5.3 Link คอมไพลโดยสรางไฟล .obj 5.4 Build all คอมไพลทงหมดโดยจะสรางไฟล .obj และ .exe ใหดวย 5.5 Information แสดงรายละเอยดใหทราบ 5.6 Remove messages เอาขอความออก

Page 11: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

47

6. เมน Debug เปนกลมค าสงทใชเพอตรวจสอบการท างานของโปรแกรม การเรยกดคาตาง ๆ ของ

โปรแกรม การทดสอบใหโปรแกรมหยดการท างาน ณ จดทตองการ ดงภาพท 3.13

ภาพท 3.13 เมน Debug

6.1 Inspect ตรวจสอบการท างาน 6.2 Evaluate/modify แกไข 6.3 Call stack ไปยงจดทตงอย 6.4 Watches ตรวจสอบคาของโปรแกรม 6.5 Toggle breakpoint ไปยงจดหยดการท างานของโปรแกรม 6.6 Breakpoints ก าหนดจดหยดการท างานของโปรแกรม

7. เมน Project เปนกลมค าสงทใชจดการกบโครงงาน ดงภาพท 3.14

ภาพท 3.14 เมน Project

Page 12: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

48

7.1 Open project เปดโครงงาน 7.2 Close project ปดโครงงาน 7.3 Add item เพม Item 7.4 Delete item ลบ Item 7.5 Local options ออปชนทวไป 7.6 Include files เพมไฟล

8. เมน Options เปนกลมจดการกบออปชนตาง ๆ และการก าหนดคณสมบตตางๆ ดงภาพท 3.15

ภาพท 3.15 เมน Options

8.1 Application จดการเกยวกบโปรแกรม 8.2 Compiler ก าหนดคาเกยวกบตวคอมไพเลอร 8.3 Transfer ก าหนดคาเกยวกบการโอนยาย 8.4 Make ก าหนดคาเกยวกบการสราง 8.5 Linker ก าหนดคาเกยวกบการเชอมโยง 8.6 Librarian ก าหนดคาเกยวกบไลบราเรยน 8.7 Debugger ก าหนดคาเกยวกบตวตรวจสอบ 8.8 Directories ก าหนดคาเกยวกบไดเรกทอร 8.9 Environment ก าหนดคาเกยวกบสภาพแวดลอม 8.10 Save บนทกขอมลทไดแกไขไป

Page 13: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

49

9. เมน Window เปนกลมค าสงทใชจดการเกยวกบหนาตางทใชงานอย ดงภาพท 3.16

ภาพท 3.16 เมน Window

9.1 Size/Move ปรบขนาดและเคลอนยาย 9.2 Zoom ซม 9.3 Tile ยอหนาตาง 9.4 Cascade ขยายหนาตางออกออก 9.5 Next หนาตางตอไป 9.6 Close ปดหนาตาง 9.7 Close all ปดหนาตางทงหมด 9.8 Message หนาตางขอความ 9.9 Output หนาตางแสดงผลลพธ 9.10 Watch หนาตางดและตดตามคาตาง ๆ 9.11 User screen หนาตางของผใชงาน 9.12 Register ลงทะเบยน 9.13 Project หนาตางโครงงาน 9.14 Project notes หนาตางบนทกโครงงาน 9.15 List all แสดงหนาตางทงหมด

Page 14: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

50

10. เมน Help เปนกลมค าสงทใชเมอตองการความชวยเหลอ เกยวกบค าสงตาง ๆ ดงภาพท 3.17

ภาพท 3.17 เมน Help

10.1 Contents ดรายละเอยดทงหมด 10.2 Index ดรายละเอยดแบบเรยงล าดบ 10.3 Topic search คนหาหวขอทตองการ 10.4 Previous topic ไปยงหวขอกอนหนาน 10.5 Help on Help ความชวยเหลอ 10.6 About เกยวกบโปรแกรม Turbo C++

Page 15: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

51

ทดสอบเขยนโปรแกรมภาษาซ เมอไดทราบถงเมนการใชงานในกลมตางๆ แลว ควรทดลองเขยนโปรแกรมภาษาซ โปรแกรมแรกอยางงายๆ โดยสวนใหญโปรแกรมภาษาตาง ๆ มกจะเรมตนโปรแกรมงายดวยการแสดงขอความบนจอภาพใหไดกอน ในทนกเชนกนควรเรมทดสอบเขยนโปรแกรมแรก ดวยการแสดงขอความวา “Hello World” บนหนาจอ ซงมขนตอนดงน

1. เขยนโปรแกรมดวยภาษาซลงไปในสวนของหนาตางทมการระบชอไฟลNONAME00.CPP ตามตวอยางทแสดง ดงภาพท 3.18

ภาพท 3.18 ทดสอบเขยนโปรแกรมภาษาซ แสดงขอความ “Hello World” อธบายโปรแกรม บรรทดท 1 น าเขาไลบรารทจ าเปนตอการแสดงผลคอ stdio.h บรรทดท 2 ก าหนดจดเรมตนโปรแกรมดวยค าสง main( )

บรรทดท 3 เรมตนเขยนโปรแกรมจะตองก าหนดเครองหมาย { ส าหรบ main( ) ดวยเสมอ

บรรทดท 4 ใชค าสง printf เพอแสดงขอความ “Hello World” บนจอภาพ สวนค าสง \n ใชเพอตองการใหเคอรเซอรขนบรรทดใหมดวย

บรรทดท 5 ใชเครองหมาย } เพอก าหนดจดสนสดโปรแกรมของ main( )

Page 16: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

52

2. การทดสอบโปรแกรมทไดเขยนขนนน สามารถท าไดโดยการเลอกค าสง Run ทเมนหลก แลวเลอกค าสง Run อกครงหนง หรอสามารถท าไดอกวธการหนงคอ การกดปม Ctrl + F9 ดงภาพท 3.19

ภาพท 3.19 เมน Run เลอกค าสง Run

3. เมอใชค าสง Run แลว โปรแกรม Turbo C++ จะท าการแสดงผลลพธทไดจากการเขยนโปรแกรมออกมา โดยแสดงขอความวา “Hello World” ในสวนของหนาตาง Output ดงภาพท 3.20

ภาพท 3.20 หนาตาง Output

Page 17: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

53

4. การบนทกไฟลโปรแกรมภาษาซ ทไดเขยนขนนน สามารถท าไดโดยการเลอกทเมนหลก File แลวเลอกค าสง Save หรอท าการกดปม F2 แทนกไดเชนกน ดงภาพท 3.21

ภาพท 3.21 เมน File เลอก Save

5. จากนนโปรแกรมจะใหตงชอไฟลทตองการบนทก โดยคามาตรฐานจะก าหนดชอไฟลมาใหเปน NONAME00.CPP ใหท าการแกไขเปลยนเปนชอไฟลทตองการ และก าหนดนามสกลของไฟลเปน .c ดวย ดงภาพท 3.22

ภาพท 3.22 หนาตาง Save file As

Page 18: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

54

6. ก าหนดชอไฟลใหมเปน hello.c จากนนเลอกกดปม OK ดงภาพท 3.23

ภาพท 3.23 ตงชอไฟล hello.c

7. เมอท าการบนทกไฟลแลว กจะกลบมาสหนาจอเขยนโปรแกรมปกต ซงสามารถท าการเขยนโปรแกรมตอ หรอจะออกจากโปรแกรม Turbo C++ กได ดงภาพท 3.24

ภาพท 3.24 หนาจอการท างานของโปรแกรม Turbo C++

Page 19: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

55

8. หลงจากทไดท าการรนโปรแกรมและบนทกไฟลเรยบรอยแลว โปรแกรม Turbo C++ จะท าการสรางไฟล hello.obj และไฟล hello.exe ใหเอง โดยสามารถน าเอาไฟล hello.exe นไปใชงานกบเครองคอมพวเตอรอน ๆ ไดโดยทไมตองมโปรแกรม Turbo C++ เลย หากตองการดวาระบบไดท าการสรางไฟลใหจรง กสามารถท าไดโดยการเลอก Dos shell ทเมนหลก File แลวใชค าสง dir hello.* ตามล าดบ ดงภาพท 3.25

ภาพท 3.25 เมน File เลอก Dos shell

9. จากนนจะปรากฏหนาจอของระบบปฏบตการ Microsoft Dos ใหใชค าสง dir hello.* ดงตวอยางกจะเหนรายชอไฟลทตองการ ดงภาพท 3.26

ภาพท 3.26 หนาจอระบบปฏบตการ Microsoft Dos ในโหมด Dos Shell

Page 20: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

56

10. หากตองการกลบมาท างานในโปรแกรม Turbo C++ อกครงสามารถท าไดโดยการพมพค าสง exit

รปแบบของการน าเสนอการเขยนโปรแกรม ในการน าเสนอตวอยางการเขยนโปรแกรมภาษาซในบทตอ ๆ ไปนน จะขอน าเสนอในรปแบบการพมพ Source code โปรแกรม ในกรอบสเหลยมแทนการจบหนาจอจากโปรแกรม Turbo C++ เนองจากจะไดเหน Source Code ชดเจนมากขน มหมายเลขบรรทดก ากบทกบรรทด ขนาดตวอกษร และสในการมองเหนทดขน รวมถง Source code ของบางโปรแกรมมความยาวมาก ซงจะท าใหการจบหนาจอแบบปกต ไมสามารถท าได และไมเกดความตอเนองของเนอหา ดงภาพท 3.27

ภาพท 3.27 รปแบบการน าเสนอแบบเดม

Page 21: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

57

รปแบบหนาจอการน าเสนอแบบใหม เพอใชในการน าเสนอ และสามารถทจะเหนโปรแกรมและหมายเลขบรรทดไดอยางชดเจน ดงตวอยางน บรรทดท โปรแกรม 1 2 3 4 5

#include <stdio.h> main( ) { printf(“Hello World \n”); }

ในล าดบตอไปจะเขยนค าอธบายโปรแกรม เพอใหผ เรยนสามารถน าความเขาใจในโปรแกรมไดทกบรรทดอยางตอเนอง ดงตวอยางน อธบายโปรแกรม บรรทดท 1 เพมสวนของ stdio header เพอใชในการแสดงผลบนหนาจอ บรรทดท 2 เขยนค าสง main เพอก าหนดจดเรมตนของโปรแกรม บรรทดท 3 ใสเครองหมาย { เพอใหรวาเรมโปรแกรมในสวนของ main( )

บรรทดท 4 เรมเขยนโปรแกรม โดยใชค าสง printf เพอแสดงผลลพธบนหนาจอ

บรรทดท 5 ใสเครองหมาย } เพอใหรวาไดสนสดสวนของ main( ) แลว รวมถงการน าเสนอผลลพธของโปรแกรมนน ๆ จะขอน าเสนอโดยใชกรอบสเหลยมและผลลพธแทนการจบหนาจอภาพโดยตรง ซงจะท าใหเหนผลลพธทชดเจนมากยงขน ตวอยางเชน ผลลพธจากโปรแกรมกอนหนาจะปรากฏดงน Hello World

Page 22: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

58

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

ภาพท 3.28 สวนประกอบของโปรแกรมภาษาซ

สวนหวโปรแกรม (Header) เปนสวนทก าหนดการเรยกใช Library Function ตางๆ ทมอยใน

ระบบอยแลว ท าใหผใชงานไมตองเขยนขนเอง เชน #include <stdio.h>

สวนโปรแกรมหลก (Main Program) เปนสวนของการเขยนโปรแกรมหลกโดยจะมการเรมตน

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

สวนฟงกชนของผใช (User defined Function) เปนสวนของการสรางฟงกชนขนมาใชงานเอง เนองจากไลบรารฟงกชน (Library Function) ทมอยในระบบ ไมสามารถรองรบกบการท างานของโปรแกรมได จงตองสรางฟงกชนขนมาเอง เพอใหตรงกบความตองการการใชงานของผใช เชน ฟงกชนค านวณหาภาษมลคาเพม vat7(num) เปนตน

Page 23: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

59

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

1. ค าสงทงหมดในภาษาซ หรอบางครงจะเรยกวา ค าสงวน (Reserved word) จะตองเขยนดวยอกษรภาษาองกฤษตวพมพเลกเทานน ไมสามารถเขยนอกษรตวพมพใหญหรอ สลบกนระหวางอกษรตวพมพใหญและอกษรตวพมพเลกได ตวอยางเชน ค าสง printf

2. ค าสงทกค าสงของภาษาซ นนจะตองจบทายดวยเครองหมาย ; หรอทเรยกวา Semi colon เสมอ หากไมมเครองหมายดงกลาว โปรแกรมภาษาซ จะไมรบรวาค าสงนน ๆ ไดสนสดแลว

3. การเขยนค าบรรยายในตวโปรแกรม จะใชเครองหมาย /* ตามดวยขอความทตองการบรรยายหรออธบายเพมเตม และจบดวยเครองหมาย */ โดยขอความบรรยายนน จะมความยาวกบรรทดกได จะไมมผลตอการท างานของโปรแกรม หรอท าใหโปรแกรมท างานไดชาลง บรรทดท โปรแกรม 1 2 3 4 5 6

#include <stdio.h> main( ) { printf(“Hello World”); /* This is a first program , writing by Kittipong Suwannaraj */ }

Page 24: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

60

ขอผดพลาดของโปรแกรม ประภาพร ชางไม (2551) ไดกลาวถงขอผดพลาดของโปรแกรม หรอทมกเรยกกนวา Error นน แบงออกเปน 2 ประเภท ไดแก

1. ขอผดพลาดจากการเขยนโปรแกรม (Compile Error) 2. ขอผดพลาดจากการท างานของโปรแกรม (Runtime Error)

1. ขอผดพลาดจากการเขยนโปรแกรม (Compile Error)

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

ตวอยาง เขยนโปรแกรมแสดงขอความ Hello World บนจอภาพ แตเขยนค าสงผด จาก

ฟงกชน printf เปนค าทผดคอ print จงท าใหเกดขอผดพลาด แบบ Compile Error ขน ดงภาพท 3.29 และภาพท3.30

ภาพท 3.29 ตวอยางการเขยนฟงกชน printf ผดพลาด

Page 25: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

61

ภาพท 3.30 โปรแกรม Turbo C++ แสดงจดผดพลาด และบรรทดทผดพลาด จากนนใหท าการกดปม Enter หนงครงโปรแกรม Turbo C++ จะกลบสโหมดการท างานปกต เพอใหแกไขโปรแกรมทเขยนผดพลาด ใหท าการแกไขใหถกตอง และท าการทดสอบโปรแกรมอกครง ดงภาพท 3.31

ภาพท 3.31 แกไขโปรแกรมทผดพลาดใหถกตอง

Page 26: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

62

จากตวอยางทไดน าเสนอ จะเหนถงขอผดพลาดทเกดจากผ เขยนโปรแกรมเอง เขยนโปรแกรมผดพลาดท าใหเกด Compile Error ซงขอผดพลาดประเภทนจะเกดขนบอยครงในการเขยนโปรแกรม แตอยางไรกดโปรแกรม Turbo C++ จะชวยในการตรวจสอบหาขอผดพลาดประเภทนไดอกระดบหนง ท าใหผเขยนโปรแกรมสามารถแกไขขอผดพลาดไดงายยงขน

2. ขอผดพลาดจากการท างานของโปรแกรม (Runtime Error) ขอผดพลาดประเภทนเปนขอผดพลาด (Error) ทตรวจพบไดยากกวาแบบแรก เนองจาก

ตวแปลภาษาซ จะไมตรวจสอบค าสงผดใด ๆ เลย เพราะผเขยนโปรแกรมเขยนค าสงตาง ๆ ตามหลกการและไวยากรณของภาษาไดถกตอง แตจะเกดปญหาเมอมการสงใหโปรแกรมท างานมาจนถงชวงของค าสงนน ๆ กจะพบกบขอผดพลาดขน ปญหาจากขอผดพลาดประเภทนทพบบอยคอ ปญหาหารดวยศนย (0) หรอทเรยกวา Divide by zero ดงภาพท 3.32 และภาพท 3.33

ภาพท 3.32 ตวอยางการเขยนโปรแกรมเพอทดสอบ กรณ Divide by zero

ภาพท 3.33 เมอสงคอมไพล (Compile) โปรแกรมจะไมพบ Error

Page 27: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

63

แตเมอสงใหโปรแกรมนนท างาน จะพบวา โปรแกรมท างานถงบรรทดทมขอผดพลาด แตจะไมสามารถแสดงผลลพธใด ๆ ออกมาได เนองจากเกดขอผดพลาดลกษณะ Runtime Error ขน ในกรณนคอ การหารดวยศนย (Divide by zero) ดงภาพท 3.34

ภาพท 3.34 ตวอยางผลลพธขอผดพลาด กรณ Divide by zero ดงนนเวลาทผ เขยนโปรแกรมได เขยนค าสงใด ๆ ลงไปกควรระมดระวงการเกดขอผดพลาดลกษณะน เพราะตวแปลภาษาซเอง จะไมสามารถตรวจสอบขอผดพลาดลกษณะนได จงจ าเปนทจะตองใชทกษะของผเขยนโปรแกรมเองในการตรวจสอบหาขอผดพลาดเอง

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

ตวแปลภาษาซ ทชอ Turbo C++ version 3.0 ซงตวแปลภาษาซน สามารถท างานไดบนระบบปฏบตการ Dos และ Windows ผเรยนสามารถเรยกใชงานไดตามสภาพแวดลอมทท างานอย โดยในโปรแกรม Turbo C++ นนจะมเมนการท างานทแยกไวเปนกลมแตละประเภท อาทเชน เมน File , Edit , Search , Run และอนๆ ซงผเรยนควรทจะศกษาและทดลองใชเมนตาง ๆ ใหครบถวน เพราะจะเปนพนฐานในการใชเครองมอในการเขยนโปรแกรมภาษาซไดเปนอยางด

Page 28: บทที่ 3 พื้นฐานของภาษาซีelearning.psru.ac.th/courses/158/file_09.pdf · 2013-05-31 · ในการเขียนโปรแกรมด้วยภาษาซีนั้น

64

แบบฝกหดทายบท 1. จงศกษาการใชงานโปรแกรม Turbo C++ ใหเขาใจการท างานของโปรแกรม จน

สามารถเขยนโปรแกรมตอไปนได โดยไมมขอผดพลาด #include <stdio.h> main( ) { printf (“Hello World, This is a my First Program..\n”); }

2. จงเขยนโปรแกรมตอไปน แลวท าการคอมไพลโปรแกรมใหไดเปนไฟล test1.exe ท

สามารถใชงานไดโดยทไมตองอาศยโปรแกรม Turbo C++ #include <stdio.h> int luckynumber; main( ) { clrscr( ); printf(“Enter lucky number : “); scanf(“%d”,luckynumber); printf(“Your lucky number is : %d \n”,luckynumber); }

3. ขอผดพลาด (Error) นนแบงออกเปนกประเภท และขอผดพลาดแบบใดทอาจจะ

เกดขนไดในระหวางการใชงานโปรแกรม เพราะเหตใด