SlideShare a Scribd company logo
1 of 102
Download to read offline
การเขียนโปรแกรมภาษาซี หนา 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
         นอกจากคอมไพเลอรแลว ยังมีตัวแปลภาษาอีกรูปแบบหนึ่งที่เรียกวา อินเตอรพรีเตอร การอาน
และ แปลโปรแกรมทีละบรรทัด เมื่อแปลผลบรรทัดหนึ่งเสร็จก็จะทํางานตามคําสั่งในบรรทัดนั้น แลว
จึงทําการแปลผลตามคําสั่งในบรรทัดถัดไป หลักการที่อินเตอรพรีเตอรใชเรียกวา อินเตอรเพรต
(interpret )
         ขอดีและขอเสียของตัวแปลภาษาทั้งสองแบบมีดังนี้
                       ขอดี                                      ขอเสีย
    คอมไพเลอร         • ทํางานไดเร็ว เนื่องจากทําการแปลผล       • เมื่อเกิดขอผิดพลาด
                       ทีเดียว แลวจึงทํางานตามคําสั่งของ         ขึ้นกับโปรแกรมจะ
                       โปรแกรมในภายหลัง                           ตรวจสอบหาขอผิดพลาด
                       • เมื่อทําการแปลผลแลว ในครั้งตอไปไม     ไดยาก เพราะทําการแปล
                       จําเปนตองทําการแปลผลใหมอีก เนื่องจาก    ผลทีเดียวทั้งโปรแกรม
                       ภาษาเครื่องที่แปลไดจะถูกเก็บไวที่
                       หนวยความจํา สามารถเรียกใชงานไดทันที
    อินเตอรพรีเตอร   • หาขอผิดพลาดของโปรแกรมไดงาย           • ชา เนื่องจากที่ทํางานทีละ
                       เนื่องจากทําการแปลผลทีละบรรทัด            บรรทัด
                       • เนื่องจากทํางานทีละบรรทัดดังนั้นจึงสั่ง
                       ใหโปรแกรมทํางานตามคําสั่งเฉพาะจุดที่
                       ตองการได
                       • ไมเสียเวลารอการแปลโปรแกรมเปน
                       เวลานาน

ขั้นตอนที่ 3 เชื่อมโยงโปรแกรม (link)
          การเขียนโปรแกรมภาษาซีนั้นผูเขียนโปรแกรมไมจําเปนตองเขียนคําสั่งตาง ๆ ขึ้นใชงานเอง
เนื่องจากภาษาซีมีฟงกชั่นมาตรฐานใหผูเขียนโปรแกรมสามารถเรียกใชงานได เชน การเขียนโปรแกรม
แสดงขอความ “Lampangkanlayanee” ออกทางหนาจอ ผูเขียนโปรแกรมสามารถเรียกใชฟงกชั่น
printf() ซึ่งเปนฟงกชั่นมาตรฐานของภาษาซีมาใชงานได โดยสวนการประกาศ (declaration) ของ
ฟงกชั่นมาตรฐานตาง ๆ จะถูกจัดเก็บอยูในเฮดเดอรไฟลแตละตัว แตกตางกันไปตามลักษณะการใชงาน
          ดวยเหตุนี้ภาษาเครื่องที่ไดจากขั้นตอนที่ 2 จึงยังไมสามารถนําไปใชงานได แตตองนํามา
เชื่อมโยงเขากับ library กอน ซึ่งผลจากการเชื่อมโยงจะทําใหได executable program ( ไฟลนามสกุล
.exe เชน work.exe) ที่สามารถนําไปใชงานได



                                                            จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 3
ขั้นตอนที่ 4 ประมวลผล (run)
       เมื่อนํา executable program จากขั้นตอนที่ 3 มาประมวลผลก็จะไดผลลัพธ (output) ของ
โปรแกรมออกมา ( ถามี )




                                                          จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 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

                       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

หนาตาของโปรแกรม 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

                                เมนูของโปรแกรม Bloodshed Dev-C++
เมนู File มีเมนูยอยที่ควรรูดังนี้




