ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/chapter2.pdf1.2...

25
บทที 2 ความรู ้พื ้นฐานของภาษาซี

Upload: others

Post on 22-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

บทท 2

ความรพนฐานของภาษาซ

Page 2: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

จดประสงคการเรยนร

1 รเกยวกบประวตและความเปนมาของภาษาซ 1.1 บอกระดบของภาษาคอมพวเตอร 1.2 บอกความเปนมาของภาษาซ 1.3 บอกความหมายของการแปลภาษา

2 มทกษะสวนประกอบและการท างานของภาษาซ 2.1 เขยนค าสง Preprocessor directive header file 2.2 เขยนค าสงสวน Body block 2.3 เขยนค าสงสวน Comment block

Page 3: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

เนอหาสาระ

1. ประวตความเปนมา

• ระดบของภาษา • ความเปนมาของภาษาซ • ความหมายของการแปลภาษา 2. สวนประกอบและการท างานของภาษาซ

• Preprocessor directive header file • Body block • Comment block

Page 4: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

1.1 ระดบของภาษาคอมพวเตอร

• ภาษาระดบสง (High Level Language) เปนภาษาทใกลเคยงกบภาษามนษยมากทสด ท าใหสามารถท าความเขาใจ ไดงาย เชน ภาษา BASIC, Pascal, FORTRAN, C ฯลฯ

• ภาษาระดบต า (Low Level Language) เปนภาษาทใกลชดกบเครองคอมพวเตอรมาก เครองคอมพวเตอรสามารถเขาใจค าสงในภาษานนไดงาย ซงอาจจะมการแปลเปนภาษาเครองหรอไมกได

Page 5: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

1.1 ระดบของภาษาคอมพวเตอร

ภาษาเครอง (machine Language) อยในรปเลขฐานสอง ซงคอมพวเตอร

สามารถเขาใจไดทนท

เชน 01011100 10100110 01110111

ภาษา Assembly (Assembly Language) หรอภาษาสญลกษณ (Symbolic language) จะอยในรปของสญลกษณซงเขาใจไดงายกวาภาษาเครอง เชน

MOV L,M

PUSH H

Page 6: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

1.2 ความเปนมาของภาษาซ

• ภาษาซไดรบการพฒนาขนโดย เดนนส รทช (Dennis Ritchie) ขณะทท างานอยทเบลแลบบอราทอร (Bell Laboratories) โดยพฒนาขนจากหลกการพนฐานของภาษาบ (B) และบซพแอล (BCPL) ในชวงป ค.ศ.1971 ถง 1973 โดยไดเพมชนดขอมลและความสามารถอน ๆ ใหมากขน

Page 7: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

1.2 ความเปนมาของภาษาซ

ภาษาซเปนภาษาเชงโครงสรางทมการออกแบบโปรแกรมในลกษณะโมดลคอมการแบงออกเปนสวนยอยๆ เรยกวา ฟงกชน โดยมจดเดนในเรอง

• ประสทธภาพดานความเรวของการท างาน

• ความยดหยนสงในการเขยนโปรแกรม

Page 8: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

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

หมายเหต ในต าราบางเลมอาจจดใหภาษา C เปนภาษาระดบกลาง (Medium Level Language หรอ High-Low Level Language)

Page 9: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

1.3 การแปลภาษา

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

โปรแกรมตนฉบบ (Source Program)

โปรแกรมทเครองท างานได (Executable Program)

การเขยนโปรแกรมดวยแอสเซมบล (ภาษาระดบต า) เปนภาษาเครอง

ขนตอนการแปลงภาษาซเปนภาษาเครอง

Source Program

Compile Machine Language

Page 10: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

1.3 การแปลภาษา

การเขยนโปรแกรมดวยภาษาระดบสงเปนภาษาเครอง

อนเทอรพรเตอร (Interpreter)

คอมไพเลอร (Compiler)

Source Program Interpreter Machine Language

