36
1 กกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกก “ กกกกกกกกกกก กกกกกกกกก ”

ประวัติภาษาซี

Embed Size (px)

Citation preview

Page 1: ประวัติภาษาซี

1

การเขี�ยนโปรแกรมคอมพิ�วเตอร�เบื้��องต�น

“ หลั�กการพิ��นฐานภาษาซี� ”

Page 2: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan22

C Programming

ว�ตถุ"ประสงค�เพิ�%อให�น�กเร�ยนร'�จั�กการเขี�ยนโปรแกรมแบื้บื้

โครงสร�างเพิ�%อให�น�กเร�ยนเขี�าใจัโครงสร�างโปรแกรมขีองภาษา C

เพิ�%อให�น�กเร�ยนทราบื้ถุ*งพิ��นฐานต+างๆ ขีองภาษา C

Page 3: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan33

C Programming

ทฤษฎี�ประว�ต�ภาษาซี�ค"ณลั�กษณะขีองภาษาซี�โครงสร�างขีองโปรแกรม

ภาษาซี�พิ��นฐานภาษาซี�

Page 4: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan44

C Programming

ภาษาซี�พั�ฒนาขึ้��นมาในปี� 1972 โดย Dennis Ritchie แห่�ง Bell Telephone Laboratories,

Inc . ( ปี�จจ�บั�นคื�อ AT&T Bell Laboratories) ต้!นกำ#าเน%ดมาจากำภาษา2 ภาษา คื�อ ภาษา BCPL และ

ภาษา B ภาษาซี�น��นถู)กำใช้!งานอย)� เพั�ยงใน Bell Laboratories

จนกำระทั่�-งปี� 1978 Brian Kernighan และRitchie น��นเปี.นทั่�-ร) !จ�กำกำ�นในช้�-อขึ้อง "K&R C"

ในกำลางปี� 1980 ภาษาซี�กำ/กำลายเปี.นภาษาทั่�-ได!ร�บัคืวามน%ยม

ประว�ต�ภาษาซี�

Page 5: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan55

C Programming

ประว�ต�ภาษาซี�(ต+อ)ภาษาซี�พิ�ฒนาขี*�นในป1 1972 โดย Dennis Ritchie แห+ง Bell Lab ซี*%งภาษาซี�ม�ต�นก3าหนดมาจัาก 2 ภาษา ค�อ ภาษา BCPL แลัะ ภาษา B

B1970

BCPL1967

CPL1963

ALGOL1960

C1972

Page 6: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan66

C Programming

ค"ณลั�กษณะขีองภาษาซี� (ท3าไมต�องภาษาซี� ในเม�%อม�ภาษาท�%ใช้�เขี�ยนโปรแกรมมากมาย)

เป6นภาษาการเขี�ยนโปรแกรมเพิ�%อใช้�งานท�%วไปจั�ดเป6นภาษาระด�บื้ส'ง(High-level Language)

ม�ความย�ดหย"+นในการท3างานส'ง เป6นการเขี�ยนโปรแกรมแบื้บื้โครงสร�างสน�บื้สน"นระบื้บื้คอมพิ�วเตอร�ได�กว�างขีวางสามารถุสน�บื้สน"นการท3างานในแบื้บื้ address แลัะ bitwise ส3าหร�บื้จั�ดการด�านฮาด�แวร�

ระบื้บื้ Unix ซี*%งเป6น Open Source พิ�ฒนามาโดยใช้�ภาษาซี�

เป6นพิ��นฐานท�%ด� ท�%จัะเร�ยนภาษาอ�%น ๆ ต+อไป เพิราะว+าภาษาซี�ไม+ม� Tools ช้+วยมาก เราต�องเขี�ยนเองเป6นส+วนใหญ่+

Page 7: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan77

C Programming

ร'�จั�ก Compiler แลัะ Editor

Editor ค�อ โปรแกรมท�%เราเอาไว�พิ�มพิ�โปรแกรม

Compiler ค�อ โปรแกรม / ต�วแปรภาษา จัากภาษาระด�บื้ส'ง ให�เป6น ภาษาเคร�%อง