New เพื่อสรางไฟลใหม
Open Project or File เพื่อเปดไฟลหรือโปรเจ็กซที่ไดทํางาน และบันทึกไวแลว
Save เพื่อบันทึกไฟล
Save As เพื่อบันทึกไฟลเปนชื่อใหม หรือเพื่อบันทึกลงในโฟลเดอรอื่น
Save All เพื่อบันทึกไฟลหรือโปรเจ็กซทั้งหมด ที่เปดทํางานอยู
Close เพื่อปดไฟลที่กําลัง Active อยู
Close All เพื่อปดไฟลหรือ โปรเจ็กซทั้งหมด ที่เปดอยู
Exit เพื่อปดโปรแกรม Bloodshed Dev-C++




                                                            จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 8
เมนู Edit มีเมนูยอยที่ควรรูดังนี้




Undo เลิกทําหรือยกเลิกการทํางาน
Redu ใหทําซ้ํางานที่เพิ่งทําผานไป
Cut ตัดขอความที่ทําแถบสีนําไปไวใน คลิปบอรด
Copy คัดลอกขอความที่ทําแถบสีนําไปไวใน คลิปบอรด
Paste ใหวาง ปะ หรือ แปะ ขอความที่ได Cut หรือ Copy ไวแลว มาวางลงในตําแหนงของ เคอรเซอร
Insert ทําการแทรก
     1. วันที่ (Date/Time) ลงใน Editor
     2. Comment header สวนที่เปน หมายเหตุในการพัฒนาโปรแกรมลงบนสวนหัวของ Editor
Select All เลือกโคด หรือขอความทั้งหมด ที่อยูใน Editor




                                                          จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 9
เมนู Search มีเมนูยอยที่ควรรูดังนี้




Find คนหาคํา หรือขอความใน Editor
Search Again ใหคนซ้ํา หรือคนหาตอไปอีก
Replace ใหแทนที่คําที่คนหา ดวยคําใหม




                                             จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 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




                                                         จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 11
เมนู Project




                 จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 12
เมนู Execute มีเมนูยอยที่ควรรูดังนี้




Compile (Ctrl+F9) สั่งใหทําการ Compile ซอรสโคด เมื่อ Compile แลวจะไดไฟลใหมที่มีสวนขยายเปน .exe
Run (Ctrl+F10) สั่งใหโปรแกรมทํางาน
Compile & Run (F9) ใหทําการ Compile และ Run โปรแกรม
Rebuild All (Ctrl+F11) ใหสรางไฟล .exe ใหม แทนที่ไฟลเดิม




                                                            จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 13
เมนู Debug




               จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 14
เมนู Tools มีเมนูยอยที่ควรรูดังนี้




Editor Options เปนการตั้งคาสภาพแวดลอมใหกับ Editor เชน ใหมีหมายเลขบรรทัดเปนตน




                                                          จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 15
เมนู CVS




             จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 16
เมนู Windows มีเมนูยอยที่ควรรูดังนี้




Close All ปดวินโดวส ของ Editor ทั้งหมด
Full Screen Mode ใหวินโดวสแสดงแบบเต็มจอ ถาตองการยกเลิกแบบ Full Screen ให click ที่
เพื่อปดวินโดวส
Next ใหแสดงวินโดวสของ Editor ถัดไป
Previous ใหแสดงวินโดวสของ Editor กอนหนา




                                                          จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 17
เมนู Help




       สวนใหญเปนเมนูเกี่ยวกับการขอความชวยเหลีอ

การสรางแฟมโปรแกรม
       การสรางแฟมโปรแกรม ทําไดโดยเลือกเมนู File -> Source File หรือกด Ctrl + N

การปอนโปรแกรมภาษาซี
      การปอนโปรแกรมในหนาตาง Editor สามารถทําไดเชนเดียวกับการปอนขอความใน
โปรแกรมจัดพิมพเอกสารทั่วไป




                                                       จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 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