แปลทละบรรทด

Source Program Compiler Machine Language

แปลททงโปรแกรม

Page 11: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

1.3 การแปลภาษา

การท างานของภาษาซ

• จดท าโปรแกรมตนฉบบ(Source Program) โดยบนทกไฟลเปนนามสกล .c

• แปลงรหสค าสงเปนภาษาเครอง(Compile) ซงจะไดไฟลนามสกล . obj

• การเชอมโยงโปรแกรม(Link) เปนการเชอมโยงโปรแกรมกบไลบราร ซงจะเปนผลใหเกดไฟล .exe SOURCE FILE

COMPILE

LINK

RUN

Page 12: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

1.3 การแปลภาษา

SourceFile Compile Link Run

Test.c Test.obj Test.ilk Test.exe

กระบวนการแปลรหส

Page 13: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

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

Page 14: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

2.1 Preprocessor Directive Header File • Preprocessor,Directive,Header File

ใชระบ ไฟล header ทควบคมการท างานของฟงกชนมาตรฐานไฟล header จะมนามสกลเปน .h

#include<stdio.h>

Preprocessor Directive

Header File

Page 15: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

2.1 Preprocessor Directive Header File

• รปแบบการเขยน

#include <stdio.h>

#include “stdio.h”

หรอ

คนหาไฟลจากไดเรคทอรทใชส าหรบเกบเฮดเดอรไฟล

โดยเฉพาะ (ปกตชอ include)

คนหาไฟลจากไดเรคทอรเดยวกนกบ SourceCode ถาไมพบจะไป

หาทไดเรคทอรทเกบเฮดเดอรไฟลโดยเฉพาะ

Page 16: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

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

Page 17: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

2.1 Preprocessor Directive Header File • FOLDER “include”

Page 18: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี
Page 19: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

2.1 Preprocessor Directive Header Fileตวอยาง header

ถามการเรยกใชฟงกชน getch() ในโปรแกรม จะตองเขยน preprocessor directive เรยกใช header file ทชอ conio.h

เนองจากฟงกชน getch() ถกเกบไวในไฟล conio.h ซงเปนคลงค าสง (Library) ของ C

#include <conio.h>

Page 20: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

2.1 Preprocessor Directive Header Fileขอสงเกต

• การเขยน preprocessor directive จะตองเขยนรายการละ 1 บรรทด

• ไมตองมเครองหมาย ; ททายประโยค

#include<stdio.h>

Page 21: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

2.2 Body Block

• void main()

เปนฟงกชนหลกของโปรแกรม ทกโปรแกรมจะตองม

• สวนประกอบ

int main()

{

return 0;

}

void main()

{

}

หรอ

Function

Call

0

Function

Call

Page 22: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

2.3 Comment Block Comment การอธบายหรอหมายเหตในโปรแกรม เขยนอธบายไวในเครองหมาย

/*………*/ หรอเขยนตามหลงเครองหมาย // กได ในขณะทแปล Compiler ของ C จะไมน า ไปแปลดวย แตตองเขยน Comments อยภายในเครองหมายใหถกตอง โดยท

1. /*…..*/ Comment หลาย ๆ บรรทด

2. // ใช Comment หลง Statement

Page 23: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

2.3 Comment Block (ตวอยาง)

Comment

/*Program : FirstProgram.C Written by: Miss Wimolsree Date : 05/2014*/

printf (“test my first program”); //display text to screen

Page 24: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.2 บอกความเป็นมาของภาษาซี

2.3 Comment Block (ขอสงเกต)

• ไมควรเขยนคอมเมนตซอนคอมเมนต

/*Comment 1*/ /*Comment 2*/ /*Comment 3*/

/*Comment 1 /*Comment 2*/ Comment 3*/

แบบท 1

แบบท 2

Page 25: ความรู้พืน้ฐานของภาษาซีwcalab.com/course/wp-content/uploads/2015/01/Chapter2.pdf1.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 ); }