โปรแกรม Turbo c++ 4.5 เป6นท��ง Editor แลัะ Compiler ในต�ว

น�กศึ*กษาค�ดว+า ม�การเขี�ยนภาษาซี� ท�% Editor ก�บื้ Compiler แยกก�นหร�อไม+ ???

Page 8: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan88

C Programming

ร'�จั�ก ภาษา C ก�บื้ C++CC

ภาษาโปรแกรมเช้�งโครงสร�าง Structure Programming *.c

C++C++ ภาษาโปรแกรมเช้�งว�ตถุ" Object-Oriented Programming *.cpp

ถุ�าเขี�ยนภาษา C แบื้บื้เช้�งโครงสร�างธรรมดา แลั�ว save ไฟลั�โดยม�นามสก"ลัเป6น .cpp ก<ได� Compiler ม�นยอม

Page 9: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan99

C Programming

Compile โปรแกรม เพิ�%อ

ให� Compiler

ช้+วยแปลัภาษาระด�บื้ส'ง

เป6นภาษาเคร�%อง

ไฟลั�ภาษาซี� ท�%พิวกเรา

เขี�ยนโปรแกรมขี*�น

มา

ไฟลั� Execute (exe)

ท�%เอาไปใช้�งานได�

หลั�กการพิ��นฐาน เก�%ยวก�บื้ ไฟลั�ภาษาซี� แลัะ ไฟลั�ท�%เอาไปใช้�งานได�

File.cFile.c CompileCompile File.exeFile.exe

Page 10: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan1010

C Programming

ท3าไมไม+สอนโปรแกรม ประเภท Visualน�กศึ*กษาอาจัเคยได�ย�น เคร�%องม�อช้+วยพิ�ฒนาโปรแกรม

ประเภท Visual เช้+น Visual Studio ท�%ประกอบื้ไปด�วย Visual C++ Visual C# Visual Basic Visual J#

ท3าไมไม+เร�ยนอ�นน��น ???????

Page 11: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan1111

C Programming

โครงสร�างขีองโปรแกรมภาษาซี�โปรแกรมภาษาซี�ม�ลั�กษณะเป6นฟ=งก�ช้�นอาจัม�ฟ=งก�ช้�นเด�ยวหร�อหลัายฟ=งก�ช้�นก<ได� แต+ลัะฟ=งก�ช้�นจัะประกอบื้ด�วยช้�%อฟ=งก�ช้�นแลัะต�ว

ฟ=งก�ช้�นท�%ป>ดด�วยเคร�%องหมาย { แลัะ } ในโปรแกรมภาษาซี�จัะต�องม�ฟ=งก�ช้�นช้�%อ main

แลัะม�เพิ�ยงฟ=งก�ช้�นเด�ยว โดยจัะเร�%มท3างานจัากฟ=งก�ช้�น main ก+อน ส+วนฟ=งก�ช้�นอ�%นๆจัะก3าหนดไว�ก+อนหร�อหลั�งฟ=งก�ช้�น main ก<ได�

Page 12: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan1212

C Programming

ร'ปแบื้บื้ฟ=งก�ช้�นประกอบื้ด�วย

1111Function Heading ค�อ ส+วนห�วขีองฟ=งก�ช้�%น จัะอย'+ส+วนบื้นส"ดขีองโปรแกรม

2222Variable Declaration ค�อ ส+วนขีองการประกาศึต�วแปร ท�%จัะใช้�งานในโปรแกรม

3333Compound Statement ค�อ ส+วนขีองค3าส�%งต+าง ๆ ท�%ผู้'�เขี�ยนโปรแกรมต�องการส�%งให�โปรแกรมท3างาน (statement=ค3าส�%ง ,compound=หลัาย ๆ ต�ว)

Page 13: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan1313

C Programming

ร'ปโครงสร�างโปรแกรม

#include <stdio.h> /* Library File Access */

main() /* Function Heading */{ int i; /* Variable Declaration */ printf(“This is struture of C language”); /* Statement */}

