Upload
quy-hoang
View
221
Download
0
Embed Size (px)
DESCRIPTION
Tin Dai Cuong
Citation preview
1TRNG I HC BCH KHOA H NIVIN CNG NGH THNG TIN V TRUYN THNG
TIN HC I CNGBi 6. Tng quan v ngn ng C
Ni dung
6.1. Lch s pht trin
6.2. Cc phn t c bn ca ngn ng C
6.3. Cu trc c bn ca chng trnh C
6.4. Bin dch chng trnh C
6.5. Trnh bin dch Turbo C++
2
Ni dung
6.1. Lch s pht trin
6.2. Cc phn t c bn ca ngn ng C
6.3. Cu trc c bn ca chng trnh C
6.4. Bin dch chng trnh C
6.5. Trnh bin dch Turbo C++
3 4
6.1. Lch s pht trin
Ra i ti phng th nghim BELL ca tp on AT&T (Hoa K)
Do Brian W. Kernighan v Dennis M. Ritchie pht trin vo u 1970, hon thnh 1972
C da trn nn cc ngn ng BCPL (Basic Combined Programming Language) v ngn ng B.
Tn l ngn ng C nh l s tip ni ngn ng B.
26.1. Lch s pht trin
c im ca ngn ng lp trnh C
Ngn ng lp trnh h thng
Tnh kh chuyn, linh hot cao
C th mnh trong x l d liu s, vn bn,c s d liu
C thng c s dng vit ccchng trnh h thng
H iu hnh Unix c 90% m C, 10% hpng
Cc trnh iu khin thit b (device driver)
X l nh 55 6
6.1. Lch s pht trin
1978: C c gii thiu trong phin bn u ca cun sch "The C programming language"
Sau , C c b sung thm nhng tnh nngv kh nng mi ng thi tn ti nhiu phin bn nhng khng tng thch nhau.
Nm 1989, Vin tiu chun quc gia ca Hoa K (American National Standards Institute - ANSI) cng b phin bn chun ha ca ngn ng C: ANSI C hay C chun hay C89
6.1. Lch s pht trin
Cc phin bn ngn ng C
ANSI C: C chun (1989)
Cc phin bn khc thng b sung thmth vin ca ANSI C
Hin nay cng c nhiu phin bn ca ngn ngC khc nhau, gn lin vi mt b chng trnhdch c th ca ngn ng C
Turbo C++ v Borland C++ ca Borland Inc.
MSC v VC ca Microsoft Corp.
GCC ca GNU project
77
Ni dung
6.1. Lch s pht trin
6.2. Cc phn t c bn ca ngn ng C
6.3. Cu trc c bn ca chng trnh C
6.4. Bin dch chng trnh C
6.5. Trnh bin dch Turbo C++
8
3V d
#include
#include
void main(){
printf(Hello World\n);
getch();
}
9
6.2.1. Tp k t
Tp k t l tp cc phn t c bn to nn chng trnh
T hp cc k t t
Lin kt cc t theo c php cu lnh
T chc cc cu lnh chng trnh
V d:
include, void, main
printf(), getch();
10
6.2.1. Tp k t
Tp k t trong C
26 ch ci hoa:A B C ... X Y Z
26 ch ci thng:a b c x y z.
10 ch s: 0 1 2 3 4 5 6 7 8 9.
Cc k hiu ton hc:+ - * / = < >
Cc du ngn cch: . ; , : space tab
Cc du ngoc:( ) [ ] { }
Cc k hiu c bit:_ ? $ & # ^ \ ! ~ .v.v.
11
6.2.2. T kha
T kha (keyword)
C sn trong mi ngn ng lp trnh
Dnh ring cho cc mc ch xc nh
t tn cho kiu d liu: char, int, float, double
M t cc lnh, cc cu trc lp trnh: if, else, switch, case, while, do
Ch :
Tt c t kha trong C u vit bng ch ci thng
12
46.2.2. T kha
T kha hay dng trong Turbo C
13
6.2.3. nh danh
nh danh (Identifier hoc cn gi l Tn) l mt dy cc k t dng gi tn cc i tng trong chng trnh.
Cc i tng trong chng trnh Bin
Hng s
Hm
Kiu d liu (s lm quen cc mc sau)
nh danh c th c t bi Ngn ng lp trnh cc t kha
Ngi lp trnh14
6.2.3. nh danh
Quy tc t tn nh danh trong C
Cc k t c s dng: ch ci, ch s v du gch di _ (underscore)
Bt u ca nh danh phi l ch ci hoc du gch di _, khng c bt u nh danh bng ch s.
nh danh do ngi lp trnh t khng c trng vi cc t kha ca C
Ch : C l ngn ng c phn bit ch hoa v ch thng
15
6.2.3. nh danh
V d
nh danh hp l:
i, x, y, a, b, _function, _MY_CONSTANT, PI, gia_tri_1
nh danh khng hp l
1_a, 3d, 55x (bt u bng ch s)
so luong, ti le (c du cch - k t khng hp l)
int, char (trng vi t kha ca ngn ng C)
16
56.2.3. nh danh
Mt s quy c (code convention) Nn s dng du gch di hoc vit hoa phn
tch cc nh danh gm nhiu t
nh danh nn c tnh gi nh
Quy c thng c s dng:
Hng s dng ch ci hoa
Cc bin, hm, cu trc dng ch ci thng
V d
nh danh Loi i tng
HANG_SO_1, CONSTANT_2 Hng s
a, b, i, j, count Bin
nhap_du_lieu, tim_kiem, xu_li Hm
sinh_vien, mat_hang Cu trc17
Sohoanhao
SOHOANHAO
so_hoan_hao
SoHoanHao
SoHoAnhAo
18
6.2.4. Cc kiu d liu
nh ngha:
Kiu d liu cho bit cch lu tr d liu trong b nh, di gi tr v cc php ton c th thc hin trn d liu.
V d:
Kiu d liu int (s nguyn) trong C
Mt d liu thuc kiu d liu int
L mt s nguyn c du
2 byte
Nhn gi tr t t - 32,768 (- 215) n 32,767 (215 - 1)
19
6.2.4. Cc kiu d liu
V d (tip) Mt s php ton c nh ngha trn kiu d liu
int ca C
Tn php ton K hiu
o du -
Cng +
Tr -
Nhn *
Chia ly phn nguyn /
Chia ly phn d %
So snh >, =,
6V d
#include
#include
#define PI 3.14
void main(){
float r, s;
printf(Nhap ban kinh hinh tron:);
scanf(%f,&r);
s = PI * r * r;
printf(Dien tich hinh tron %f\n,s);
getch();
} 21
6.2.5. Hng s
nh ngha:
hng (constant) l i lng c gi tr khng i trong chng trnh.
Biu din hng s nguyn: trong C, mt hng s nguyn c th biu din di 3 dng
Dng thp phn
Dng thp lc phn
Dng bt phn
Gi tr thp phn Gi tr thp lc phn Gi tr bt phn
2007 0x7D7 03727
396 0x18C 061422
6.2.5. Hng s
Biu din hng s thc: trong C, mt hng s thc c th biu din di 2 dng
Dng s thc du phy tnh
Dng s thc du phy ng
V d
S thc du phy tnh S thc du phy ng
3.14159 31.4159 E-1
123.456 12.3456 E+1 hoc 1.23456 E+2
23
6.2.5. Hng s
Biu din hng k t: trong C, mt hng k t c th biu din theo hai cch
Bng k hiu ca k t t gia hai du nhy n
Bng s th t ca k t trong bng m ASCII (s nguyn -> tun th quy tc biu din hng s nguyn)
V d
K t cn biu din Cch 1 Cch 2
Ch ci A A 65, 0x41, 0101
Du nhy n \ 39, 0x27, 047
K t tab \t 0, 0x09, 011
24
76.2.5. Hng s
Biu din hng xu k t:
Hng xu k t c biu din bi dy cc kt thnh phn c trong xu v c ttrong cp du nhy kp.
V d:
ngon ngu lap trinh C
Tin hoc dai cuong
Dai hoc Bach Khoa Ha Noi
25
V d
#include
#include
void main(){
float a, b, x;
printf(Nhap he so a=);scanf(%f,&a);
printf(Nhap he so b khac 0, b=);scanf(%f,&b);
x = -b/a;
printf(Nghiem cua phuong trinh %f,x);
getch();
} 26
6.2.6. Bin
nh ngha:
Bin (variable) l i lng m gi tr c th thay i trong chng trnh.
Ch :
Hng s v bin c s dng lu tr d liu trong chng trnh
Hng s v bin phi thuc mt kiu d liu no
Hng s v bin u phi t tn theo quy tc
27
6.2.7. Hm
M t:
Hm (function) l mt chng trnh con c chc nng nhn d liu u vo (cc tham s u vo), thc hin mt chc nng no v a ra cc kt qu.
Hm ngha K hiu ton hc V d
Pow(x,y) X m y Xy Pow(2,3)=8
Sin(x) Sin ca x Sinx Sin(0)=0
Cos(x) Cos ca x Cosx Cos(0)=1
28
86.2.8. Biu thc
nh ngha:
Biu thc l s ghp ni cc ton t (operator) v cc ton hng (operand) theo mt quy tc xc nh.
Cc ton hng c th l bin, hng
Cc ton t rt a dng: cng, tr, nhn, chia..
V d: biu thc tnh th tch hnh ch nht
chieu_dai * chieu_rong * chieu_cao
- chieu_dai, chieu_rong, chieu_cao l cc hng hoc bin s ng vai tr ton hng
- Php * ng vai tr ton t29
6.2.9. Cu lnh
Cu lnh (statement) din t mt hoc mtnhm cc thao tc trong gii thut.
Chng trnh c to thnh t dy cccu lnh.
Cui mi cu lnh bt buc c du chmphy ; nh du kt thc cu lnh
30
6.2.9. Cu lnh
Phn nhm: Nhm cc cu lnh n: nhng cu lnh
khng cha cu lnh khc. V d: php gn,php cng, php tr
Nhm cc cu lnh phc: nhng cu lnhcha cu lnh khc.
V d: lnh khi t trong cp ngoc nhn { }
31
6.2.10. Ch thch
Ch thch (comment):
Li m t, gii thch vn tt cho mt cu lnh,mt on chng trnh hoc c chng trnh
Gip vic c v hiu chng trnh d dnghn
Ch thch khng phi l cu lnh -> khng nhhng ti chng trnh
Cch vit ch thch: trong C c hai cch
Ch thch mt dng: s dng //
Ch thch nhiu dng: s dng /* v */
32
9Ni dung
6.1. Lch s pht trin
6.2. Cc phn t c bn ca ngn ng C
6.3. Cu trc c bn ca chng trnh C
6.4. Bin dch chng trnh C
6.5. Trnh bin dch Turbo C++
33
V d
#include //Khai bao tep tieu devoid main(){// Khai bao cac bienint a, b; //int : kieu so nguyeint tong, hieu, tich;
// Nhap vao tu ban phim 2 so nguyen
printf(\nNhap vao so nguyen thu nhat: ); //In ra man hinh
scanf(%d,&a); //Doc tu phim gia tri cua a
printf(\n Nhap vao so nguyen thu hai: );
scanf(%d,&b);34
V d
// Tinh tong, hieu, tich cua 2 so do
tong = a+b; hieu = a b;tich = a*b;
// Hien thi cac gia tri ra man hinh
printf(\n Tong cua 2 so vua nhap la %d, tong);
printf(\n Hieu cua 2 so vua nhap la %d, hieu);
printf(\n Tich cua 2 so vua nhap la %d, tich);
// Doi nguoi dung an phim bat ki
getch();
}35
36
Gm 6 phn c th t nh sau:
Phn1: Khai bo tp tiu : #include
Phn 2: nh ngha kiu d liu mi: typedef ...
Phn 3: Khai bo cc hm nguyn mu
Phn 4: Khai bo cc bin ton cc
Phn 5: Hm main()
Phn 6: Ni dung cc hm khai bo
6.3. Cu trc c bn ca chng trnh C
10
37
Phn 1: Khai bo tp tiu :
Thng bo cho chng trnh dch bit l chng trnh c s dng nhng th vin no.
VD: #include
#include
6.3. Cu trc c bn ca chng trnh C
Th vin Chc nng
stdio.h Cc hm vo/ra c bn
conio.h Cc hm giao tip ngi dng s dng MS-DOS API
math.h Cc hm ton hc c bn
ctype.h Cc hm x l k t
string.h Cc hm x l xu
stdlib.h Cc hm tin ch
time.h Cc hm iu khin thi gian 38
Phn 2: nh ngha cc kiu d liu mi
nh ngha cc kiu d liu mi (nu cn) dng cho c chng trnh.
Phn 3: Khai bo cc hm nguyn mu: Gip cho chng trnh dch bit c nhng
thng tin c bn ca cc hm s dng trong chng trnh.
Phn 4: Khai bo cc bin ton cc V d:
int a, b;
int tong, hieu, tich;
6.3. Cu trc c bn ca chng trnh C
39
Phn 5: Hm main( )
Khi thc hin, chng trnh s bt u bng vic thc hin cc lnh trong hm main( ).
Trong hm main( ) c th c lnh gi ti cc hm khc.
Phn 6: Ni dung ca cc hm khai bo
Ci t (vit m) cho cc hm khai bo nguyn mu phn 3.
6.3. Cu trc c bn ca chng trnh C Vit mt chng trnh p
Ch thch m t hm/chng trnh:
Chc nng
u vo
u ra
nh du bn quyn
Ch thch cc bin quan trng
Ch thch cc bc x l d liu theo thut ton
Li dng cho cc lnh lng nhau
nh danh i tng r rng
Module ha chng trnh
40
11
Ni dung
6.1. Lch s pht trin
6.2. Cc phn t c bn ca ngn ng C
6.3. Cu trc c bn ca chng trnh C
6.4. Bin dch chng trnh C
6.5. Trnh bin dch Turbo C++
41 42
Preprocessor Loi b cc ch thch Dch cc ch th tin x l bt u l #
C Compiler Bin dch m ngun thnh m assembly.
Assembler To ra m object.
Trn UNIX file .o Trn MS-DOS file.OBJ
Link Editor Nu tp ngun tham chiu n cc hm
th vin/hm c nh ngha th Link editor kt hp cc hm ny vi hm main() to ra tp c th thc thi c
Trong MS-DOS l file .exe
6.4. Bin dch chng trnh C
Ni dung
6.1. Lch s pht trin
6.2. Cc phn t c bn ca ngn ng C
6.3. Cu trc c bn ca chng trnh C
6.4. Bin dch chng trnh C
6.5. Trnh bin dch Turbo C++
43
6.5.1. Gii thiu
Trnh bin dch (compiler): dch m ngun (source code) thnh file thc thi
Cc trnh bin dch C ph bin
Turbo C++ ca hng Borland
MSC ca Microsoft
GCC ca GNU
Dev C++ ca Bloodshed Software
Turbo C++ c nhiu phin bn
Phin bn la chn: Turbo C++ 3.0
44
12
6.5.2. Ci t v s dng Turbo C++ 3.0
Ci t
B1: Chun b b ci ca Turbo C++ 3.0 (~4 MB) Copy b ci ny vo my ca bn, gi s vo th mc C:\TC_Setup.
B2: n th mc cha b ci Turbo C++ 3.0 (nh gi s trn l C:\TC_Setup) v kch hot file INSTALL.EXE chy chng trnh ci t. Chng trnh ci t s yu cu bn ch ra a trn cha b ci Turbo C++ 3.0
Enter the SOURCE drive to use:
Hy nhp vo tn a, chng hn C (ta b ci Turbo C++ 3.0 th mc C:\TC_Setup).
45
6.5.2. Ci t v s dng Turbo C++ 3.0
B3: Chng trnh yu cu bn nhp vo ng dn ti th mc cha cc file ca Turbo C++ 3.0
Enter the SOURCE Path:
Thng thng chng trnh s t tm cho bn, v bn ch cn n Enter chuyn sang bc tip theo.
B4: Xc nh th mc ci t. Th mc ny s cha cc file ca Turbo C++ 3.0 bn s dng sau ny.
Directories [C:\TC]
Option[IDE CMD LIB CLASS BGI HELP EXMPL]
http://sites.google.com/site/buitrongtung
HD.zip
46
6.5.2. Ci t v s dng Turbo C++ 3.0
Start Installation Th mc ci t mc nh s l \TC nm trn th mc
gc ca a cha b ci. Nu bn mun thay i th mc ci t th hy dng cc phm v di chuyn hp sng n phn Directories, g Enter v nhp vo ng dn mi, sau n phm Esc tr v.
Dng cc phm v di chuyn hp sng n phn Start Installation v n Enter. Chng trnh s t ng thc hin v hon tt qu trnh ci t cho bn.
Lu : Bn c th copy ton b th mc ci t ca Turbo C++ 3.0 v my v s dng, nhng bn phi ch cho Turbo C++ bit ng dn ti cc tp tiu v cc tp th vin bng cch vo menu Option, chn Directories.
47
6.5.2. Ci t v s dng Turbo C++ 3.0
Giao din s dng ca chng trnh
48
13
6.5.2. Ci t v s dng Turbo C++ 3.0
49
Video: Setup TurboC
6.5.2. Ci t v s dng Turbo C++ 3.0
Khi ng chng trnh: tm n th mc BIN trong th mc ci t v chy file TC.EXE
To ca s son tho mi: chn menu File (hoc n Alt-F), sau chn mc New m ca s son tho mi.
G chng trnh ngun vo ca s son tho
Lu chng trnh vi tn file,v d: HelloWorld.cpp
Bin dch chng trnh: bm F9
Chy chng trnh: Ctrl + F9 50
6.5.2. Ci t v s dng Turbo C++ 3.0
51
Video: S dng TurboC
Tho lun
52