บทท 2
ความรพนฐานของภาษาซ
จดประสงคการเรยนร
1 รเกยวกบประวตและความเปนมาของภาษาซ 1.1 บอกระดบของภาษาคอมพวเตอร 1.2 บอกความเปนมาของภาษาซ 1.3 บอกความหมายของการแปลภาษา
2 มทกษะสวนประกอบและการท างานของภาษาซ 2.1 เขยนค าสง Preprocessor directive header file 2.2 เขยนค าสงสวน Body block 2.3 เขยนค าสงสวน Comment block
เนอหาสาระ
1. ประวตความเปนมา
• ระดบของภาษา • ความเปนมาของภาษาซ • ความหมายของการแปลภาษา 2. สวนประกอบและการท างานของภาษาซ
• Preprocessor directive header file • Body block • Comment block
1.1 ระดบของภาษาคอมพวเตอร
• ภาษาระดบสง (High Level Language) เปนภาษาทใกลเคยงกบภาษามนษยมากทสด ท าใหสามารถท าความเขาใจ ไดงาย เชน ภาษา BASIC, Pascal, FORTRAN, C ฯลฯ
• ภาษาระดบต า (Low Level Language) เปนภาษาทใกลชดกบเครองคอมพวเตอรมาก เครองคอมพวเตอรสามารถเขาใจค าสงในภาษานนไดงาย ซงอาจจะมการแปลเปนภาษาเครองหรอไมกได
1.1 ระดบของภาษาคอมพวเตอร
ภาษาเครอง (machine Language) อยในรปเลขฐานสอง ซงคอมพวเตอร
สามารถเขาใจไดทนท
เชน 01011100 10100110 01110111
ภาษา Assembly (Assembly Language) หรอภาษาสญลกษณ (Symbolic language) จะอยในรปของสญลกษณซงเขาใจไดงายกวาภาษาเครอง เชน
MOV L,M
PUSH H
1.2 ความเปนมาของภาษาซ
• ภาษาซไดรบการพฒนาขนโดย เดนนส รทช (Dennis Ritchie) ขณะทท างานอยทเบลแลบบอราทอร (Bell Laboratories) โดยพฒนาขนจากหลกการพนฐานของภาษาบ (B) และบซพแอล (BCPL) ในชวงป ค.ศ.1971 ถง 1973 โดยไดเพมชนดขอมลและความสามารถอน ๆ ใหมากขน
1.2 ความเปนมาของภาษาซ
ภาษาซเปนภาษาเชงโครงสรางทมการออกแบบโปรแกรมในลกษณะโมดลคอมการแบงออกเปนสวนยอยๆ เรยกวา ฟงกชน โดยมจดเดนในเรอง
• ประสทธภาพดานความเรวของการท างาน
• ความยดหยนสงในการเขยนโปรแกรม
1.2 ความเปนมาของภาษาซ ภาษา C จดเปนภาษาระดบสง เพราะตวค าสงตางๆสวนใหญจะใกลเคยงกบภาษามนษย แตกมจะมบางค าส งทมลกษณะคลายกบสญลกษณคอ ท าความเขาใจไดคอนขางยาก ดงนนเราอาจจดไดวา ภาษา C เปนภาษาระดบสงทอยต าทสด
หมายเหต ในต าราบางเลมอาจจดใหภาษา C เปนภาษาระดบกลาง (Medium Level Language หรอ High-Low Level Language)
1.3 การแปลภาษา
ในการเขยนโปรแกรมคอมพวเตอร ดวยภาษาระดบต าหรอระดบสง จะตองเปลยนภาษานนใหเปนภาษาเครอง เพอใหเครองคอมพวเตอรท างานได
โปรแกรมตนฉบบ (Source Program)
โปรแกรมทเครองท างานได (Executable Program)
การเขยนโปรแกรมดวยแอสเซมบล (ภาษาระดบต า) เปนภาษาเครอง
ขนตอนการแปลงภาษาซเปนภาษาเครอง
Source Program
Compile Machine Language
1.3 การแปลภาษา
การเขยนโปรแกรมดวยภาษาระดบสงเปนภาษาเครอง
อนเทอรพรเตอร (Interpreter)
คอมไพเลอร (Compiler)
Source Program Interpreter Machine Language
แปลทละบรรทด
Source Program Compiler Machine Language
แปลททงโปรแกรม
1.3 การแปลภาษา
การท างานของภาษาซ
• จดท าโปรแกรมตนฉบบ(Source Program) โดยบนทกไฟลเปนนามสกล .c
• แปลงรหสค าสงเปนภาษาเครอง(Compile) ซงจะไดไฟลนามสกล . obj
• การเชอมโยงโปรแกรม(Link) เปนการเชอมโยงโปรแกรมกบไลบราร ซงจะเปนผลใหเกดไฟล .exe SOURCE FILE
COMPILE
LINK
RUN
1.3 การแปลภาษา
SourceFile Compile Link Run
Test.c Test.obj Test.ilk Test.exe
กระบวนการแปลรหส
2. สวนประกอบของภาษาซ
/*Program : FirstProgram.CPP Written by: Miss.Wimolsree
Date : 05/2014 */
หมายเหตหรอค าอธบาย
#include <stdio.h>
Preprocessor,Directive,header file
void main() Function main()
{ printf (“test my first program”); printf(“”); }
Statement
2.1 Preprocessor Directive Header File • Preprocessor,Directive,Header File
ใชระบ ไฟล header ทควบคมการท างานของฟงกชนมาตรฐานไฟล header จะมนามสกลเปน .h
#include<stdio.h>
Preprocessor Directive
Header File
2.1 Preprocessor Directive Header File
• รปแบบการเขยน
#include <stdio.h>
#include “stdio.h”
หรอ
คนหาไฟลจากไดเรคทอรทใชส าหรบเกบเฮดเดอรไฟล
โดยเฉพาะ (ปกตชอ include)
คนหาไฟลจากไดเรคทอรเดยวกนกบ SourceCode ถาไมพบจะไป
หาทไดเรคทอรทเกบเฮดเดอรไฟลโดยเฉพาะ
2.1 Preprocessor Directive Header File
• การสงให Compiler น า สงทอยในไฟลทก าหนดชอมาให คอไฟล stdio.h มารวมกบ source file ขณะท าการ link เพอใหได Executable file นนหมายความวา ในโปรแกรมทเราสรางขน ไดมการเรยกใชฟงกชนทถกเกบไวใน Header File นน
Library
stdio.h
iostream.h
math.h
Firstprogram.c
include
2.1 Preprocessor Directive Header File • FOLDER “include”
2.1 Preprocessor Directive Header Fileตวอยาง header
ถามการเรยกใชฟงกชน getch() ในโปรแกรม จะตองเขยน preprocessor directive เรยกใช header file ทชอ conio.h
เนองจากฟงกชน getch() ถกเกบไวในไฟล conio.h ซงเปนคลงค าสง (Library) ของ C
#include <conio.h>
2.1 Preprocessor Directive Header Fileขอสงเกต
• การเขยน preprocessor directive จะตองเขยนรายการละ 1 บรรทด
• ไมตองมเครองหมาย ; ททายประโยค
#include<stdio.h>
2.2 Body Block
• void main()
เปนฟงกชนหลกของโปรแกรม ทกโปรแกรมจะตองม
• สวนประกอบ
int main()
{
return 0;
}
void main()
{
}
หรอ
Function
Call
0
Function
Call
2.3 Comment Block Comment การอธบายหรอหมายเหตในโปรแกรม เขยนอธบายไวในเครองหมาย
/*………*/ หรอเขยนตามหลงเครองหมาย // กได ในขณะทแปล Compiler ของ C จะไมน า ไปแปลดวย แตตองเขยน Comments อยภายในเครองหมายใหถกตอง โดยท
1. /*…..*/ Comment หลาย ๆ บรรทด
2. // ใช Comment หลง Statement
2.3 Comment Block (ตวอยาง)
Comment
/*Program : FirstProgram.C Written by: Miss Wimolsree Date : 05/2014*/
printf (“test my first program”); //display text to screen
2.3 Comment Block (ขอสงเกต)
• ไมควรเขยนคอมเมนตซอนคอมเมนต
/*Comment 1*/ /*Comment 2*/ /*Comment 3*/
/*Comment 1 /*Comment 2*/ Comment 3*/
แบบท 1
แบบท 2
ตวอยาง
#include < stdio.h >
void main()
{ int money; float money_tax,TAX; money = 1000; TAX = 0.07; money_tax = money * TAX; printf("value of money = %d\n",money); printf("value of tax = %.2f\n",money_tax ); }
Recommended