Page 14: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan1414

C Programming

หลั�ก ในการเขี�ยนโปรแกรมภาษาซี�

ท"กค3าส�%ง(statement) จัะต�องอย'+ภายในเคร�%องหมายวงเลั<บื้ป1กกา ค�อ { แลัะ } ขีองแต+ลัะฟ=งก�ช้�น

ในแต+ลัะค3าส�%งน��น จัะต�องถุ'กป>ดด�วยเคร�%องหมายเซีม�โคลัอน (;)

ค3าส�%งเช้�งซี�อน (Compound statement) จัะต�องเขี�ยนภายในเคร�%องหมายป1กกา

Page 15: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan1515

C Programming

การเขี�ยนค3าอธ�บื้ายโปรแกรม (Comment)

ส�%งท�%เป6นค3าอธ�บื้ายโปรแกรม ม�ไว�เพิ�%อการอธ�บื้ายท�%ผู้'�เขี�ยนโปรแกรมต�องการเขี�ยนไว� ก�นลั�ม เน�นให�เห<นส+วนส3าค�ญ่ขีองโปรแกรม ใช้�อธ�บื้ายตรรกะท�%ใช้�ในการเขี�ยนโปรแกรม หร�อ อ�%น ๆ เช้+น เอาไว� Debug โปรแกรม

ซี*%งเราก<จัะเขี�ยนม�นลังไปในไฟลั�ภาษาซี�ด�วยก�นน�� แต+เราจัะใส+เคร�%องหมายเพิ�%มเต�มลังไป เพิ�%อระบื้"ว+า ส+วนน��ค�อ Comment ซี*%ง Compiler หร�อต�วแปรภาษา ไม+ต�องสนใจัส+วนน��

Page 16: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan1616

C Programming

Comment เขี�ยนได� 2 แบื้บื้

เขี�ยน Comment อย'+ภายในเคร�%องหมาย /* แลัะ */

เขี�ยน Comment อย'+หลั�งเคร�%องหมาย // ในแต+ลัะบื้รรท�ด

Page 17: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan1717

C Programming

ต�วอย+างการเขี�ยน Comment

#include <stdio.h>

main() // Function Heading { int i; printf(“This is struture of C language”); // this is statement}

Page 18: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan1818

C Programming

ต�วอย+างการเขี�ยน Comment

/*my first program by Jakkapan Madeetrakulhahahaha

*/#include <stdio.h>

/* the comment comment comment */

main(){ int i; printf(“This is struture of C language”); }

ใช้� 2 แบื้บื้ปน ๆ ก�นในไฟลั�เด�ยวก�นก<ได�

Page 19: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan1919

C Programming

พิ��นฐานภาษาซี� The C Character Set Identifiers and Keywords Data Types Constants Variables and Arrays Declarations Expressions Statements Symbolic Constants

Page 20: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan2020

C Programming

The C Character Set เป6นลั�กษณะขีองกลั"+มต�วอ�กขีระท�%ใช้�ในภาษาซี�ซี*%งประกอบื้ด�วยต�วอ�กษร A-Z ท��งต�ว

ใหญ่+แลัะต�วเลั<ก ต�วเลัขี 0-9 แลัะต�วอ�กขีระพิ�เศึษ เพิ�%อมาใช้�ในโปรแกรม (เช้+น ค+าคงท�% ต�วแปร ต�วด3าเน�นการ น�พิจัน� เป6นต�น) โดยม�อ�กขีระพิ�เศึษ ด�งต+อไปน��

แลัะย�งม�ต�วอ�กขีระแบื้บื้พิ�เศึษอ�กแบื้บื้เร�ยกว+า escape sequence จัะถุ'กน3าหน�าด�วยเคร�%องหมาย \ เช้+น \n, \b, \t เป6นต�น

! * + \ “ <# ( = | { >% ) ~ ; } /^ - [ : , ?& _ ] ‘ . (blank)

Page 21: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan2121

C Programming

Identifiers and Keywords เป6นการต��งช้�%อเพิ�%อน3าไปใช้�งานในโปรแกรมอาจัเป6น

