Professional Documents
Culture Documents
1-6/2005
Gi i thi u ngn ng C. C u trc chung c a chng trnh C C++ v chng trnh d ch Turbo C++ Cc ki u d li u c s H ng, bi u th c, cu l nh v php ton Vo/ra d li u v i scanf v printf
1-6/2005
l p trnh C
1-6/2005
M t s u i m c a C
L ngn ng l p trnh a nng, m nh v m m d o. Chng trnh vi t b ng C ch y kh nhanh (so snh v i Pascal). Th ng c s d ng l p trnh h th ng (h i u hnh). L ngn ng d thch nghi v i nh ng mi tr ng (h my) khc nhau. L ngn ng c c u trc m-un (chng trnh = cc hm). Ni chung, l p trnh C kh kh n u cha h c Pascal.
1-6/2005 Chng 1. T ng quan v ngn ng l p trnh C 4
1-6/2005
M t s quy t c: B k t v T kho
B k t :
Ch ci: A..Z, a..z; ch s : 0..9. Cc d u v k hi u: , . ; : / ? [ ] { } ! @ # $ % ^ & * ( ) + = - < > . D u cch, d u tab, d u g ch d i _
T kho:
auto, break, case, char, continue, default, do, double, else, extern, float, for, goto, if, int, long, register, return, short, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while _cs, _ds, _es, _ss, _AH, _AL, _AX, _BH, _BL, _BX, _CH, _CL, _CX, _DH, _DL, _DX, _BP, _DI, _SI, _SP
1-6/2005 Chng 1. T ng quan v ngn ng l p trnh C 5
M t s quy t c: Tn v Ch thch
Tn v cch t tn:
Quy t c gi ng ngn ng Pascal. C phn bi t ch hoa v ch th ng. Ni chung, nn s d ng ch th ng khi t tn.
Ch thch:
/* Noi dung chu thich */ C++: ch thch cho m t dng b ng //
// Chu thich cua dong 1 // Chu thich cua dong 2
1-6/2005
l p trnh C
1-6/2005
M t s quy t c: D u ch m ph y v c p { }
Cu l nh v d u ch m ph y:
Ni chung, m i cu l nh n nn vi t trn m t dng. K t thc cu l nh b ng d u ch m ph y M t s ch d n (khng ph i cu l nh) khng c n d u ;
#include stdio.h #include conio.h
1-6/2005
l p trnh C
Gi i thi u ngn ng C. C u trc chung c a chng trnh C C++ v chng trnh d ch Turbo C++ Cc ki u d li u c s H ng, bi u th c, cu l nh v php ton Vo/ra d li u v i scanf v printf
1-6/2005
l p trnh C
1-6/2005
nh ngha ki u d li u
1-6/2005
l p trnh C
M t s v d n gi n
#include "stdio.h //standard io #include "conio.h //console io void main() { clrscr(); printf("Hello World!"); getch(); }
#include "stdio.h" #include "conio.h" void main() { int a,b,c; clrscr(); printf("Nhap vao hai so nguyen:\n"); scanf("%d%d",&a,&b); c=a+b; printf("Tong hai so la: %d",c); getch(); }
hello.c
1-6/2005 Chng 1. T ng quan v ngn ng
add2num.c
l p trnh C 10
1-6/2005
Gi i thi u ngn ng C. C u trc chung c a chng trnh C C++ v chng trnh d ch Turbo C++ Cc ki u d li u c s H ng, bi u th c, cu l nh v php ton Vo/ra d li u
1-6/2005
l p trnh C
11
1-6/2005
l p trnh C
12
1-6/2005
1-6/2005
l p trnh C
13
Gi i thi u ngn ng C. C u trc chung c a chng trnh C C++ v chng trnh d ch Turbo C++ Cc ki u d li u c s H ng, bi u th c, cu l nh v php ton Vo/ra d li u v i scanf v printf
1-6/2005
l p trnh C
14
1-6/2005
Khi ni m v bi n v ki u d li u
Bi n l i l ng m gi tr c th b thay i trong chng trnh (qua cu l nh). Ki u d li u bao g m:
T p h p cc gi tr m ph n t thu c v m t ki u c th nh n. Cc php ton c xc nh trn ki u .
Khai bo bi n trong C
C php chung
Khai bo bi n bnh th ng: ki u_d _li u danh_sch_bi n; Khai bo bi n v i gi tr kh i t o: ki u_d _li u tn_bi n = gi_tr _ u;
V d :
int i,j,m; int i=0,m=5; //i ban u c gi tr 0
Khi khai bo bi n khng ch r gi tr u th gi tr c a bi n l khng xc nh (ch !!!). Bi n trong C khng nh t thi t ph i khai bo t i m t vng nh t nh c a chng trnh (VAR trong Pascal), mi n l khai bo tr c khi s d ng.
1-6/2005 Chng 1. T ng quan v ngn ng l p trnh C 16
1-6/2005
Ki u d li u s nguyn
Ki u bi n
Character Integer Short integer Long integer Unsigned character Unsigned integer Unsigned short integer Unsigned long integer
1-6/2005
K.T D i g/tr 1 2 2 4 2
-127 -32768 -32768 -231 0 0 0 0 128 32767 32767 231 1 255 65535 65535 232 - 1
17
V d
1-6/2005
Ki u s th c
Ki u bi n S th c v i chnh xc n S th c v i chnh xc kp T kho float double K/th c D i gi tr (B) (ph n >0) 4 8 10 1.2E-38 3.4E+38 2.2E-308 1.8E+308 3.4E-4932 3.4E+4932
Ki u k t
H ng k t :
Vi t trong c p nhy n Vd: A, m.
M t s k t c bi t:
tab: \t xu ng dng: \n d u : \ d u : \ d u ?: \? d u \: \\ m null: \0
T kho: char H ng xu k t :
Vi t trong c p nhy kp. Vd: Ha noi.
Hm x l <ctype.h>
toASCII(c): l y m ASCII. tolower(c): ch th ng. toupper(c): ch hoa.
1-6/2005
l p trnh C
20
10
1-6/2005
Ki u Boolean
Khng c nh ngha t ng minh trong C.
M t gi tr b ng 0 c coi l sai (false). M t gi tr khc 0 c coi l ng (true)
Nh v y, c th coi:
0 l false. 1 l true.
khai bo bi n Boolean, ta khai bo m t bi n nguyn (char, int). Php ton: &&(and); ||(or); !(not)
1-6/2005 Chng 1. T ng quan v ngn ng l p trnh C 21
Gi i thi u ngn ng C. C u trc chung c a chng trnh C C++ v chng trnh d ch Turbo C++ Cc ki u d li u c s H ng, bi u th c, cu l nh v php ton Vo/ra d li u v i scanf v printf
1-6/2005
l p trnh C
22
11
1-6/2005
H ng
H ng l i l ng c gi tr khng thay i trong su t chng trnh,c th c c p pht ho c khng c p pht b nh (tu thu c cch khai bo). Khai bo h ng t ng trng:
#define tn_h ng gi_tr
//khng c d u ch m ph y cu i. Vd: #define PI 3.14
Khai bo h ng c c p pht b nh :
const ki u_d _li u tn_h ng = gi_tr ;
Vd: const float PI = 3.14;
1-6/2005 Chng 1. T ng quan v ngn ng l p trnh C 23
Bi u th c (expression)
Bi u th c l cng th c tnh ton m k t qu l m t ki u d li u no .
Bi u th c s h c: K t qu l ki u s . Bi u th c logic:
K t qu l ki u logic. Tr ng h p ph bi n: bi u th c quan h (so snh).
Bi u th c l s k t h p c a:
Ton h ng (operand): h ng, bi n, hm, bi u th c. Ton t (operator): +,-,*,/,so snh
1-6/2005 Chng 1. T ng quan v ngn ng l p trnh C 24
12
1-6/2005
~ >> > !=
* / %
1-6/2005
13
1-6/2005
1-6/2005
l p trnh C
27
Cu l nh
Cu l nh n gi n:
Php gn L i g i hm (trong C ch c hm).
Kh i l nh:
N m trong c p {}
Cu l nh c c u trc:
R nhnh L p
1-6/2005 Chng 1. T ng quan v ngn ng l p trnh C 28
14
1-6/2005
Php gn
C php:
tn_bi n = bi u_th c;
V d :
int a,b,c; a=3;b=4; c=a+b;
Chuy n i ki u d li u
C t ng chuy n i ki u d li u khi c n (s hi u ch nh). C cho php ng i l p trnh p ki u d li u
K php: tn_ki u (bi n ho c bi u th c) Vd:
int i; float f, z; f=5.5; i=int(f);//sau y, i c gi tr 5 f=float(i)/2;//sau y, f c gi tr
1-6/2005 Chng 1. T ng quan v ngn ng l p trnh C
2.5
30
15
1-6/2005
M t s hm s h c chu n <math.h>
abs(int): tr tuy t i fabs(double): tr tuy t i sin(double): sin cos(double): cos tan(double): tang exp(double): ex log(double): ln floor(double): c t trn s ceil(double): lm trn s sqrt(double): cn b c hai pow(d1,d2): d1d2
1-6/2005 Chng 1. T ng quan v ngn ng l p trnh C 31
16
1-6/2005
Gn nhi u bi n m t lc:
x=y=z=4; //sau php gn ny, x;y;z u c gi tr 4.
Php tng gi m 1 n v : ++i; //j=++i => j==i i++; //j=i++ => j==(i-1)
1-6/2005 Chng 1. T ng quan v ngn ng l p trnh C 33
Ton t i u ki n:?:
C php: i u_ki n:gtr 1?gtr 2 Vd: max = a>b:a?b;
N u a>b th bth c max nh n gtr a, n u khng th nh n gtr b.
Php l y a ch bi n (&).
&x s tr v a ch c a bi n x trong b nh (s tm hi u k hn).
1-6/2005
l p trnh C
34
17
1-6/2005
Gi i thi u ngn ng C. C u trc chung c a chng trnh C C++ v chng trnh d ch Turbo C++ Cc ki u d li u c s H ng, bi u th c, cu l nh v php ton Vo/ra d li u v i scanf v printf
1-6/2005
l p trnh C
35
Xu t d li u ra mn hnh v i printf
C php
printf(xu_ nh_d ng, danh_sch_ i_l ng);
ngha:
Vi t ra mn hnh danh sch i l ng v i nh d ng c ch ra b i xu nh d ng
Xu nh d ng:
L xu c ch a m nh d ng. M nh d ng l s k t h p c a d u % v m chuy n i ki u d li u: %d, %f, %c, %s, %ld, %x, %o
1-6/2005 Chng 1. T ng quan v ngn ng l p trnh C 36
18
1-6/2005
M t s v d s d ng printf
printf(%d,45); printf(%d\n,45); 45_ 45 _ a=4.500000_ a=4,b=4.500000 _ 65_
Chng 1. T ng quan v ngn ng l p trnh C 37
printf(a=%f,4.5); printf(a=%d,b=%f\n,4,4.5);
printf(%d, A);
1-6/2005
Xu t d li u c quy cch
In ra s nguyn c quy cch:
C php: printf(%md, i_l ng_nguyn); ngha: In ra mn hnh s nguyn v i m ch . Vd: printf(a = %5d\n,4) //a=^^^^4
In s nguyn d ng Hexa
S d ng %x (th ng) ho c %X (vi t hoa).
In ra s nguyn d ng Octa
S d ng %o
1-6/2005
l p trnh C
38
19
1-6/2005
S d ng %e vi t d ng x.xEy S d ng d u *:
printf(%8.*f, i, f); N u i=1, f=1.23 th k t qu l ^^^^^1.2 N u i=3, x=1.23 th k t qu l ^^^1.230
1-6/2005 Chng 1. T ng quan v ngn ng l p trnh C 39
M t s v n khc v i printf
Vi t ra d u %
printf(x=%d%%d,45); //x=45%d
Vi t c quy cch cn l tri: thm d u tr - vo tr c m nh d ng. Vd: printf(%-8d,i); printf(%-10.3f:,f); Gi tr tr v c a hm printf: printf l m t hm c k t qu tr v l s l ng k t th c t c vi t ra mn hnh. In ra my in:
fprintf(stdprn, xu_ nh_d ng, ds_ i_l ng); Cc thi t b vo/ra: stdin (phm), stdout (mh), stderr (mh), stdprn (my in), stdaux (c ng n i ti p).
20
1-6/2005
putch(): vi t k t ra mn hnh
putch(ch); //ch c ki u k t . Tng ng v i: printf(%c,ch);
puts(): vi t xu k t ra mn hnh
puts(Xu k t ); //ch c php vi t ra m t xu k t .
1-6/2005
l p trnh C
41
Nh p d li u v i scanf
C php scanf(xu_ nh_d ng_nh p, ds_ a_ch ) ngha: nh p gi tr cho cc bi n c a ch c truy n vo thng qua danh sch a ch . Vd:
scanf(%d,&i);//nh p gi tr cho bi n nguyn i scanf(%d%f,&i,&f);//nh p cho bi n nguyn i v th c f.
21
1-6/2005
getch(): nh p k t , khng g Enter sau khi nh p, k t nh p vo khng hi n ra mn hnh (gi ng readkey c a Pascal).
ch=getch();
ch k t nh p vo c
l p trnh C
43
22
1-6/2005
Xo b m
S d ng cu l nh: fflush(stdin); Xem v d d i
int i,j; scanf(%d,&i); printf(i=%d\n,i); fflush(stdin); scanf(%d,&j); printf(j=%d,j);
1-6/2005 Chng 1. T ng quan v ngn ng
Chng trnh
Ng i dng
3 4 i=3 5 j=5
l p trnh C
45
<conio.h>
putch() getch() getche()
1-6/2005 Chng 1. T ng quan v ngn ng l p trnh C 46
23
1-6/2005
Bi t p
Vi t chng trnh tnh t ng bnh phng hai s nguyn c nh p vo t bn phm. Vi t chng trnh tnh di n tch, chu vi c a cc hnh (cc c nh nh p vo t bn phm):
Tam gic. Ch nh t. Trn (M_PI l s pi /n trong <math.h>)
1-6/2005
l p trnh C
47
24