More Related Content Similar to การเขียนโปรแกรม Dev c++
Similar to การเขียนโปรแกรม Dev c++ (20) การเขียนโปรแกรม Dev c++1. การเขียนโปรแกรมภาษาซี หนา 1
1. ความรูเ บื้องตนเกี่ยวกับภาษาซี
ภาษาซีเปนภาษาระดับสูง( High-Level-Language) และภาษาโปรแกรมที่โปรแกรมเมอรนิยม
ใชกันมาก เนื่องจากเปนภาษาที่มีความเร็วในการทํางานสูงใกลเคียงกับภาษาเครื่อง มีโครงสรางที่ชัดเจน
เขาใจงาย สามารถเขียนโปรแกรมเพื่อติดตอกับฮารดแวรของเครื่องคอมพิวเตอรไดอยางดี ภาษาซี
เกิดขึ้นในป ค . ศ .1972 ผูคิดคนคือนายเดนนีส ริทชี (Dennis Ritchi) การศึกษาภาษาซีถือวาเปนพื้นฐาน
ในการศึกษาภาษาใหม ๆ ได
ขั้นตอนการพัฒนาโปรแกรมภาษาซี
ขั้นตอนที่ 1 เขียนโปรแกรม (source code)
ใช editor เขียนโปรแกรมภาษาซีและทําการบันทึกไฟลตนฉบับใหมีนามสกุลเปน .Cpp หรือ
.C จากนั้นใหคอมไพลโปรแกรมก็จะไดไฟลออบเจ็กตโคดที่มีนามสกุลเปน .OBJ เมื่อทําการเชื่อมโยง
ไฟลเขากับไลบรารีคําสั่งดวย Link ก็จะไดไฟลที่มีนามสกุลเปน .EXE ที่พรอมทํางานไดบนเครื่อง
คอมพิวเตอร
editor คือ โปรแกรมที่ใชสําหรับการเขียนโปรแกรม โดยตัวอยางของ editor ที่นิยมนํามาใชใน
การเขียนโปรแกรมไดแก Notepad, Edit ของ Dos ,Text Pad และ Edit Plus เปนตน ผูเขียนโปรแกรม
สามารถเลือกใชโปรแกรมใดในการเรียนโปรแกรมก็ได แลวแตความถนัดของแตละบุคคล
ขั้นตอนที่ 2 คอมไพลโปรแกรม (compile)
นํา source code จากขั้นตอนที่ 1 มาทําการคอมไพล เพื่อแปลจากภาษาซีที่มนุษยเขาใจไปเปน
ภาษาเครื่องที่คอมพิวเตอรเขาใจได ในขั้นตอนนี้คอมไพเลอรจะทําการตรวจสอบ source code วาเกิด
ขอผิดพลาดหรือไม
• หากเกิดขอผิดพลาด จะแจงใหผูเขียนโปรแกรมทราบ ผูเขียนโปรแกรมจะตองกลับไปแกไข
โปรแกรม และทําการคอมไพลโปรแกรมใหมอีกครั้ง
• หากไมพบขอผิดพลาด คอมไพเลอรจะแปลไฟล source code จากภาษาซีไปเปนภาษาเครื่อง (
ไฟลนามสกุล .obj) เชนถาไฟล source code ชื่อ work.c ก็จะถูกแปลไปเปนไฟล work.obj ซึ่งเก็บ
ภาษาเครื่องไวเปนตน
compile เปนตัวแปลภาษารูปแบบหนึ่ง มีหนาที่หลักคือการแปลภาษาโปรแกรมที่มนุษยเขียน
ขึ้นไปเปนภาษาเครื่อง โดยคอมไพเลอรของภาษาซี คือ C Compiler ซึ่งหลักการที่คอมไพเลอรใช
เรียกวา คอมไพล (compile) โดยจะทําการอานโปรแกรมภาษาซีทั้งหมดตั้งแตตนจนจบ แลวทําการ แปล
ผลทีเดียว
จัดทําโดยครูเนาวรัตน ใจการุณ
2. การเขียนโปรแกรมภาษาซี หนา 2
นอกจากคอมไพเลอรแลว ยังมีตัวแปลภาษาอีกรูปแบบหนึ่งที่เรียกวา อินเตอรพรีเตอร การอาน
และ แปลโปรแกรมทีละบรรทัด เมื่อแปลผลบรรทัดหนึ่งเสร็จก็จะทํางานตามคําสั่งในบรรทัดนั้น แลว
จึงทําการแปลผลตามคําสั่งในบรรทัดถัดไป หลักการที่อินเตอรพรีเตอรใชเรียกวา อินเตอรเพรต
(interpret )
ขอดีและขอเสียของตัวแปลภาษาทั้งสองแบบมีดังนี้
ขอดี ขอเสีย
คอมไพเลอร • ทํางานไดเร็ว เนื่องจากทําการแปลผล • เมื่อเกิดขอผิดพลาด
ทีเดียว แลวจึงทํางานตามคําสั่งของ ขึ้นกับโปรแกรมจะ
โปรแกรมในภายหลัง ตรวจสอบหาขอผิดพลาด
• เมื่อทําการแปลผลแลว ในครั้งตอไปไม ไดยาก เพราะทําการแปล
จําเปนตองทําการแปลผลใหมอีก เนื่องจาก ผลทีเดียวทั้งโปรแกรม
ภาษาเครื่องที่แปลไดจะถูกเก็บไวที่
หนวยความจํา สามารถเรียกใชงานไดทันที
อินเตอรพรีเตอร • หาขอผิดพลาดของโปรแกรมไดงาย • ชา เนื่องจากที่ทํางานทีละ
เนื่องจากทําการแปลผลทีละบรรทัด บรรทัด
• เนื่องจากทํางานทีละบรรทัดดังนั้นจึงสั่ง
ใหโปรแกรมทํางานตามคําสั่งเฉพาะจุดที่
ตองการได
• ไมเสียเวลารอการแปลโปรแกรมเปน
เวลานาน
ขั้นตอนที่ 3 เชื่อมโยงโปรแกรม (link)
การเขียนโปรแกรมภาษาซีนั้นผูเขียนโปรแกรมไมจําเปนตองเขียนคําสั่งตาง ๆ ขึ้นใชงานเอง
เนื่องจากภาษาซีมีฟงกชั่นมาตรฐานใหผูเขียนโปรแกรมสามารถเรียกใชงานได เชน การเขียนโปรแกรม
แสดงขอความ “Lampangkanlayanee” ออกทางหนาจอ ผูเขียนโปรแกรมสามารถเรียกใชฟงกชั่น
printf() ซึ่งเปนฟงกชั่นมาตรฐานของภาษาซีมาใชงานได โดยสวนการประกาศ (declaration) ของ
ฟงกชั่นมาตรฐานตาง ๆ จะถูกจัดเก็บอยูในเฮดเดอรไฟลแตละตัว แตกตางกันไปตามลักษณะการใชงาน
ดวยเหตุนี้ภาษาเครื่องที่ไดจากขั้นตอนที่ 2 จึงยังไมสามารถนําไปใชงานได แตตองนํามา
เชื่อมโยงเขากับ library กอน ซึ่งผลจากการเชื่อมโยงจะทําใหได executable program ( ไฟลนามสกุล
.exe เชน work.exe) ที่สามารถนําไปใชงานได
จัดทําโดยครูเนาวรัตน ใจการุณ
4. การเขียนโปรแกรมภาษาซี หนา 4
กิจกรรมที่ 1 ขั้นตอนการพัฒนาโปรแกรมภาษาซี
คําชี้แจง จงเติมคําตอบใหถูกตองและสมบูรณ
1. จงพิจารณาขอความตอไปนี้ จัดอยูในขั้นตอนการทํางานอะไร
# include <stdio.h>
# include <conio.h>
main()
{
printf(“Hello! This is my first program.n”);
printf(“I love C programming.n”);
getch();
}
..................................................................................................................................................................
..................................................................................................................................................................
2. ภาพตอไปนี้ จัดอยูในขั้นตอนการทํางานใด
................................................................................................................................................................
................................................................................................................................................................
3. การทํางานในขั้นตอนใดเมื่อเสร็จสิ้นการทํางานจะไดไฟลที่มีนามสกุล .OBJ
...............................................................................................................................................................
...............................................................................................................................................................
4. การทํางานในขั้นตอนใดเมื่อเสร็จสิ้นการทํางานจะไดไฟลที่มีนามสกุล .cpp
...............................................................................................................................................................
...............................................................................................................................................................
5. การทํางานในขั้นตอนใดเมื่อเสร็จสิ้นการทํางานจะไดไฟลที่มีนามสกุล .EXE
...............................................................................................................................................................
...............................................................................................................................................................
จัดทําโดยครูเนาวรัตน ใจการุณ
5. การเขียนโปรแกรมภาษาซี หนา 5
2. การใชโปรแกรม Bloodshed Dev-C++
การเรียกโปรแกรมภาษาซี
ชุดพัฒนาหรือเครื่องมือที่ชวยในการพัฒนาโปรแกรม ภาษาอังกฤษเรียกวา IDE (Intregal
Devenlopment Environment) เปนโปรแกรมที่ออกแบบมาเพื่อชวยใหผูที่ทําการเขียนโปรแกรมใชในการ
สรางโปรแกรม โดยจะมี อีดิเตอร (Editor) สําหรับเขียนโคดของโปรแกรมและมีตัวแปลภาษามาใหพรอม
ปจจุบันมีการออกชุดพัฒนามาหลายรุน และเปลี่ยนแปลงรวดเร็วมาก เชน Turbo C++ , Borland C++ ,
Microsoft C/C++ , Microsoft Visual C++ , Microsoft Visual C# , Microsoft Visual C++ .NET ซึ่งชุด
พัฒนาแตละตัวมีวิธีการนําไปใชงานที่แตกตางกัน เพราะมันเปนผลิตภัณฑที่พัฒนามาจากบริษัทตางกัน
แตอยางไรก็ตามการเขียนโปรแกรมภาษาซีไมวาจะเปน IDE ใด ก็มีหลักการและวิธีการในการเขียนที่
คลายคลึงกัน จะตางกันบางตรงรายละเอียดบางอยางที่เพิ่มขึ้น หรือพัฒนาใหงายในการเขียนโปรแกรม
ที่จะกลาวถึงตอไปนี้ เปน IDE ของ Bloodshed Dev-C++ ซึ่งเปนชุดพัฒนาขึ้นมาเพื่อใชเปน
ฟรีแวรและทํางานภายใตระบบปฏิบัติการ Windows ใชไดกับ Windows ทุกรุน ซึ่งมีวิธีการเรียก
โปรแกรมขึ้นมาใชงานไดดังนี้
1. คลิกที่ Start
2. เลื่อนเมาสไปที่ Bloodshed Dev-C++
3. คลิกที่ Dev-C++
จัดทําโดยครูเนาวรัตน ใจการุณ
6. การเขียนโปรแกรมภาษาซี หนา 6
หนาตาของโปรแกรม Bloodshed Dev-C++
เมื่อเรียกโปรแกรม Bloodshed Dev-C++ ขึ้นมาใชงานแลวจะมาหนาตาดังรูป
ซึ่งโปรแกรมจะมีสวนประกอบดังนี้
1. Titlebar คือ แถบที่อยูบนสุดของโปรแกรม มีสีน้ําเงิน และจะมีชื่อของชุดพัฒนาโปรแกรมภาษาซี
คือ Dev-C++
2. Menubar ประกอบดวยเมนูตาง ๆ 11 รายการคือ
File Edit Search View Project Execute Debug Tools CVS Window Help
3. Tool bars เปนสวนของเครื่องมือ ที่ชวยอํานวยความสะดวกในการเขียนและพัฒนาโปรแกรม
4. Project/Class Browser เปนสวนที่อยูทางดานซายของโปรแกรม ใชเพื่อแสดง Project หรือ Class
ตางๆ ของโปรแกรม
5. Editor สวนที่อยูทางดานขวา ใชเพื่อเขียนโคดภาษาซี
6. Statusbar สวนที่อยูลางสุด ใชเพื่อบอกสถานะตาง ๆ ในขณะที่กําลังพัฒนาโปรแกรม เชน จํานวน
บรรทัดมั้งหมด หรือสถานะการพิมพแทรก/พิมพทับ
จัดทําโดยครูเนาวรัตน ใจการุณ
7. การเขียนโปรแกรมภาษาซี หนา 7
เมนูของโปรแกรม Bloodshed Dev-C++
เมนู File มีเมนูยอยที่ควรรูดังนี้
New เพื่อสรางไฟลใหม
Open Project or File เพื่อเปดไฟลหรือโปรเจ็กซที่ไดทํางาน และบันทึกไวแลว
Save เพื่อบันทึกไฟล
Save As เพื่อบันทึกไฟลเปนชื่อใหม หรือเพื่อบันทึกลงในโฟลเดอรอื่น
Save All เพื่อบันทึกไฟลหรือโปรเจ็กซทั้งหมด ที่เปดทํางานอยู
Close เพื่อปดไฟลที่กําลัง Active อยู
Close All เพื่อปดไฟลหรือ โปรเจ็กซทั้งหมด ที่เปดอยู
Exit เพื่อปดโปรแกรม Bloodshed Dev-C++
จัดทําโดยครูเนาวรัตน ใจการุณ
8. การเขียนโปรแกรมภาษาซี หนา 8
เมนู Edit มีเมนูยอยที่ควรรูดังนี้
Undo เลิกทําหรือยกเลิกการทํางาน
Redu ใหทําซ้ํางานที่เพิ่งทําผานไป
Cut ตัดขอความที่ทําแถบสีนําไปไวใน คลิปบอรด
Copy คัดลอกขอความที่ทําแถบสีนําไปไวใน คลิปบอรด
Paste ใหวาง ปะ หรือ แปะ ขอความที่ได Cut หรือ Copy ไวแลว มาวางลงในตําแหนงของ เคอรเซอร
Insert ทําการแทรก
1. วันที่ (Date/Time) ลงใน Editor
2. Comment header สวนที่เปน หมายเหตุในการพัฒนาโปรแกรมลงบนสวนหัวของ Editor
Select All เลือกโคด หรือขอความทั้งหมด ที่อยูใน Editor
จัดทําโดยครูเนาวรัตน ใจการุณ
9. การเขียนโปรแกรมภาษาซี หนา 9
เมนู Search มีเมนูยอยที่ควรรูดังนี้
Find คนหาคํา หรือขอความใน Editor
Search Again ใหคนซ้ํา หรือคนหาตอไปอีก
Replace ใหแทนที่คําที่คนหา ดวยคําใหม
จัดทําโดยครูเนาวรัตน ใจการุณ
10. การเขียนโปรแกรมภาษาซี หนา 10
เมนู View มีเมนูยอยที่ควรรูดังนี้
Project/Class Browser เพื่อแสดงหรือไมแสดง Project/Class Browser
Statusbar เพื่อแสดงหรือไมแสดง Statusbar
Toolbars เพื่อแสดงหรือไมแสดง Toolbars ตาง ๆ ซึ่งประกอบดวย
Main Toolbar
Edit Toolbar
Search Toolbar
Compile and run Toolbar
Project Toolbar
Options Toolbar
Special Toolbar
Class Toolbar
จัดทําโดยครูเนาวรัตน ใจการุณ
12. การเขียนโปรแกรมภาษาซี หนา 12
เมนู Execute มีเมนูยอยที่ควรรูดังนี้
Compile (Ctrl+F9) สั่งใหทําการ Compile ซอรสโคด เมื่อ Compile แลวจะไดไฟลใหมที่มีสวนขยายเปน .exe
Run (Ctrl+F10) สั่งใหโปรแกรมทํางาน
Compile & Run (F9) ใหทําการ Compile และ Run โปรแกรม
Rebuild All (Ctrl+F11) ใหสรางไฟล .exe ใหม แทนที่ไฟลเดิม
จัดทําโดยครูเนาวรัตน ใจการุณ
14. การเขียนโปรแกรมภาษาซี หนา 14
เมนู Tools มีเมนูยอยที่ควรรูดังนี้
Editor Options เปนการตั้งคาสภาพแวดลอมใหกับ Editor เชน ใหมีหมายเลขบรรทัดเปนตน
จัดทําโดยครูเนาวรัตน ใจการุณ
16. การเขียนโปรแกรมภาษาซี หนา 16
เมนู Windows มีเมนูยอยที่ควรรูดังนี้
Close All ปดวินโดวส ของ Editor ทั้งหมด
Full Screen Mode ใหวินโดวสแสดงแบบเต็มจอ ถาตองการยกเลิกแบบ Full Screen ให click ที่
เพื่อปดวินโดวส
Next ใหแสดงวินโดวสของ Editor ถัดไป
Previous ใหแสดงวินโดวสของ Editor กอนหนา
จัดทําโดยครูเนาวรัตน ใจการุณ
17. การเขียนโปรแกรมภาษาซี หนา 17
เมนู Help
สวนใหญเปนเมนูเกี่ยวกับการขอความชวยเหลีอ
การสรางแฟมโปรแกรม
การสรางแฟมโปรแกรม ทําไดโดยเลือกเมนู File -> Source File หรือกด Ctrl + N
การปอนโปรแกรมภาษาซี
การปอนโปรแกรมในหนาตาง Editor สามารถทําไดเชนเดียวกับการปอนขอความใน
โปรแกรมจัดพิมพเอกสารทั่วไป
จัดทําโดยครูเนาวรัตน ใจการุณ
18. การเขียนโปรแกรมภาษาซี หนา 18
แบบฝกกิจกรรมที่ 1
1. ใหเรียกเขาสูโปรแกรม Dev-C++ และปอนโปรแกรมตอไปนี้
#include <stdio.h> ผลการรัน
#include <conio.h> …………………………………………….
main() …………………………………………….
…………………………………………….
{
…………………………………………….
printf("Hello world"); …………………………………………….
getch(); …………………………………………….
} …………………………………………….
การบันทึกโปรแกรม (Save)
ในการบันทึกโปรแกรมใหม ทําไดโดยเลือกเมนู File -> Save หรือกด Ctrl + S จะได
หนาตางดังรูป
1
3
2
1. เปลี่ยนไดรฟ เปลี่ยนโฟลเดอร
2. พิมพชื่อไฟล
3. คลิกปุม Save
จัดทําโดยครูเนาวรัตน ใจการุณ
19. การเขียนโปรแกรมภาษาซี หนา 19
การแปลโปรแกรม (Compile)
การเรียกใชคอมไพลเลอร ทําไดโดยเลือกเมนู Execute -> Compile หรือกด Ctrl + F9
รูป แสดงหนาตาง Compiling ที่ทํางานเสร็จสมบูรณ
ในกรณีที่พิมพโปรแกรมผิดจะแสดงรายการขอผิดพลาดที่ตรวจพบ ดังรูป
สวนที่บอกวาผิดอะไรบาง
รูป แสดงโปรแกรมที่ผิดพลาด
จัดทําโดยครูเนาวรัตน ใจการุณ
20. การเขียนโปรแกรมภาษาซี หนา 20
การสั่งใหโปรแกรมทํางาน (Run)
เมื่อโปรแกรมไดถูกแปลเปนโปรแกรมภาษาเครื่องเรียบรอยแลว ผูใชสามารถสั่งใหโปรแกรม
ที่แปลแลวกระทําการ โดยเลือกคําสั่ง Execute -> Run หรือกด Ctrl + F10
การเปดแฟมโปรแกรม
ผูใชสามารถเปดแฟมโปรแกรมขึ้นมาแสดงบนหนาตางโปรแกรมเพื่อแกไข แปลหรือสั่งให
กระทําการ โดยเลือกคําสั่ง File -> Open Projector or File จะไดหนาตางดังรูป
1
3
2
1. เปลี่ยนไดรฟ เปลี่ยนโฟลเดอร
2. พิมพชื่อไฟล หรือคลิกเลือกชื่อไฟล
3. คลิกปุม Open
จัดทําโดยครูเนาวรัตน ใจการุณ
21. การเขียนโปรแกรมภาษาซี หนา 21
กิจกรรมที่ 2 การใชโปรแกรม Bloodshed Dev-C++
คําชี้แจง เขียนตอบลงในชองที่เวนไว
1. จงบอกวิธีการเรียกโปรแกรม Bloodshed Dev-C++ .........................................................................
..........................................................................................................................................................
2. จงบอกชื่อสวนตาง ๆ ของโปรแกรม Bloodshed Dev-C++
2.1 หมายเลข 1 คือ ..........................................................................................................................
2.2 หมายเลข 2 คือ .........................................................................................................................
2.3 หมายเลข 3 คือ ..........................................................................................................................
2.4 หมายเลข 4 คือ ..........................................................................................................................
2.5 หมายเลข 5 คือ ..........................................................................................................................
2.6 หมายเลข 6 คือ ..........................................................................................................................
3. การเขียนโคดภาษาซีตองเขียนลงในสวนใด .......................................................................................
4. การสรางไฟลใหม(Source file) ตองทําอยางไร .................................................................................
5. จงบอกขั้นตอนการบันทึกโปรแกรม..................................................................................................
6. จงบอกขั้นตอนการคอมไพลโปรแกรม ..............................................................................................
7. จงบอกขั้นตอนการสั่งใหโปรแกรมทํางาน.........................................................................................
8. จงบอกขั้นตอนการเปดแฟมโปรแกรม................................................................................................
จัดทําโดยครูเนาวรัตน ใจการุณ
22. การเขียนโปรแกรมภาษาซี หนา 22
3. โครงสรางของภาษาซี
โครงสรางของโปรแกรมภาษาซีแบงออกเปน 2 สวน
1. สวนหัวของโปรแกรม (Head)
สวนหัวของโปรแกรมนี้เรียกวา Preprocessing Directive ใชระบุเพื่อบอกใหคอมไพเลอร
กระทําการใด ๆ กอนการแปลผลโปรแกรมในที่นี่คําสั่ง #include <stdio.h> ใชบอกกับคอมไพเลอรให
นําเฮดเดอรไฟลที่ระบุคือ stdio.h เขารวมในการแปลโปรแกรมดวย โดยการกําหนด preprocessing
directives นี้จะตองขึ้นตนดวยเครื่องหมาย # เสมอ
คําสั่งที่ใชระบุใหคอมไพเลอรนําเฮดเดอรไฟลเขารวมในการแปลโปรแกรม สามารถเขียนได
2 รูปแบบ คือ
#include < ชื่อเฮดเดอรไฟล > คอมไพเลอรจะทําการคนหาเฮดเดอรไฟลที่ระบุจากไดเรกทอรีที่
ใชสําหรับเก็บเฮดเดอรไฟลโดยเฉพาะ ( ปกติคือไดเรกทอรีชื่อ include)
#include “ ชื่อเฮดเดอรไฟล ” คอมไพเลอรจะทําการคนหาเฮดเดอรไฟที่ระบุ จากไดเร็คทอรี
เดียวกันกับไฟล source code นั้น แตถาไมพบก็จะไปคนหาไดเร็คทอรีที่ใชเก็บ เฮดเดอรไฟลโดยเฉพาะ
2. สวนของฟงกชั่นหลัก (Main Function)
ฟงกชั่นหลักของภาษาซี คือ ฟงกชั่น main( ) ซึ่งโปรแกรมภาษาซีทุกโปรแกรมจะตองมีฟงกชั่นนี้
อยูในโปรแกรมเสมอ จะเห็นไดจากชื่อฟงกชั่นคือ main แปลวา “ หลัก ” ดังนั้น การเขียนโปรแกรม
ภาษาซีจึงขาดฟงกชั่นนี้ไปไมได โดยขอบเขตของฟงกชั่นจะถูกกําหนดดวยเครื่องหมาย { และ }
กลาวคือ การทํางานของฟงกชั่นจะเริ่มตนที่เครื่องหมาย { และจะสิ้นสุดที่เครื่องหมาย }
ฟงกชัน main() จะตองเขียนในรูปของ int main() ซึ่งเปนรูปแบบตามมาตรฐานของ Ansi
standard C ซึ่งหมายความวาฟงกชัน main() จะไมมีการรับคาใด ๆ เขามาประมวลผล แตจะสงคา int
จัดทําโดยครูเนาวรัตน ใจการุณ
23. การเขียนโปรแกรมภาษาซี หนา 23
กลับไป ( int หมายถึง integer ซึ่งเปนเลขจํานวนเต็มที่ไมมีทศนิยม) ดังจะเห็นวา บรรทัดรองสุดทาย
กอนจบ จะเขียนวา return 0;
การสงคากลับใหฟงกชัน main() ถา return 0; หมายความวา โปรแกรมทํางานเสร็จสิ้นสมบูรณ
ไมมีขอผิดพลาดใด ๆ เกิดขึ้น แตถา return 1; หรือ return <คาอื่น ๆ ที่ไมใช 0>; หมายความวาโปรแกรม
จบไมสมบูรณ มีการขามการทํางานบางขั้นตอนเพื่อใหโปรแกรมสิ้นสุดลง
พรีโพรเซสเซอร ไดเร็กทีฟ (Preprocessor directive)
สวนนี้ทุกโปรแกรมตองมี จะใชสําหรับเรียกคําสั่งหรือฟงกชันที่โปรแกรมตองการในการ
ทํางานและกําหนดคาตาง ๆ โดยคอมไพเลอรจะกระทําตามคําสั่ง กอนที่จะคอมไพลโปรแกรม ซึ่ง
จะตองเริ่มตนดวยเครื่องหมาย ไดเร็กทีฟ (#) และตามดวยชื่อโปรแกรมหรือชื่อตัวแปรที่ตองกําหนดคา
ดังตัวอยางตามตาราง
Directive การใชงาน
#include Include text from a file
#define Define a macro
#undef Undefine a macro
#if Test if a compile-time condition holde
#ifdef Test if a simple is defined
#ifndef Test if a simple is not defined
#else Indicate alternatives if a test fails
#elif Combination of #if and #else
#endif End a preprocessor condition
#line Give a line number for compiler messages
#error Terminate processing early
#pragma Implementation dependent directive
สําหรับ directive ที่ใชบอย ๆ ไดแก
#include เปนการแจงใหคอมไพเลอรอานไฟลอื่นเขามาคอมไพลรวมดวย รูปแบบการใชจะทําโดยเขียน
#include แลวตามดวยชื่อไฟล เชน
#include <stdio.h> หมายความวา อานไฟล stdio.h เขามาดวย
#include "mypro.h" หมายความวา อานไฟล mypro.h จาก folder หรือ directory ที่กําลังทํางานเขามาดวย
จัดทําโดยครูเนาวรัตน ใจการุณ
24. การเขียนโปรแกรมภาษาซี หนา 24
การกําหนดชื่อไฟลตามหลัง #include นั้นจะใชเครื่องหมาย < > ครอมชื่อไฟลก็ได ซึ่งจะเปนการ
อานไฟลจากไดเร็กทอรี หรือโฟลเดอรที่กําหนดไวกอนแลว โดยปกติจะเปนโฟลเดอร include แตถาใช
เครื่องหมาย " " เปนการอานไฟลจาก folder หรือ directory ที่กําลังติดตออยู และไฟลที่จะinclude เขามานี้
จะตองไมมีฟงกชัน main() โดยมากแลวจะประกอบดวยโปรแกรมยอย คาคงที่ หรือขอความตางๆ
#define เปนการกําหนดคานิพจนตาง ๆ ใหกับชื่อของตัวคงที่ โดยมีรูปแบบดังนี้
#define NAME VALUE เชน
#define SCHOOL thungsoung //กําหนดชื่อ SCHOOL ใหเก็บคําวา thungsoung เอาไว
#define PROVINCE nakornsitammarat //กําหนดชื่อ PROVINCE ใหเก็บคําวา nakornsitammarat เอาไว
Statement หรือคําสั่ง
คําสั่ง (Statement) หมายถึงประโยคที่เขียนขึ้นเพื่อใหโปรแกรมทํางาน ประกอดวยตัวแปร
หรือนิพจนตาง ๆ เพื่อใชประกาศตัวแปร กําหนดคาเริ่มตน กําหนดเงื่อนไข และใชในคําสั่งควบคุม
นิพจนหรือตัวแปรที่เขียนขึ้นเปนประโยคคําสั่งในภาษาซีจะใชเครื่องหมาย ; (Semicolon) ปดทายคําสั่ง
คําสั่งในภาษาซีสามารถแยกใหเห็นชัดเจนได 5 กลุม คือ
1) คําสั่งสําหรับอธิบาย (Comment Statements)
2) คําสั่งกําหนดชนิดตัวแปร (Declaration Statements)
3) คําสั่งกําหนดคา (Assignment Statements)
4) คําสั่งควบคุม (Control Statements)
5) คําสั่งที่อยูในรูปฟงกชัน เชน คําสั่งรับขอมูล คําสั่งแสดงผลขอมูล เปนตน
ในโปรแกรมภาษาซีโปรแกรมหนึ่งๆอาจประกอบดวยคําสั่งทั้ง 5 กลุมหรือมากกวากันก็ได เพื่อ
ความเขาใจคําสั่งแตละกลุมในหัวขอนี้ จะขออธิบายเฉพาะคําสั่งสําหรับอธิบาย คําสั่งกําหนดชนิดตัวแปร
และ คําสั่งกําหนดคาใหกับตัวแปรเทานั้น
1) คําสั่งสําหรับอธิบาย (Comment Statements)
คําสั่งสําหรับอธิบายหรือคอมเมนต (comment) ในภาษาซี คือสวนที่เปนหมายเหตุของ
โปรแกรม มีไวเพื่อใหผูเขียนโปรแกรมใสขอความอธิบายกํากับลงไปใน source code ซึ่งคอมไพเลอรจะ
ขามการแปลผลในสวนที่เปนคอมเมนตนี้ คอมเมนตในภาษาซีมี 2 แบบคือ
• คอมเมนตแบบบรรทัดเดียว ใชเครื่องหมาย //
• คอมเมนตแบบหลายบรรทัด ใชเครื่องหมาย /* และ */
จัดทําโดยครูเนาวรัตน ใจการุณ
25. การเขียนโปรแกรมภาษาซี หนา 25
ตัวอยาง การคอมเมนตในภาษาซี
//Comment only one line คอมเมนตแบบบรรทัดเดียว
#include <stdio.h> ไมแปลผลในสวนนี้
#include <conio.h>
main()
{
/*comment
คอมเมนตแบบหลายบรรทัด
many
ไมแปลผลในสวนนี้
line*/
}
2) คําสั่งกําหนดชนิดตัวแปร (Declaration Statements)
คําสั่งกําหนดชนิดตัวแปรนี้มักจะอยูในสวนตนของโปรแกรม ตัวแปรทุกตัวแปรกอนนําไปใช
ตองประกาศตัวแปร พรอมชนิดขอมูลของตัวแปรนั้น และอาจกําหนดคาเริ่มตนใหกับตัวแปรนั้นๆดวย
ดังรูปแบบตอไปนี้
รูปแบบ
<Type> <var1> [=const1][,<var2>[=conts2]]. . . ;
Type หมายถึง ชนิดตัวแปร เชน int float char long double เปนตน
var1,var2 หมายถึง ชื่อตัวแปร ซึ่งตองตั้งตามกฏการตั้งชื่อ
const1,const2 หมายถึง คาคงที่ ที่กําหนดคาใหกับตัวแปร
ตัวอยาง
int value , count , x ;
char more ;
หมายถึง มีการประกาศตัวแปรจํานวน 4 ตัว โดยใหตัวแปร 3 ตัวแรกคือ value count และ x เปนชนิด
จํานวนเต็ม สวนประกาศตัวแปร more ใหเปนตัวแปรชนิดตัวอักขระ
จัดทําโดยครูเนาวรัตน ใจการุณ
26. การเขียนโปรแกรมภาษาซี หนา 26
3) คําสั่งกําหนดคา (Assignment Statements)
คําสั่งกําหนดคาในภาษาซีจะใชตัวดําเนินการ " = " เพื่อกําหนดคาใหกับตัวแปร คําสั่ง
กําหนดคานี้อาจใชในการกําหนดคาเริ่มตนใหกับตัวแปร หรือใชในการคํานวณนิพจนดานขวาของตัว
ดําเนินการ " = " แลวนําคาที่ไดไปกําหนดคาใหกับตัวแปรดานซายของตัวดําเนินการ "= " หรืออาจใช
ในการคัดลอกคาของตัวแปรหนึ่งไปใหกับอีกตัวแปรหนึ่ง โดยรูปแบบคําสั่งดังนี้
รูปแบบ
<var1> [ = <var2>]. . . = <expression> ;
var1,var2 หมายถึง ชื่อตัวแปรที่จะถูกกําหนดคา
expression หมายถึง นิพจน ซึ่งอาจเปนตัวแปร คาคงที่ หรือเปนการดําเนินการระหวาง
ตัวแปร หรือ คาคงที่
= หมายถึง ตัวดําเนินการกําหนดคา โดยใหนําคานิพจนดวยขวาของตัว ดําเนินการ
" = " ไปกําหนดคาใหกับตัวแปร ที่อยูดานซาย ของตัวดํา เนินการ " = "
หมายเหตุ คําสั่งทุกคําสั่งจะตองปดดวเครื่องหมาย ; (อานวา Semicolon)
ตัวอยาง
value = 0;
count = 1;
x = 100;
more = 'y';
หมายถึง ใหตัวแปร value มีคา = 0 count มีคา = 1 x มีคา = 100 และ more มีคา = y
4) คําสั่งควบคุม (Control Statements)
คําสั่งควบคุมเปนคําสั่งที่เขียนขึ้นมาเพื่อควบคุมการทํางานของโปรแกรม ไดแกคําสั่ง
If, switch, while, for ซึ่งจะอธิบายในรายละเอียด ในเรื่องของคําสั่งโครงสรางหรือคําสั่งควบคุม
5) คําสั่งที่อยูในรูปฟงกชัน (Control Statements)
เปนการนําฟงกชันมาตรฐานของภาษาซีมีใชในการเขียนโปรแกรมเชนคําสั่ง printf , scanf โดย
จะกลาวถึงเฉพาะคําสั่งประเภทนี้ในหัวขอ การรับและการแสดงผลขอมูล
จัดทําโดยครูเนาวรัตน ใจการุณ
27. การเขียนโปรแกรมภาษาซี หนา 27
กิจกรรม 3 โครงสรางภาษาซี
ตอนที่ 1 จงเติมคําถามตอไปนี้ ใหถูกตองสมบูรณ
1. โครงสรางของภาษาซีในสวนของคําสั่งพรีโพรเซสเซอร ทําหนาที่อะไร
...............................................................................................................................................................
...............................................................................................................................................................
2. ในภาษาซี ฟงกชันหลักที่ทุกโปรแกรมตองมี คือฟงกชันอะไร
...............................................................................................................................................................
3. การเขียนคําสั่งพรีโพรเซสเซอร ตองเริ่มตนดวยเครื่องหมายอะไร
...............................................................................................................................................................
4. คําสั่งพรีโพรเซสเซอร #include ทําหนาที่อะไร
...............................................................................................................................................................
...............................................................................................................................................................
5. คําสั่งพรีโพรเซสเซอร #define ทําหนาที่อะไร
...............................................................................................................................................................
...............................................................................................................................................................
6. ประโยคคําสั่งในภาษาซี ตองจบดวยเครื่องหมายอะไร
...............................................................................................................................................................
7. ประโยชนของการเขียนหมายเหตุไวในโปรแกรม คืออะไร
...............................................................................................................................................................
...............................................................................................................................................................
8. การเขียนหมายเหตุในภาษาซี มีหลักการเขียนอยางไร
...............................................................................................................................................................
...............................................................................................................................................................
9. รูปแบบการเขียนคําสั่ง #include<ชื่อไฟล> มีความหมายอยางไร
...............................................................................................................................................................
...............................................................................................................................................................
10. รูปแบบการเขียนคําสั่ง #include “ชื่อไฟล” มีความหมายอยางไร
...............................................................................................................................................................
...............................................................................................................................................................
จัดทําโดยครูเนาวรัตน ใจการุณ
28. การเขียนโปรแกรมภาษาซี หนา 28
4. กฏการตั้งชื่อ (Identifier)
ชื่อ หรือ Identifier คือการประกาศ หรือการตั้งชื่อใหกับตัวแปร คาคงที่ ฟงกชัน หรือ class ซึ่ง
จะอยูภายในสวนตาง ๆของโปรแกรม
สําหรับในภาษาซีมีหลักเกณฑในการตั้งชื่อดังนี้
1. ตองขึ้นตนดวยตัวอักษรในภาษาอังกฤษ หรือเครื่องหมาย _ (Underscore)
2. ตองไมเปนชื่อเดียวกับคําสงวน (Reserve word) หรือคํามาตรฐานที่คอมไพเลอรรูจัก
3. ชื่ออาจตามดวยตัวเลขได แตหามขึ้นตนดวยตัวเลข
4. หามใชเครื่องหมายพิเศษตาง ๆ ในการตั้งชื่อ เชน @ ! # $ ^ & * + - /
5. หามเวนชองวาง
6. ชื่อในภาษาซี มีความแตกตางกันระหวางตัวพิมพเล็กและตัวพิมพใหญ เชน Name จะไม
เหมือนกับ name
คําสงวน (Reserve word)
คําสงวน หมายถึง ชื่อหรือคําที่คอมไพเลอร สงวนไวเพื่อเปนคําเฉพาะในภาษาซี หามนําคํา
สงวนนี้ไปใชในการตั้งชื่อ ประกอบดวยคําตาง ๆ ดังตอไปนี้
asm default for pascal switch _ds
auto do goto register typedef _es
break double huge return union _ss
case else if short unsigned
cdecl enum int signed void
char extern interrupt sizeof volatile
const far long static while
continue float near struct _cs
ตัวอยางการตั้งชื่อ
ชื่อที่ถูก ชื่อที่ผิด เหตุที่ผิด
StudentName Student Name มีเครื่องหมายวรรค
Part_Number Part-Number มีเครื่องหมาย –
firstNAME 1stName เริ่มดวยตัวเลข
NumberOfPage #Ofpage มีเครื่องหมาย #
จัดทําโดยครูเนาวรัตน ใจการุณ
29. การเขียนโปรแกรมภาษาซี หนา 29
ขอสังเกตเกี่ยวกับการตั้งชื่อ
1. ควรตั้งชื่อใหมีความหมายและเขาใจไดงาย ดังตัวอยางตอไปนี้
Length มีความหมายและเขาใจไดงายกวา L
2. ควรตั้งใหเห็นสวนประกอบตาง ๆ ไดงาย ดังตัวอยางตอไปนี้
StudentName เห็นสวนประกอบตาง ๆ ไดงายกวา studentname
Part_Number เห็นสวนประกอบตาง ๆ ไดงายกวา PARTNUMBER
3. เนื่องจากชื่อสวนมากที่มีอยูในคอมไพเลอรมักนิยมเริ่มดวยเครื่องหมายขีดเสนใต ( _ ) ดังที่เราไดเห็น
ตัวอยางมาแลวจากคําสงวน (Reserve word) เพราะฉะนั้นถาเปนไปได เราควรหลีกเลี่ยงการตั้งชื่อที่
เริ่มตนดวยเครื่องหมายขีดเสนใต
จัดทําโดยครูเนาวรัตน ใจการุณ
30. การเขียนโปรแกรมภาษาซี หนา 30
กิจกรรมที่ 4 ชื่อ (Identifiers) และคําสงวน (Reserved Word)
คําสั่ง จงพิจารณาวา ชื่อ (Identifier) ตอไปนี้ ถูกหรือผิดโดยการทําเครื่องหมาย ลงในชองถูก และ
กา ลงในชอง ผิด และบอกเหตุผลดวยวาผิดเพราะเหตุใด
ชื่อ (Identifier) ถูก ผิด สาเหตุที่ผิด
%employee
birth date
studentname
long
number 1
student#id
const
chr’s
5march
base
r*r
int
จัดทําโดยครูเนาวรัตน ใจการุณ
31. การเขียนโปรแกรมภาษาซี หนา 31
5. ชนิดของขอมูลและตัวแปร
ชนิดของขอมูล
ในการเขียนโปรแกรมคอมพิวเตอร หากมีการประกาศตัวแปรขึ้นมา ใชงานแลว ผูเขียน
โปรแกรมตองกําหนดชนิดของขอมูลใหกับตัวแปรนั้น ในแตละภาษาก็จะมีชนิดของขอมูลที่ไมคอย
แตกตางกันมากนัก สําหรับในภาษาซีมี 4 ชนิดคือ
1. ขอมูลชนิดซิมเพิล (simple type)
2. ขอมูลชนิดสตริง (string type)
3. ขอมูลประเภทโครงสราง (structure type)
4. ขอมูลประเภทพอยเตอร (pointer type)
ในการเขียนโปรแกรมภาษาซีเบื้องตนนี้จะกลาวถึงขอมูลชนิดซิมเพิล และขอมูลชนิดสตริงเทานั้น
ขอมูลชนิดซิมเพิล (simple type)
ขอมูลชนิดซิมเพิล แบงไดเปนขอมูลประเภทที่มีลําดับ (ordinal type) และขอมูลประเภท
จํานวนจริง (real data type) โดยขอมูลประเภทมีลําดับเปนขอมูลที่มีคาลําดับที่แนนอน เชนตัวอักษร
A B C ... Z ตัวเลขที่ใชในการนับ ซึ่งในภาษาซียังแบงขอมูลประเภทลําดับ ออกไดหลายประเภท
ไดแก
1. ขอมูลประเภทจํานวนเต็ม (Integer data type)
2. ขอมูลประเภทจํานวนจริง (Real data type)
3. ขอมูลประเภทตัวอักขระ (Character data type)
4. ขอมูลประเภทตรรกะ (ฺBoolean data type)
ขอมูลประเภทจํานวนเต็ม (Integer data type)
ขอมูลประเภทนี้ใชเก็บตัวเลขที่เปนจํานวนเต็ม โดยคอมพิวเตอรจะใชหนวยความจําในการเก็บ
ขอมูล ในรูปของเลขฐานสอง เชนถาหากคอมพิวเตอร ใชหนวยความจํา ในการเก็บขอมูล จํานวน 8 บิต
หรือ 1 ไบต จะแทนคาขอมูลได เทากับ 2^ 8 (2 ยกกําลัง 8) หรือเทากับ 256 คา ซึ่งถาเขียนอยูในรูป
เลขฐานสิบ จะแทนคาไดตั้งแต 0 ถึง 255 ขอมูลชนิดจํานวนเต็ม ยังแบงออกไดเปนหลายประเภท ขึ้นอยู
กับขนาดของหนวยความจําที่คอมพิวเตอรใชเก็บขอมูล โดยขอมูลประเภทตาง ๆ แสดงไดดังตาราง
ตอไปนี้
จัดทําโดยครูเนาวรัตน ใจการุณ
32. การเขียนโปรแกรมภาษาซี หนา 32
ตารางขอมูลชนิดจํานวนเต็มและชวงขอมูลที่เก็บได
ชนิดของตัวแปร ขนาด (bit) ชวงของขอมูลที่เก็บได การใชงาน
short 16 -32,768 ถึง 32,767 เก็บขอมูลชนิดจํานวนเต็มแบบสั้น ติด
เครื่องหมาย + - โดยใชพื้นที่หนวยความจํา 16
bit ( 2 Byte)
unsigned short 16 0 ถึง 65,535 เก็บขอมูลชนิดจํานวนเต็มแบบสั้น ไมติด
เครื่องหมาย + - โดยใชพื้นที่หนวยความจํา 16
bit ( 2 Byte)
int 32 -2,147,483,648 ถึง เก็บขอมูลชนิดจํานวนเต็มแบบติดเครื่องหมาย
2,147,483,648 + - โดยใชพื้นที่หนวยความจํา 32 bit ( 4 Byte)
unsigned int 32 0 ถึง 4,294,967,296 เก็บขอมูลชนิดจํานวนเต็มแบบไมติด
เครื่องหมาย + - โดยใชพื้นที่หนวยความจํา 32
bit ( 4 Byte)
long 32 -2,147,483,648 ถึง เก็บขอมูลชนิดจํานวนเต็มแบบยาว ติด
2,147,483,648 เครื่องหมาย + - โดยใชพื้นที่หนวยความจํา 32
bit ( 4 Byte)
unsigned long 32 0 ถึง 4,294,967,296 เก็บขอมูลชนิดจํานวนเต็มแบบยาว ไมติด
เครื่องหมาย + - โดยใชพื้นที่หนวยความจํา 32
bit ( 4 Byte)
การประกาศตัวแปรชนิดจํานวนเต็ม
ขอมูลชนิด int
รูปแบบ int <ชื่อตัวแปร> [= คาที่กําหนด] , [<ชื่อตัวแปร> = คาที่กําหนด]... ;
ตัวอยาง int a , b ; // ประกาศตัวแปรชื่อ a และ b โดยไมกําหนดคาเริ่มตน
int x=5 , b=10 ; // ประกาศตัวแปรชื่อ x และ b โดยมีคาเริ่มตนเปน 5 และ 10
int c=10.5 ; // ประกาศตัวแปรชื่อ c โดยมีคาเริ่มตนเปน 10 (ไมเอาทศนิยม)
ขอมูลชนิด long
รูปแบบ long <ชื่อตัวแปร> [= คาที่กําหนด] , [<ชื่อตัวแปร> = คาที่กําหนด]... ;
ตัวอยาง long p , q ; // ประกาศตัวแปรชื่อ p และ q โดยไมกําหนดคาเริ่มตน
int e=50000 , f=100000 ; // ประกาศตัวแปรชื่อ e และ f โดยมีคาเริ่มตนเปน 50000 และ 100000
จัดทําโดยครูเนาวรัตน ใจการุณ
33. การเขียนโปรแกรมภาษาซี หนา 33
ขอมูลประเภทจํานวนจริง (Real data type)
ขอมูลประเภทนี้จะเปนจํานวนจริงหรือทศนิยม ขอมูลประเภทนี้จัดลําดับกอนหลังไดยาก จึงไม
จัดเปนขอมูลประเภทที่มีลําดับ เนื่องจากทศนิยม มีไดหลายตําแหนง ขอมูลชนิดจํานวนจริงนี้ยังแบง
ออกไดเปนหลายประเภท โดยแตละประเภท จะใชหนวยความจํา ในการเก็บแตกตางกัน ทําใหเก็บ
ขอมูล ไดแตกตางกัน ดังตารางตอไปนี้
ตารางขอมูลชนิดจํานวนจริงและชวงขอมูลที่เก็บได
ชนิดของ ขนาด
ชวงของขอมูลที่เก็บได การใชงาน
ตัวแปร (bit)
float 32 1.754 E -38 ถึง 3.402 E +38 เก็บขอมูลชนิดจํานวนทศนิยม ใชพื้นที่
หนวยความจํา 32 bit (4 Byte) โดยเก็บคา
ทศนิยม 6 ตําแหนง
double 64 2.225 E -308 ถึง 1.797 E เก็บขอมูลชนิดจํานวนทศนิยม ใชพื้นที่
+308 หนวยความจํา 64 bit (8 Byte) โดยเก็บคา
ทศนิยม 12 ตําแหนง
long double 96 3.4 E -4923 ถึง 1.1 E +4923 เก็บขอมูลชนิดจํานวนทศนิยม ใชพื้นที่
หนวยความจํา 96 bit (16 Byte) โดยเก็บคา
ทศนิยม 24 ตําแหนง
หมายเหตุ 3.4 E -38 มีคาเทากับ และ 3.4 E +38 มีคาเทากับ
การประกาศตัวแปรชนิดจํานวนจริง (เลขทศนิยม)
ขอมูลชนิด float
รูปแบบ float <ชื่อตัวแปร> [= คาที่กําหนด] , [<ชื่อตัวแปร> = คาที่กําหนด]... ;
ตัวอยาง float r , s ; // ประกาศตัวแปรชื่อ r และ s โดยไมกําหนดคาเริ่มตน
float x=5.5 , y=100.0 ; // ประกาศตัวแปรชื่อ x และ y โดยมีคาเริ่มตนเปน 5.5 และ 100.0
ขอมูลประเภทตัวอักขระ (Character data type)
ขอมูลประเภทนี้จะเปนอักขระหนึ่งตัว ซึ่งเปนไปตามตารางรหัส ASCII ประกอบดวยขอมูลที่
เปนตัวอักษร ตัวเลข และอักขระพิเศษ ขอมูลประภทนี้จะเปนขอมูลประเภทที่มีลําดับ เนื่องจากเรียง
ตามลําดับตามตาราง ASCII ขอมูลประเภทนี้จะใชเนื้อที่หนวยความจําในการเก็บขอมูล 1 Byte และตอง
เขียนใหอยูในเครื่องหมาย ' ' (single quotation) เชน ‘A’ , ‘b’
จัดทําโดยครูเนาวรัตน ใจการุณ
34. การเขียนโปรแกรมภาษาซี หนา 34
การประกาศตัวแปรชนิด char
ขอมูลชนิด char
รูปแบบ char <ชื่อตัวแปร> [= คาที่กําหนด] , [<ชื่อตัวแปร> = คาที่กําหนด]... ;
ตัวอยาง char ch1 , ch2; // ประกาศตัวแปรชื่อ ch1 และ ch2 โดยไมกําหนดคาเริ่มตน
char ans='y' , more = 'n'; // ประกาศตัวแปรชื่อ ans และ more โดยมีคาเริ่มตนเปน 'y' และ 'n'
ขอมูลประเภทตรรกะ (Boolean data type)
ฺ
จะเปนคาทางลอจิก ไดแก จริง (true) กับเท็จ (false ) จะใชในคําสั่งควบคุมเพื่อตัดสินใจการ
ทํางาน ในการเรียงลําดับจะใหคาที่เปนเท็จ มากอนคาที่เปนจริง ซึ่งในการเขียนโปรแกรมดวยภาษาซี จะ
แทนคาที่เปนเท็จดวย 0 และ แทนคาที่เปนจริงดวย 1
การประกาศตัวแปร ใชการประกาศแบบจํานวนเต็ม (int) หรือ อักขระ (char) เพื่อใหไดคา 0 ซึ่งก็คือ
เปนเท็จ
ขอมูลชนิดสตริง (string type)
ขอมูลประเภทนี้ไมเปนชนิดขอมูลในภาษาซีโดยตรง แตเปนการนําขอมูลชนิดอักขระ (char
data type) มาเรียงตอกันในลักษณะของตัวแปรลําดับ (array) ตั้งแตหนึ่งตัวขึ้นไป จนถึง 255 ตัวอักษร
โดยอักขระตองอยูในเครื่องหมาย " " (double quotation) ในการเขียนโปรแกรมภาษาซี จะมีการเติม
ตัวอักษรวาง (0) เปนตัวสุดทายของสตริงโดยอัตโนมัติ เชน การเก็บสตริงคําวา "C COMPILER" จะ
ใชเนื้อที่หนวยความจํา ในการเก็บจํานวน 11 Byte โดยแตละ Byte เปนดังนี้
การประกาศขอมูลชนิด string
รูปแบบ char <ชื่อตัวแปร> [เลขจํานวนเต็ม] [= คาเริ่มตนที่กําหนด] , [<ชื่อตัวแปร> [เลขจํานวนเต็ม]
[= คาเริ่มตนที่กําหนด] ;
ตัวอยาง char st1[15] , st2[20] ; // ประกาศตัวแปรชื่อ st1 และ st2 โดยไมกําหนดคาเริ่มตน
char name[15]="Prapan" ; // ประกาศตัวแปรชื่อ name โดยมีคาเริ่มตนเปน "Prapan"
ขอมูลชนิดโครงสราง (structure type)
ขอมูลชนิดโครงสราง (structure type) คือ โครงสรางขอมูลที่ประกอบดวยสมาชิก หรือตัว
แปรที่มีชนิดขอมูลที่แตกตางกัน เก็บรวมกันไวภายใตชื่อของตัวแปรเดียว โดยขอมูลที่เก็บนั้น จะตองมี
ความเกี่ยวเนื่องและสัมพันธกัน เชน โครงสราง นักเรียนจะประกอบดวย เลขประจําตัวนักเรียน ชื่อ
นามสกุล เพศ วันเดือนปเกิด เปนตน
จัดทําโดยครูเนาวรัตน ใจการุณ
35. การเขียนโปรแกรมภาษาซี หนา 35
ขอมูลชนิดพอยเตอร (pointer type)
พอยเตอรเปนชนิดขอมูลประเภทหนึ่ง ที่สรางขึ้นจากชนิดขอมูลแบบพื้นฐานทั่วไป โดยชนิด
ขอมูลแบบพอยเตอร จะแตกตางจากขอมูลชนิดพื้นฐานตรงที่ ชนิดขอมูลพื้นฐาน จะเก็บและดึงคาขอมูล
จากตัวแปรโดยตรง แตขอมูลชนิดพอยเตอร จะเก็บคาที่อยู (Address) ของตัวแปร และใชคาที่อยูนี้ ชี้
อางอิงไปยังขอมูล ที่เก็บอยูในตัวแปรนั้น อีกที่หนึ่ง เพื่อทําการเก็บและดึงคาขอมูลของตัวแปรโดยอาศัย
ที่อยูนั้น ซึ่งอาจสรุปไดวา ขอมูลพื้นฐาน จะเก็บและดึงขอมูลจากตัวแปรโดยตรง แตพอยเตอร จะทํางาน
กับตัวแปรโดยออม คือทํางานผานตําแหนงที่อยูของตัวแปรที่มันชี้อยูนั้นเอง
จัดทําโดยครูเนาวรัตน ใจการุณ
36. การเขียนโปรแกรมภาษาซี หนา 36
กิจกรรมที่ 5 ชนิดของขอมูล
ตอนที่ 1 เขียนตอบลงในชองที่เวนไว
1. ขอมูลชนิด Simple แบงเปนกี่ประเภทอะไรบาง
แบงเปน ............ ประเภท คือ
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
2. ขอมูลชนิดจํานวนเต็ม หมายความวาอะไร ......................................................................................
.........................................................................................................................................................
3. ขอมูลชนิดจํานวนเต็มแบงออกเปนกี่ชนิด อะไรบาง
แบงออกเปน ............ ชนิด คือ
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
4. จงอธิบายวาทําไมขอมูลชนิด short ที่ใชหนวยความจําขนาด 8 bit จึงเก็บขอมูลได 256 คา
...................................................................................................................................................................
....................................................................................................................................................................
..................................................................................................................................................................
5. ขอมูลตอไปนี้ ใชหนวยความจําขนาดเทาไร และเก็บขอมูลไดในชวงใด
ชนิดขอมูล ขนาดหนวยความจํา ชวงขอมูล
int
short
long
unsigned int
unsigned short
unsigned long
char
จัดทําโดยครูเนาวรัตน ใจการุณ
37. การเขียนโปรแกรมภาษาซี หนา 37
6. ขอมูลชนิดจํานวนจริง มีลักษณะเดนอยางไร .....................................................................................
7. จงบอกขนาดหนวยความจําและชวงของขอมูลชนิดจํานวนจริงตามตารางตอไปนี้
ชนิดของขอมูล ขนาดหนวยความจํา ชวงของขอมูล ตําแหนงของทศนิยม
float
double
long double
8. จงเขียนเลขตอไปนี้ใหอยูในรูปของเลขฐานสิบ
8.1. 2.13E+03 เทากับ ..........................................................................................................
8.2. 52.42E-02 เทากับ ..........................................................................................................
8.3. 1.25E+00 เทากับ ..........................................................................................................
9. ขอมูลชนิด char นิยมใชเก็บขอมูลลักษณะใด
...................................................................................................................................................................
10. ขอมูลชนิด char เก็บตัวเลขจํานวนเต็มไดหรือไม อยางไร
...................................................................................................................................................................
...................................................................................................................................................................
11. ขอมูลชนิด boolean เปนขอมูลที่มีลักษณะอยางไร
...................................................................................................................................................................
12. คา 1 และ 0 ของขอมูลชนิด boolean หมายถึงอะไร
...................................................................................................................................................................
...................................................................................................................................................................
13. ขอมูลชนิด string มีลักษณะเดนอยางไร
...................................................................................................................................................................
...................................................................................................................................................................
14. ขอมูลชนิด string ตองเขียนอยูในเครื่องหมาย ...........................อานวา .............................................
สวนขอมูลชนิด char ตองเขียนอยูในเครื่องหมาย ......................อานวา .............................................
ตอนที่ 2 จงบอกชนิดของขอมูลที่กําหนดตอไปนี้
1. “computer” เปนขอมูลชนิด .......................................................................................
2. ความจริง/เท็จ เปนขอมูลชนิด .......................................................................................
3. เกรดเฉลี่ย เปนขอมูลชนิด .......................................................................................
4. จํานวนนักเรียน เปนขอมูลชนิด .......................................................................................
5. ‘y’ เปนขอมูลชนิด .......................................................................................
จัดทําโดยครูเนาวรัตน ใจการุณ