ช้�%อต�วแปร ฟ=งก�ช้�น แลัะอ�%นๆ โดยช้�%อจัะประกอบื้ด�วยต�วอ�กษรแลัะต�วเลัขี ซี*%งปกต�ต�วแรกจัะเป6นต�วอ�กษร (ต�วพิ�มพิ�ใหญ่+ ก�บื้ พิ�มพิ�เลั<ก เป6นคนลัะต�วก�น ให�ระว�งด�วย เวลัาใช้�งาน) เสมอส+วนลั3าด�บื้ถุ�ดมาเป6นอะไรก<ได� สามารถุใช้�เป6นต�วเลั<กหร�อต�วใหญ่+ได� หร�ออาจัใช้� (_) ในการต��งช้�%อก<ได�แต+ไม+น�ยม แลัะช้�%อท��งหมดท�%ต��งห�ามไปซี3�าก�บื้กลั"+ม Keyword

ต�วอย+างx y12 sum_1 Namestax_rate TABLE

Page 22: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan2222

C Programming

ตาราง Keyword ในภาษาซี� auto default float register switch

break do for return typedef

case double goto short union

char else if signed unsigned

const enum int sizeof void

continue extern long static volatile

struct while

Page 23: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan2323

C Programming

Data Types เป6นประเภทขีองขี�อม'ลัท�%สามารถุก3าหนดให�ก�บื้ต�วแปร

ได� แลัะใช้�ต�วควอลั�ไฟเออร� (Qualifier) ได�แก+ short long signed แลัะ unsigned ในการก3าหนดประเภทขี�อม'ลัเพิ�%มเต�มจัากมาตรฐาน

ในส+วนขีองขีนาด ว+า ประเภทขี�อม'ลัช้น�ดน�� ใช้�ก�%ไบื้ต�ในการเก<บื้ บื้างคร��งก<อาจัส'งกว+าน�� ขี*�นอย'+ก�บื้ร"+น (Version) ขีองต�วแปรภาษาหร�อ Compiler เช้+น int ใช้� 2 bytes ในการเก<บื้ ถุ�าเป6น Compiler ร"+นใหม+ ๆ อาจัเป6น 4 bytes เป6นต�น (1 byte ม� 8 bits) น�กศึ*กษาลัองค�ดด'ว+า ถุ�าขีนาดม�นมากขี*�น ประโยช้น�ท�%เราจัะได� ค�อ อะไร?

Page 24: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan2424

C Programming

Data Types

ประเภทขี�อม'ลั ค3าอธ�บื้าย ขีนาด (ไบื้ต�)int ต้�วเลขึ้จ#านวนเต้/ม 2

float ต้�วเลขึ้ทั่ศน%ยม 4

double ต้�วเลขึ้ทั่ศน%ยม 8

char ต้�วอ�กำษร 1 ต้�ว 1

short ต้�วเลขึ้จ#านวนเต้/ม 1

long ต้�วเลขึ้จ#านวนเต้/ม 4

unsigned ต้�วเลขึ้จ#านวนเต้/ม 2

Page 25: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan2525

C Programming

Constants

สตร�ง (“ ”)

จั3านวนเต<ม ทศึน�ยม

ต�วอ�กขีระ (‘ ’)

ม� 4 ประเภท

การก3าหนดค+าคงท�%ให�ก�บื้ต�วแปร

Page 26: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan2626

C Programming

Variables and Arrays

เป6นการก3าหนดช้�%อต�วแปรในการอ�างอ�งถุ*งขี�อม'ลัต+างๆ ท�%เก<บื้อย'+ตามประเภทขี�อม'ลัท�%ก3าหนดให�

Page 27: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan2727

C Programming

Declarations เป6นการประกาศึต�วแปรต+างๆ ท�%ใช้�งานใน

โปรแกรมโดยม�ร'ปแบื้บื้การก3าหนด ค�อ ประเภทขี�อม'ลั ช้�%อต�วแปร,ช้�%อต�วแปร, …; ประเภทขี�อม'ลั ช้�%อต�วแปรอะเรย�[ขีนาด],ช้�%อ