การแปลโปรแกรม (Compile)
     การเรียกใชคอมไพลเลอร ทําไดโดยเลือกเมนู Execute -> Compile หรือกด Ctrl + F9




                   รูป แสดงหนาตาง Compiling ที่ทํางานเสร็จสมบูรณ

     ในกรณีที่พิมพโปรแกรมผิดจะแสดงรายการขอผิดพลาดที่ตรวจพบ ดังรูป




                                                  สวนที่บอกวาผิดอะไรบาง

                              รูป แสดงโปรแกรมที่ผิดพลาด


                                                       จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 20

การสั่งใหโปรแกรมทํางาน (Run)
        เมื่อโปรแกรมไดถูกแปลเปนโปรแกรมภาษาเครื่องเรียบรอยแลว ผูใชสามารถสั่งใหโปรแกรม
ที่แปลแลวกระทําการ โดยเลือกคําสั่ง Execute -> Run หรือกด Ctrl + F10

การเปดแฟมโปรแกรม
       ผูใชสามารถเปดแฟมโปรแกรมขึ้นมาแสดงบนหนาตางโปรแกรมเพื่อแกไข แปลหรือสั่งให
กระทําการ โดยเลือกคําสั่ง File -> Open Projector or File จะไดหนาตางดังรูป




                                                                   1




                                                                                        3
                                                       2




       1. เปลี่ยนไดรฟ เปลี่ยนโฟลเดอร
       2. พิมพชื่อไฟล หรือคลิกเลือกชื่อไฟล
       3. คลิกปุม Open




                                                           จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 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

                                  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
