introduction to c language - notecyber.com ·...
TRANSCRIPT
การเขียนโปรแกรมคอมพวิเตอร์ ภาษาซี
Introduction To C Language
ความรู้เบอืงต้นเกียวกับภาษาซี
ความสาํคัญ
ครูผู้สอน นายวรเทพ วันกาล
ภาษาซีจัดเป็นภาษาระดับกลางทีมีลักษณะเป็นภาษาโครงสร้าง
สามารถประยกุต์ใช้ได้กบังานในลกัษณะตา่งๆ เป็นภาษาทีใกล้เคียงกบัภาษาแอส
แซมบลี ผ้เขียนโปรแกรมจะสามารถเขียนโปรแกรมได้อย่างคล่องตัวโดยไม่มี
ข้อจํากดัในการวางตําแหน่งฟังก์ชใันโปรแกรม ภาษาซีจึงเป็นภาษาทีง่ายต่อการ
เข้าใจและการนําไปใช้งาน การสร้างโปรแกรมภาษาซีจะเริมจากการเขียน
โปรแกรมต้นกําเนิด แล้วนําไปทําการแปลด้วยตวัแปลภาษาซีเกิดเป็นโปรแกรม
ประสงค์ หลงัจากนันจึงนําโปรแกรมประสงค์ไปทําการเชือมโยง เพือให้เกิดเป็น
โปรแกรมทําการทีสามารถทํางานได้อยา่งรวดเร็ว
ขนัตอนที 1 เขียนโปรแกรม (SOURCE CODE)ขนัตอนที 2 คอมไพล์โปรแกรม (COMPILE)ขนัตอนที 3 เชือมโยงโปรแกรม (LINK)ขนัตอนที 4 ประมวลผล (RUN)
ขันตอนการพฒันาโปรแกรมภาษาซี
ขนัตอนที
1 เขียนโปรแกรม
(SOURC
E CO
DE)
ใช้ Program Editor เขียนโปรแกรมภาษาซี และทาํการบนัทกึไฟล์ให้มีนามสกุลเป็น .c เช่น Test.c
ขนัตอนที
2 คอมไพล์โปรแกรม
(COMPILE)
นํา Source Code จากขนัตอนที 1 มาทําการคอมไพล์ เพือแปลภาษาซีทีมนษุย์เข้าใจไปเป็นภาษาเครืองทีคอมพิวเตอร์เข้าใจได้ ขนัตอนนี
คอมไพล์เลอร์จะทําการตรวจสอบ source code วา่เกิดข้อผิดพลาดหรือไม่หากเกิดข้อผิดพลาด จะแจ้งให้ผู้ เขียนโปรแกรมทราบ ผู้ เขียนจะต้อง
กลบัไปแก้ไขโปรแกรม และทําการคอมไพล์โปรแกรมใหมอ่ีกครัง
หากไมพ่บข้อผิดพลาด คอมไพล์เลอร์จะแปลไฟล์ source cod จากภาษาซีไปเป็นภาษาเครือง (ไฟล์นามสกลุ .obj) เชน่ ถ้าไฟล์ source code ชือ test.c จะถกูแปลไปเป็นไฟล์ชือ test.obj ซงึเก็บภาษาเครืองไว้
คอมไพเลอร์ (compiler) เป็นตวัแปลภาษาอีกรูปแบบหนงึ มีหน้าทีหลกัคือการแปลภาษาโปรแกรมทีมนษุย์เขียนไปเป็นภาษาเครือง โดยจะทําการอา่นโปรแกรมภาษาซีทงัหมดตงัแตต่้นจนจบแล้วทําการแปลผลทีเดียว
อินเตอร์พรีเตอร์ (interpreter) ก็เป็นตวัแปลภาษาอีกรูปแบบหนงึเหมือนกนั แต่หลกัการทํางานจะแตกตา่งกนัออกไปคือ อินเตอร์พรีเตอร์จะทําการอา่นและแปลโปรแกรมทีละบนัทดั เมือแปลผลบรรทดัหนงึเสร็จก็จะทําตามคําสงัในบรรทดันนั แล้วจงึทําการแปลผลและทําตามคําสงัในบรรทดัถดัไป
ขนัตอนที
3 เชือมโยงโปรแกรม
(LINK)
จากขันตอนท ี2 ยังไม่สามารถนําไปใช้งานได้ แต่ต้องนํามา
เชือมโยง (link) ก่อน ซงึผลจากการเชือมโยงจะทาํให้ได้
executable program (ไฟล์นามสกุล .exe เช่น test.c) ที
สามารถนําไปใช้งานได้
ขนัตอนที
4 ประมวลผล (RUN)
เมือนํา executable program จากขันตอนท ี3 มา
ประมวลผลกจ็ะได้ผลลัพธ์ (output) ของโปรแกรมออกมา
โครงสร้างของโปรแกรมภาษาซี
แบง่ออกเป็น 3 สว่น คือ
1. สว่นหวัของโปรแกรม
2. สว่นของฟังก์ชนัหลกั
3. สว่นรายละเอียดของโปรแกรม
โครงสร้างของโปรแกรมภาษาซี
#include <stdio.h>main(){printf(“Hello World”);}
1.ส่วนหวัของโปรแกรม
ครูผู้สอน นายวรเทพ วันกาล
สว่นหวัโปรแกรม เรียกวา่ Preprocessing Directive ให้ระบุเพือบอกให้คอมไพเลอร์กระทําการใดๆ ก่อน #include <stdio.h>
2.ส่วนของฟังก์ชันหลัก
ครูผู้สอน นายวรเทพ วันกาล
หงัก์ชนัหลกัของภาษาซี คือ ฟังก์ชนั main() โปรแกรมภาษาซีทกุโปรแกรมจะต้องมีฟังก์ชันนีเสมอ โดยขอบเขตของฟังก์ชันจะถูกกําหนดด้วย
เครืองหมาย { และ } คือการทํางานของฟังก์ชนัจะเริมต้นด้วยทีเครืองหมาย { และสนิสดุทีเครืองหมาย }
3.ส่วนรายละเอียดของโปรแกรม
ครูผู้สอน นายวรเทพ วันกาล
เป็นสว่นของการเขียนคําสงั เพือให้โปรแกรมทํางานตามทีได้ออกแบบไว้
คอมเมนต์ในภาษาซี
ครูผู้สอน นายวรเทพ วันกาล
คอมเมนต์ (comment) คือ สว่นทีเป็นหมายเหตขุองโปรแกรม มีไว้
เพือให้ผู้ เขียนโปรแกรมใสข่้อความอธิบายกํากบัลงไปใน source code ซงึคอมไพเลอร์จะข้ามการแปลผลในสว่นทีเป็นคอมเมนต์นี ในภาษาซีมี 2 แบบ คือ
• คอมเมนต์แบบบรรทดัเดียว ใช้เครืองหมาย //
• คอมเมนต์แบบหลายบรรทดั ใช้เครืองหมาย /* และ*/
กฏการตงัชือ
ครูผู้สอน นายวรเทพ วันกาล
ภาษาซีมีกฏเกณฑ์ในการตงัชือให้กบั Identifier ซงึได้แก่ ตวัแปร, ฟังก์ชนั และเลเบล ดงันี
Auto Break Case Char Const
Default Do Double Else Enum
Short Signed Sizeof Extern Float
For Goto If Int Long
Return Register Continue While Static
Struct Switch Typedef Unon Unsigned
Void volatile
กฏการตงัชือ
ครูผู้สอน นายวรเทพ วันกาล
ชือต่างๆ ทีตงัจะเป็นแบบ case‐sensitive หมายความว่าอกัษร
ใหญ่กบัอกัษรเลก็ ถือวา่เป็นคนละตวักนั เช่น TEST, Test, test, tEsT ถือวา่เป็นคนละชือกนั
ชือจะต้องขึนต้นด้วยตวัอกัษรหรือเครืองหมาย underscore (_) เทา่นนั จะขนึต้นด้วยตวัเลขไม่ได้ แต่ภายในสามารถประกอบด้วยตวัเลข ตวัอกัษร
หรือเครืองหมาย underscore ได้ เช่น TEST_VALUE, HELLO123, h1_h2, _Notecyber
แบบฝึกหดั
ครูผู้สอน นายวรเทพ วันกาล
1. ขันตอนการพัฒนาโปรแกรมภาษาซี แบ่งออกเป็นกีขันตอน อะไรบ้าง จง
อธิบาย
2. จงบอกความแตกต่างระหว่างคอมไพเลอร์และอินเตอร์พรีเตอร์ ของตัว
แปลภาษาทงัสองชนิดนี
3. หากทําการตงัชือตวัแปรเป็น Variable, variable, VARIAble, VariaBLE คิดวา่ตวัแปรเหลา่นีเป็นตวัแปรเดียวกนัหรือไม ่อยา่งไร
4. พิจารณาชือต่อไปนี แล้วบอกว่าแต่ละตวัตงัชือได้ถูกต้องตามกฏการตงัชือ
ของภาษาซีหรือไม ่อยา่งไร
4.1 var_a#1 4.2 _func_1 4.3 var 14.4 FALSE 4.5 _1_2_3 4.6 1var_1