ต�วแปรอะเรย�[ขีนาด], …;ต�วอย+างต�วอย+าง

int math, eng; char name[10]; int total=0; float average = 0.0 ; char subject[10]=”computer”;

Page 28: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan2828

C Programming

Expressions

a + b x = y c = a + b x == y ++i

เป6นการสร�างน�พิจัน�ท�%แทนขี�อม'ลั 1 ต�ว อาจัเป6นต�วเลัขี ต�วอ�กษร โดยน�พิจัน�อาจัเประกอบื้ด�วย ต�วแปร ค+าคงท�% อะเรย� หร�อการเร�ยกใช้�ฟ=งก�ช้�น เป6นต�น หร�อม�ต�วด3าเน�นการร+วมอย'+ก<ได�

Page 29: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan2929

C Programming

Statements

3 3 แบับัแบับั

ค3าส�%งเช้�งซี�อน (compound statement)

ค3าส�%งน�พิจัน� (expression statement)

ค3าส�%งควบื้ค"ม (control statement)

เป6นค3าส�%งท�%ใช้�ส�%งคอมพิ�วเตอร�ให�ท3างาน

Page 30: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan3030

C Programming

Symbolic Constants

#define X 153#define text “Turbo C”

เป6นการก3าหนดค+าคงท�%ส�ญ่ลั�กษณ� ค�อ ช้�%อท�%ใช้�แทนกลั"+มขีองต�วอ�กขีระ ซี*%งอาจัเป6นค+าคงท�%ต�วเลัขี ค+าคงท�%ต�วอ�กษร หร�อค+าคงท�%สตร�งก<ได� แลั�วสามารถุใช้�ช้�%อท�%ก3าหนดน��ในโปรแกรมได� ม�ร'ปแบื้บื้ด�งน��

มาถุ*งจั"ดน�� น�กศึ*กษาลัองค�ดด'คร�บื้ว+า ต�วแปร (Variable) ก�บื้ ค+าคงท�% (Constant) แตกต+างก�นอย+างไร ?, ในโปรแกรมน+าจัะใช้�อะไรมากกว+าก�น ?, แลัะ Constant ม�ประโยช้น�อย+างไร ?

Page 31: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan3131

C Programming

การทดลัอง

/* This first example program for C */#include <stdio.h>main(){

printf("Hello, Welcome to C Language");}

1

Page 32: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan3232

C Programming

การทดลัอง

/* Example for C */#include <stdio.h>main(){

int i , area = 0;float sum;char c;c = ‘B’; i = 5; printf("\n") ;printf("Value i = %d and area = %d\n", i, area);printf("Value sum = %f and c = %c", sum, c) ;

}

2

Page 33: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan3333

C Programming

การทดลัอง#include <stdio.h>#define fifty 50#define Text ‘C’main(){

int a , b ;float total;char c , name[10]=”Turbo C”;c = 65; a = 44; b = 56; total = 1500;printf("\n c = %d and c = %c", c, c) ;printf("\n a + b = %d and b - a = %d", a+b, b-a);

printf("\n total / 50 = %f", total/fifty) ; printf("\n %s %c", name , Text) ;}

3

Page 34: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan3434

C Programming

การทดลัอง

/* program to calculate area of a circle */#include <stdio.h>#define PI 3.14159main(){

float radius, area ;printf("Radius = ?") ;scanf("%f", &radius) ;area = PI * radius * radius;printf("Area = %f ", area) ;

}

4

Page 35: ประวัติภาษาซี

www.vu.ac.th/

~jakkapan3535

C Programming

การทดลัอง#include <stdio.h>

main(){

char f_name[20], l_name[30];

printf("Enter your first name : ") ;scanf("%s", f_name) ;

printf("Enter your last name : ") ;scanf("%s", l_name) ;

printf("Your name : %s %s",f_name,l_name) ;}

5

Page 36: ประวัติภาษาซี

36

Click to edit company slogan .