กลับไป ( 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
         การกําหนดชื่อไฟลตามหลัง #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
       ตัวอยาง การคอมเมนตในภาษาซี

       //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
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

                                                    กิจกรรม 3 โครงสรางภาษาซี
ตอนที่ 1 จงเติมคําถามตอไปนี้ ใหถูกตองสมบูรณ

1. โครงสรางของภาษาซีในสวนของคําสั่งพรีโพรเซสเซอร ทําหนาที่อะไร
...............................................................................................................................................................
...............................................................................................................................................................
2. ในภาษาซี ฟงกชันหลักที่ทุกโปรแกรมตองมี คือฟงกชันอะไร
...............................................................................................................................................................
3. การเขียนคําสั่งพรีโพรเซสเซอร ตองเริ่มตนดวยเครื่องหมายอะไร
...............................................................................................................................................................
4. คําสั่งพรีโพรเซสเซอร #include ทําหนาที่อะไร
...............................................................................................................................................................
...............................................................................................................................................................
5. คําสั่งพรีโพรเซสเซอร #define ทําหนาที่อะไร
...............................................................................................................................................................
...............................................................................................................................................................
6. ประโยคคําสั่งในภาษาซี ตองจบดวยเครื่องหมายอะไร
...............................................................................................................................................................
7. ประโยชนของการเขียนหมายเหตุไวในโปรแกรม คืออะไร
...............................................................................................................................................................
...............................................................................................................................................................
8. การเขียนหมายเหตุในภาษาซี มีหลักการเขียนอยางไร
...............................................................................................................................................................
...............................................................................................................................................................
9. รูปแบบการเขียนคําสั่ง #include<ชื่อไฟล> มีความหมายอยางไร
...............................................................................................................................................................
...............................................................................................................................................................
10. รูปแบบการเขียนคําสั่ง #include “ชื่อไฟล” มีความหมายอยางไร
...............................................................................................................................................................
...............................................................................................................................................................




                                                                                                     จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 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
ขอสังเกตเกี่ยวกับการตั้งชื่อ
1. ควรตั้งชื่อใหมีความหมายและเขาใจไดงาย ดังตัวอยางตอไปนี้
     Length มีความหมายและเขาใจไดงายกวา L
2. ควรตั้งใหเห็นสวนประกอบตาง ๆ ไดงาย ดังตัวอยางตอไปนี้
    StudentName เห็นสวนประกอบตาง ๆ ไดงายกวา studentname
    Part_Number เห็นสวนประกอบตาง ๆ ไดงายกวา PARTNUMBER
3. เนื่องจากชื่อสวนมากที่มีอยูในคอมไพเลอรมักนิยมเริ่มดวยเครื่องหมายขีดเสนใต ( _ ) ดังที่เราไดเห็น
ตัวอยางมาแลวจากคําสงวน (Reserve word) เพราะฉะนั้นถาเปนไปได เราควรหลีกเลี่ยงการตั้งชื่อที่
เริ่มตนดวยเครื่องหมายขีดเสนใต




                                                                จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 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

                                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
ตารางขอมูลชนิดจํานวนเต็มและชวงขอมูลที่เก็บได

ชนิดของตัวแปร ขนาด (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

ขอมูลประเภทจํานวนจริง (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

การประกาศตัวแปรชนิด 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

ขอมูลชนิดพอยเตอร (pointer type)
            พอยเตอรเปนชนิดขอมูลประเภทหนึ่ง ที่สรางขึ้นจากชนิดขอมูลแบบพื้นฐานทั่วไป โดยชนิด
ขอมูลแบบพอยเตอร จะแตกตางจากขอมูลชนิดพื้นฐานตรงที่ ชนิดขอมูลพื้นฐาน จะเก็บและดึงคาขอมูล
จากตัวแปรโดยตรง แตขอมูลชนิดพอยเตอร จะเก็บคาที่อยู (Address) ของตัวแปร และใชคาที่อยูนี้ ชี้
อางอิงไปยังขอมูล ที่เก็บอยูในตัวแปรนั้น อีกที่หนึ่ง เพื่อทําการเก็บและดึงคาขอมูลของตัวแปรโดยอาศัย
ที่อยูนั้น ซึ่งอาจสรุปไดวา ขอมูลพื้นฐาน จะเก็บและดึงขอมูลจากตัวแปรโดยตรง แตพอยเตอร จะทํางาน
กับตัวแปรโดยออม คือทํางานผานตําแหนงที่อยูของตัวแปรที่มันชี้อยูนั้นเอง




                                                               จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 36

                                                        กิจกรรมที่ 5 ชนิดของขอมูล
ตอนที่ 1 เขียนตอบลงในชองที่เวนไว
1. ขอมูลชนิด Simple แบงเปนกี่ประเภทอะไรบาง
แบงเปน ............ ประเภท คือ
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
2. ขอมูลชนิดจํานวนเต็ม หมายความวาอะไร ......................................................................................
       .........................................................................................................................................................
3. ขอมูลชนิดจํานวนเต็มแบงออกเปนกี่ชนิด อะไรบาง
แบงออกเปน ............ ชนิด คือ
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
4. จงอธิบายวาทําไมขอมูลชนิด short ที่ใชหนวยความจําขนาด 8 bit จึงเก็บขอมูลได 256 คา
...................................................................................................................................................................
....................................................................................................................................................................
..................................................................................................................................................................
5. ขอมูลตอไปนี้ ใชหนวยความจําขนาดเทาไร และเก็บขอมูลไดในชวงใด
                          ชนิดขอมูล                               ขนาดหนวยความจํา                                                ชวงขอมูล
             int
             short
             long
             unsigned int
             unsigned short
             unsigned long
             char

                                                                                                     จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรมภาษาซี หนา 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’             เปนขอมูลชนิด .......................................................................................

                                                                                                     จัดทําโดยครูเนาวรัตน ใจการุณ
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++
การเขียนโปรแกรม Dev c++

More Related Content

What's hot

แผนการสอนวิชาการเขียนโปรแกรมภาษาซี
แผนการสอนวิชาการเขียนโปรแกรมภาษาซีแผนการสอนวิชาการเขียนโปรแกรมภาษาซี
แผนการสอนวิชาการเขียนโปรแกรมภาษาซีเทวัญ ภูพานทอง
 
ทัศนธาตุ นวัตกรรมเล่ม 2 ส่งเผยแพร่
ทัศนธาตุ นวัตกรรมเล่ม 2 ส่งเผยแพร่ทัศนธาตุ นวัตกรรมเล่ม 2 ส่งเผยแพร่
ทัศนธาตุ นวัตกรรมเล่ม 2 ส่งเผยแพร่Nichakorn Sengsui
 
โครงงานประเภทพัฒนาเครื่องมือ 5
โครงงานประเภทพัฒนาเครื่องมือ 5โครงงานประเภทพัฒนาเครื่องมือ 5
โครงงานประเภทพัฒนาเครื่องมือ 5miiztake
 
โครงงานเบื้องต้น
โครงงานเบื้องต้นโครงงานเบื้องต้น
โครงงานเบื้องต้นPat Pholla
 
ใบงานที่ 10 การสร้างแผนภูมิ
ใบงานที่ 10  การสร้างแผนภูมิใบงานที่ 10  การสร้างแผนภูมิ
ใบงานที่ 10 การสร้างแผนภูมิMeaw Sukee
 
ใบความรู้ ที่ 1 หลักการเขียนโปรแกรม
ใบความรู้ ที่ 1 หลักการเขียนโปรแกรมใบความรู้ ที่ 1 หลักการเขียนโปรแกรม
ใบความรู้ ที่ 1 หลักการเขียนโปรแกรมmr.somsak phoolpherm
 
การออกแบบแอพพลิเคชั่นด้วย Adobe XD
การออกแบบแอพพลิเคชั่นด้วย Adobe XDการออกแบบแอพพลิเคชั่นด้วย Adobe XD
การออกแบบแอพพลิเคชั่นด้วย Adobe XDDr.Kridsanapong Lertbumroongchai
 
ข้อสอบ5 เม.ย. การใช้เทคโนโลยีอินเตอร์เนต ปวส 2558มี80ข้อ
ข้อสอบ5 เม.ย. การใช้เทคโนโลยีอินเตอร์เนต ปวส 2558มี80ข้อข้อสอบ5 เม.ย. การใช้เทคโนโลยีอินเตอร์เนต ปวส 2558มี80ข้อ
ข้อสอบ5 เม.ย. การใช้เทคโนโลยีอินเตอร์เนต ปวส 2558มี80ข้อpeter dontoom
 
ทฤษฏีพัฒนาจริยธรรมของ จอง เพียเจย์
ทฤษฏีพัฒนาจริยธรรมของ จอง เพียเจย์ทฤษฏีพัฒนาจริยธรรมของ จอง เพียเจย์
ทฤษฏีพัฒนาจริยธรรมของ จอง เพียเจย์Siririn Noiphang
 
แบบวิเคราะห์ผลการเรียนรู้Tok1
แบบวิเคราะห์ผลการเรียนรู้Tok1แบบวิเคราะห์ผลการเรียนรู้Tok1
แบบวิเคราะห์ผลการเรียนรู้Tok1Kobwit Piriyawat
 
บทที่4 ผมการดำเนินงาน
บทที่4 ผมการดำเนินงานบทที่4 ผมการดำเนินงาน
บทที่4 ผมการดำเนินงานChamp Wachwittayakhang
 
แผนการจัดการเรียนรู้วิชาคอมพิวเตอร์ป2
แผนการจัดการเรียนรู้วิชาคอมพิวเตอร์ป2แผนการจัดการเรียนรู้วิชาคอมพิวเตอร์ป2
แผนการจัดการเรียนรู้วิชาคอมพิวเตอร์ป2wifi5822
 
ปกโครงงาน
ปกโครงงานปกโครงงาน
ปกโครงงานAtsada Pasee
 
หน่วยการเรียนรู้ที่ 1 พื้นฐานการสร้างเว็บไซต์
หน่วยการเรียนรู้ที่ 1 พื้นฐานการสร้างเว็บไซต์หน่วยการเรียนรู้ที่ 1 พื้นฐานการสร้างเว็บไซต์
หน่วยการเรียนรู้ที่ 1 พื้นฐานการสร้างเว็บไซต์Joop Ssk
 
แผนการจัดการเรียนรู้อินเตอร์เน็ต
แผนการจัดการเรียนรู้อินเตอร์เน็ตแผนการจัดการเรียนรู้อินเตอร์เน็ต
แผนการจัดการเรียนรู้อินเตอร์เน็ตRungdawan Rungrattanachai
 

What's hot (20)

แบบฝึกหัดที่ 3 Microsoft PowerPoint
แบบฝึกหัดที่ 3 Microsoft PowerPointแบบฝึกหัดที่ 3 Microsoft PowerPoint
แบบฝึกหัดที่ 3 Microsoft PowerPoint
 
แผนการสอนวิชาการเขียนโปรแกรมภาษาซี
แผนการสอนวิชาการเขียนโปรแกรมภาษาซีแผนการสอนวิชาการเขียนโปรแกรมภาษาซี
แผนการสอนวิชาการเขียนโปรแกรมภาษาซี
 
ทัศนธาตุ นวัตกรรมเล่ม 2 ส่งเผยแพร่
ทัศนธาตุ นวัตกรรมเล่ม 2 ส่งเผยแพร่ทัศนธาตุ นวัตกรรมเล่ม 2 ส่งเผยแพร่
ทัศนธาตุ นวัตกรรมเล่ม 2 ส่งเผยแพร่
 
โครงงานประเภทพัฒนาเครื่องมือ 5
โครงงานประเภทพัฒนาเครื่องมือ 5โครงงานประเภทพัฒนาเครื่องมือ 5
โครงงานประเภทพัฒนาเครื่องมือ 5
 
โครงงานเบื้องต้น
โครงงานเบื้องต้นโครงงานเบื้องต้น
โครงงานเบื้องต้น
 
ใบงานที่ 10 การสร้างแผนภูมิ
ใบงานที่ 10  การสร้างแผนภูมิใบงานที่ 10  การสร้างแผนภูมิ
ใบงานที่ 10 การสร้างแผนภูมิ
 
ใบความรู้ ที่ 1 หลักการเขียนโปรแกรม
ใบความรู้ ที่ 1 หลักการเขียนโปรแกรมใบความรู้ ที่ 1 หลักการเขียนโปรแกรม
ใบความรู้ ที่ 1 หลักการเขียนโปรแกรม
 
การออกแบบแอพพลิเคชั่นด้วย Adobe XD
การออกแบบแอพพลิเคชั่นด้วย Adobe XDการออกแบบแอพพลิเคชั่นด้วย Adobe XD
การออกแบบแอพพลิเคชั่นด้วย Adobe XD
 
แบบฝึกการอ่านเขียน เล่ม ๑
แบบฝึกการอ่านเขียน เล่ม ๑แบบฝึกการอ่านเขียน เล่ม ๑
แบบฝึกการอ่านเขียน เล่ม ๑
 
วิทยาการคำนวณ3
วิทยาการคำนวณ3วิทยาการคำนวณ3
วิทยาการคำนวณ3
 
ข้อสอบ5 เม.ย. การใช้เทคโนโลยีอินเตอร์เนต ปวส 2558มี80ข้อ
ข้อสอบ5 เม.ย. การใช้เทคโนโลยีอินเตอร์เนต ปวส 2558มี80ข้อข้อสอบ5 เม.ย. การใช้เทคโนโลยีอินเตอร์เนต ปวส 2558มี80ข้อ
ข้อสอบ5 เม.ย. การใช้เทคโนโลยีอินเตอร์เนต ปวส 2558มี80ข้อ
 
ข้อสอบคอมพิวเตอร์ PowerPoint +internet
ข้อสอบคอมพิวเตอร์ PowerPoint +internetข้อสอบคอมพิวเตอร์ PowerPoint +internet
ข้อสอบคอมพิวเตอร์ PowerPoint +internet
 
ทฤษฏีพัฒนาจริยธรรมของ จอง เพียเจย์
ทฤษฏีพัฒนาจริยธรรมของ จอง เพียเจย์ทฤษฏีพัฒนาจริยธรรมของ จอง เพียเจย์
ทฤษฏีพัฒนาจริยธรรมของ จอง เพียเจย์
 
แบบวิเคราะห์ผลการเรียนรู้Tok1
แบบวิเคราะห์ผลการเรียนรู้Tok1แบบวิเคราะห์ผลการเรียนรู้Tok1
แบบวิเคราะห์ผลการเรียนรู้Tok1
 
บทที่4 ผมการดำเนินงาน
บทที่4 ผมการดำเนินงานบทที่4 ผมการดำเนินงาน
บทที่4 ผมการดำเนินงาน
 
แนวข้อสอบ
แนวข้อสอบแนวข้อสอบ
แนวข้อสอบ
 
แผนการจัดการเรียนรู้วิชาคอมพิวเตอร์ป2
แผนการจัดการเรียนรู้วิชาคอมพิวเตอร์ป2แผนการจัดการเรียนรู้วิชาคอมพิวเตอร์ป2
แผนการจัดการเรียนรู้วิชาคอมพิวเตอร์ป2
 
ปกโครงงาน
ปกโครงงานปกโครงงาน
ปกโครงงาน
 
หน่วยการเรียนรู้ที่ 1 พื้นฐานการสร้างเว็บไซต์
หน่วยการเรียนรู้ที่ 1 พื้นฐานการสร้างเว็บไซต์หน่วยการเรียนรู้ที่ 1 พื้นฐานการสร้างเว็บไซต์
หน่วยการเรียนรู้ที่ 1 พื้นฐานการสร้างเว็บไซต์
 
แผนการจัดการเรียนรู้อินเตอร์เน็ต
แผนการจัดการเรียนรู้อินเตอร์เน็ตแผนการจัดการเรียนรู้อินเตอร์เน็ต
แผนการจัดการเรียนรู้อินเตอร์เน็ต
 

Similar to การเขียนโปรแกรม Dev c++

ประวัติภาษาซี
ประวัติภาษาซีประวัติภาษาซี
ประวัติภาษาซีHathaichon Nonruongrit
 
หน่วยการเรียนรู้ที่ 1
หน่วยการเรียนรู้ที่ 1หน่วยการเรียนรู้ที่ 1
หน่วยการเรียนรู้ที่ 1SubLt Masu
 
หน่วยที่ 2 โปรแกรมภาษา
หน่วยที่ 2 โปรแกรมภาษาหน่วยที่ 2 โปรแกรมภาษา
หน่วยที่ 2 โปรแกรมภาษาPhanupong Chanayut
 
บทที่2การเขียนคำสั่งควบคุมขั้นพื้นฐาน
บทที่2การเขียนคำสั่งควบคุมขั้นพื้นฐานบทที่2การเขียนคำสั่งควบคุมขั้นพื้นฐาน
บทที่2การเขียนคำสั่งควบคุมขั้นพื้นฐานBaramee Chomphoo
 
ประวัติภาษา C
ประวัติภาษา Cประวัติภาษา C
ประวัติภาษา CFair Kung Nattaput
 
ภาษาคอมพิวเตอร์
ภาษาคอมพิวเตอร์ภาษาคอมพิวเตอร์
ภาษาคอมพิวเตอร์N'Name Phuthiphong
 
ภาษาซี
ภาษาซีภาษาซี
ภาษาซีnative
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีnsumato
 
04 โครงสร้างโปรแกรมภาษาซี
04 โครงสร้างโปรแกรมภาษาซี04 โครงสร้างโปรแกรมภาษาซี
04 โครงสร้างโปรแกรมภาษาซีpirapongaru
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีchoco336
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีchoco336
 

Similar to การเขียนโปรแกรม Dev c++ (20)

ประวัติภาษาซี
ประวัติภาษาซีประวัติภาษาซี
ประวัติภาษาซี
 
Learn 1
Learn 1Learn 1
Learn 1
 
ประวัติความเป็นมาภาษาซี
ประวัติความเป็นมาภาษาซีประวัติความเป็นมาภาษาซี
ประวัติความเป็นมาภาษาซี
 
หน่วยการเรียนรู้ที่ 1
หน่วยการเรียนรู้ที่ 1หน่วยการเรียนรู้ที่ 1
หน่วยการเรียนรู้ที่ 1
 
หน่วยที่ 2 โปรแกรมภาษา
หน่วยที่ 2 โปรแกรมภาษาหน่วยที่ 2 โปรแกรมภาษา
หน่วยที่ 2 โปรแกรมภาษา
 
Computer
ComputerComputer
Computer
 
บทที่2การเขียนคำสั่งควบคุมขั้นพื้นฐาน
บทที่2การเขียนคำสั่งควบคุมขั้นพื้นฐานบทที่2การเขียนคำสั่งควบคุมขั้นพื้นฐาน
บทที่2การเขียนคำสั่งควบคุมขั้นพื้นฐาน
 
Know1 2
Know1 2Know1 2
Know1 2
 
Lesson1
Lesson1Lesson1
Lesson1
 
Lesson1
Lesson1Lesson1
Lesson1
 
Lesson1
Lesson1Lesson1
Lesson1
 
ประวัติภาษา C
ประวัติภาษา Cประวัติภาษา C
ประวัติภาษา C
 
ภาษาคอมพิวเตอร์
ภาษาคอมพิวเตอร์ภาษาคอมพิวเตอร์
ภาษาคอมพิวเตอร์
 
ภาษาซี
ภาษาซีภาษาซี
ภาษาซี
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
 
58210401120 งาน 1 ss
58210401120 งาน 1 ss58210401120 งาน 1 ss
58210401120 งาน 1 ss
 
04 โครงสร้างโปรแกรมภาษาซี
04 โครงสร้างโปรแกรมภาษาซี04 โครงสร้างโปรแกรมภาษาซี
04 โครงสร้างโปรแกรมภาษาซี
 
1236363
12363631236363
1236363
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
 

การเขียนโปรแกรม 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) ที่สามารถนําไปใชงานได จัดทําโดยครูเนาวรัตน ใจการุณ
  • 3. การเขียนโปรแกรมภาษาซี หนา 3 ขั้นตอนที่ 4 ประมวลผล (run) เมื่อนํา executable program จากขั้นตอนที่ 3 มาประมวลผลก็จะไดผลลัพธ (output) ของ โปรแกรมออกมา ( ถามี ) จัดทําโดยครูเนาวรัตน ใจการุณ
  • 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 จัดทําโดยครูเนาวรัตน ใจการุณ
  • 11. การเขียนโปรแกรมภาษาซี หนา 11 เมนู Project จัดทําโดยครูเนาวรัตน ใจการุณ
  • 12. การเขียนโปรแกรมภาษาซี หนา 12 เมนู Execute มีเมนูยอยที่ควรรูดังนี้ Compile (Ctrl+F9) สั่งใหทําการ Compile ซอรสโคด เมื่อ Compile แลวจะไดไฟลใหมที่มีสวนขยายเปน .exe Run (Ctrl+F10) สั่งใหโปรแกรมทํางาน Compile & Run (F9) ใหทําการ Compile และ Run โปรแกรม Rebuild All (Ctrl+F11) ใหสรางไฟล .exe ใหม แทนที่ไฟลเดิม จัดทําโดยครูเนาวรัตน ใจการุณ
  • 13. การเขียนโปรแกรมภาษาซี หนา 13 เมนู Debug จัดทําโดยครูเนาวรัตน ใจการุณ
  • 14. การเขียนโปรแกรมภาษาซี หนา 14 เมนู Tools มีเมนูยอยที่ควรรูดังนี้ Editor Options เปนการตั้งคาสภาพแวดลอมใหกับ Editor เชน ใหมีหมายเลขบรรทัดเปนตน จัดทําโดยครูเนาวรัตน ใจการุณ
  • 15. การเขียนโปรแกรมภาษาซี หนา 15 เมนู CVS จัดทําโดยครูเนาวรัตน ใจการุณ
  • 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’ เปนขอมูลชนิด ....................................................................................... จัดทําโดยครูเนาวรัตน ใจการุณ