Download - Giao an LTC
Mc lc
Mc lcMc lc
Mc lc
1Mc lc
4CHNG 1 :Cc khi nim c bn
41.1Gii thiu ngn ng C:
41.2Cc yu t c bn:
41.2.1Tp k t dng trong ngn ng C:
41.2.2T kho:
51.2.3Tn:
51.3Cc kiu d liu c bn:
51.3.1Kiu k t (char):
61.3.2Kiu s nguyn:
61.3.3Kiu du phy ng (s thc):
61.4nh ngha kiu bng TYPEDEF:
61.4.1Cng dng:
61.4.2Cch vit:
71.5Hng:
71.5.1Tn hng:
71.5.2Cc loi hng:
71.5.2.1Hng int:
71.5.2.2Hng long:
71.5.2.3Hng int h 8:
71.5.2.4Hng int h 16:
81.5.2.5Hng k t:
81.5.2.6Hng chui k t:
91.6Bin:
91.7Mng:
13CHNG 2 :NHP XUT TRONG NGN NG C
132.1Cc th vin nhp xut chun:
132.2Cc hm nhp xut chun:
132.2.1Hm getchar ():
132.2.2Hm putchar ():
132.2.3Hm getch():
132.2.4Hm putch():
142.2.5Hm printf:
162.2.6Hm scanf:
18CHNG 3 :BIU THC
183.1Biu thc:
183.2Lnh gn v biu thc:
183.3Cc php ton s hc:
193.4Cc php ton quan h v logic:
193.5Php ton tng gim:
203.6Th t u tin cc php ton:
203.7Chuyn i kiu gi tr (p kiu):
22CHNG 4 :CU TRC C BN CA CHNG TRNH
224.1Li ch thch:
224.2Lnh v khi lnh:
224.2.1Lnh:
224.2.2Khi lnh:
244.2.3Cu trc c bn ca chng trnh:
254.3Mt s qui tc cn nh khi vit chng trnh:
26CHNG 5 :CU TRC IU KHIN
265.1Cu trc c iu kin:
265.1.1Lnh if - else:
275.1.2Lnh else if:
285.2Lnh nhy khng iu kin - ton t goto:
295.3Cu trc r nhnh - ton t switch:
305.4Cu trc lp:
305.4.1Cu trc lp vi ton t while v for:
305.4.1.1Cu trc lp vi ton t while:
325.4.2Cu trc lp vi ton t for:
345.4.3Chu trnh do-while
355.5Cu lnh break:
365.6Cu lnh continue:
37CHNG 6 :HM
376.1C s:
396.2Hm khng cho cc gi tr:
396.3Hm qui:
396.3.1M u:
416.3.2Cc bi ton c th dng qui:
416.3.3Cch xy dng hm qui:
416.3.4Cc v d v dng hm qui:
426.4B tin s l C:
45CHNG 7 :CON TR
457.1Con tr v a ch:
467.2Con tr v mng mt chiu:
467.2.1Php ton ly a ch:
467.2.2Tn mng l mt hng a ch:
467.2.3Con tr tr ti cc phn t ca mng mt chiu:
487.3Con tr v mng nhiu chiu:
487.3.1Php ly a ch:
487.3.2Php cng a ch trong mng hai chiu:
497.3.3Con tr v mng hai chiu:
497.4Kiu con tr, kiu a ch, cc php ton trn con tr:
497.4.1Kiu con tr v kiu a ch:
507.4.2Cc php ton trn con tr:
517.4.3Con tr kiu void:
527.5Mng con tr:
537.6Con tr ti hm:
537.6.1Cch khai bo con tr hm v mng con tr hm:
547.6.2Tc dng ca con tr hm:
547.6.3i ca con tr hm:
56CHNG 8 :CHUI K T
568.1Khi nim:
568.1.1Khai bo chui k t:
568.1.2Khi pht gi tr ban u cho chui:
568.2Nhp v xut chui
568.2.1Hm gets:
578.2.2Hm puts:
578.3Mt s thao tc trn chui thng dng:
578.3.1Hm strcpy:
578.3.2Hm strncpy:
578.3.3Hm strlen:
578.3.4Hm strcat:
578.3.5Hm strncat:
578.3.6Hm strcmp:
578.3.7Hm strlwr:
578.3.8Hm strupr:
588.3.9Hm strrev:
588.3.10Hm strchr:
588.3.11Hm strrchr:
588.3.12Hm strstr:
588.4Mt s v d v chui k t
60CHNG 9 :CU TRC
609.1Kiu cu trc:
619.2Khai bo theo mt kiu cu trc nh ngha:
629.3Truy nhp n cc thnh phn cu trc:
659.4Mng cu trc:
659.5Khi u mt cu trc:
659.6Php gn cu trc:
669.7Con tr cu trc v a ch cu trc:
669.7.1Con tr v a ch:
669.7.2Truy nhp qua con tr:
679.7.3Php gn qua con tr:
679.7.4Php cng a ch:
679.7.5Con tr v mng:
679.8Cu trc t tr v danh sch lin kt:
CHNG 1 : Cc khi nim c bn
1.1 Gii thiu ngn ng C:Ngn ng C c thit k bi Dennish Ritchie vo khong u nhng nm 1970 ti phng th nghim Bell.
Thi gian u ngn ng C c thit k lp trnh trn mi trng h iu hnh Unix nhm h tr vic lp trnh vn phc tp ngay c i vi mt lp trnh vin chuyn nghip.
Vic s dng ngn ng C nhanh chng vt ra khi phng th nghim Bell. Cc lp trnh vin khp ni s dng n thit k chng trnh. Ngay sau , cc hng phn mm cng a ra cc phin bn h tr vic lp trnh bng ngn ng C.
Ngy nay ngn ng lp trnh C l ngn ng ch yu trong vic xy dng cc phn mm ca nhiu hng phn mm ni ting th gii. C l ngn ng c ng, sc tch v l ngn ng ph bin nht hin nay trn th gii.
1.2 Cc yu t c bn:1.2.1 Tp k t dng trong ngn ng C:
Mi ngn ng lp trnh u c xy dng t mt b k t no . Cc k t c nhm li theo nhiu cch khc nhau to nn cc t. Cc t li c lin kt vi nhau theo mt qui tc no to nn cc cu lnh. Mt chng trnh bao gm nhiu cu lnh v th hin mt thut ton gii mt bi ton no . Ngn ng C c xy dng trn b k t sau:
26 ch ci hoa: A B C .. Z
26 ch ci thng: a b c .. z
10 ch s: 0 1 2 .. 9
Cc k hiu ton hc: + - * / = ()
K t gch ni: _
Cc k t khc: . ,: ; [ ] {} ! \ & % # $ ...
Du cch (space) dng tch cc t
1.2.2 T kho:
T kho l nhng t c s dng khai bo cc kiu d liu, vit cc ton t v cc cu lnh. Bng di y lit k cc t kho ca TURBO C:
asmbreakcasecdecl
charconstcontinuedefault
dodoubleelseenum
externfarfloatfor
gotohugeifint
interruptlongnearpascal
registerreturnshortsigned
sizeofstaticstructswitch
tipedefunionunsignedvoid
volatilewhile
Ch :
- Khng c dng cc t kho t tn cho cc hng, bin, mng, hm ...
- T kho phi c vit bng ch thng.
1.2.3 Tn:
Tn l mt khi nim rt quan trng, n dng xc nh cc i lng khc nhau trong mt chng trnh. Chng ta c tn hng, tn bin, tn mng, tn hm, tn con tr, tn tp, tn cu trc, tn nhn,...
Qui tc t tn trong C:g
Tn l mt dy cc k t bao gm ch ci, s v gch ni.
K t u tin ca tn phi l ch hoc gch ni.
Tn khng c trng vi kho.
di cc i ca tn theo mc nh l 32.
V d:
Cc tn ng:
a_1deltax1_stepGAMA
Cc tn sai :
3MNK t u tin l s
m#2S dng k t #
f(x)S dng cc du ()
doTrng vi t kho
te taS dng du trng
Y-3S dng du -
Ch :
Trong C, tn bng ch thng v ch hoa l khc nhau v d tn AB khc vi ab. trong C, ta thng dng ch hoa t tn cho cc hng v dng ch thng t tn cho hu ht cho cc i lng khc nh bin, bin mng, hm, cu trc. Tuy nhin y khng phi l iu bt buc.
1.3 Cc kiu d liu c bn:1.3.1 Kiu k t (char):
Mt gi tr kiu char chim 1 byte (8 bit) v biu din c mt k t thng qua bng m ASCII. V d:K tM ASCII
0048
1049
2050
A065
B066
a097
b098
C hai kiu d liu char: kiu signed char v unsigned char.
KiuPhm vi biu dinS k tKch thc
char (signed char)-128 n 1272561 byte
unsigned char0 n 2552561 byte
V d sau minh ho s khc nhau gia hai kiu d liu trn:Xt on chng trnh sau:
char ch1;
unsigned char ch2;
......
ch1=200; ch2=200;
Khi thc cht:
ch1=-56;
ch2=200;
Nhng c ch1 v ch2 u biu din cng mt k t c m 200.
Phn loi k t:
C th chia 256 k t lm ba nhm:
Nhm 1: Nhm cc k t iu khin c m t 0 n 31. Chng hn k t m 13 dng chuyn con tr v u dng, k t 10 chuyn con tr xung dng di (trn cng mt ct). Cc k t nhm ny ni chung khng hin th ra mn hnh.
Nhm 2: Nhm cc k t vn bn c m t 32 n 126. Cc k t ny c th c a ra mn hnh hoc my in.
Nhm 3: Nhm cc k t ho c m s t 127 n 255. Cc k t ny c th a ra mn hnh nhng khng in ra c (bng cc lnh DOS).
1.3.2 Kiu s nguyn:
Trong C cho php s dng s nguyn kiu int, s nguyn di kiu long v s nguyn khng du kiu unsigned. Kch c v phm vi biu din ca chng c ch ra trong bng di y:KiuPhm vi biu dinKch thc
int-32768 n 327672 byte
unsigned int0 n 655352 byte
long-2147483648 n 21474836474 byte
unsigned long0 n 42949672954 byte
Ch : Kiu k t cng c th xem l mt dng ca kiu nguyn.1.3.3 Kiu du phy ng (s thc):
Trong C cho php s dng ba loi d liu du phy ng, l float, double v long double. Kch c v phm vi biu din ca chng c ch ra trong bng di y:KiuPhm vi biu dinS ch s c nghaKch thc
float3.4E-38 n 3.4E+387 n 84 byte
double1.7E-308 n 1.7E+30815 n 168 byte
long double 3.4E-4932 n 1.1E493217 n 1810 byte
1.4 nh ngha kiu bng TYPEDEF:1.4.1 Cng dng:
T kho typedef dng t tn cho mt kiu d liu. Tn kiu s c dng khai bo d liu sau ny. Nn chn tn kiu ngn v gn d nh. Ch cn thm t kho typedef vo trc mt khai bo ta s nhn c mt tn kiu d liu v c th dng tn ny khai bo cc bin, mng, cu trc, vv...
1.4.2 Cch vit:
Vit t kho typedef, sau kiu d liu (mt trong cc kiu trn), ri n tn ca kiu.
V d cu lnh:
typedef int nguyen;
s t tn mt kiu int l nguyen. Sau ny ta c th dng kiu nguyen khai bo cc bin, cc mng int nh v d sau ;
nguyen x,y,a[10],b[20][30];
Tng t cho cc cu lnh:
typedef float mt50[50];
t tn mt kiu mng thc mt chiu c 50 phn t tn l mt50.
typedef int m_20_30[20][30];
t tn mt kiu mng thc hai chiu c 20x30 phn t tn l m_20_30.
Sau ny ta s dng cc kiu trn khai bo:
mt50 a,b;
m_20_30 x,y;
1.5 Hng:
Hng l cc i lng m gi tr ca n khng thay i trong qu trnh tnh ton.
1.5.1 Tn hng:
Nguyn tc t tn hng tun theo qui tc t tn ca C
t tn mt hng, ta dng dng lnh sau:
#define tn hng gi tr
V d:
#define MAX 1000
Lc ny, tt c cc tn MAX trong chng trnh xut hin sau ny u c thay bng 1000.
1.5.2 Cc loi hng:1.5.2.1 Hng int:
Hng int l s nguyn c gi tr trong khong t -32768 n 32767.
V d:
#define MIN -50nh nghi hng int MIN c gi tr l -50
Ch :
Cn phn bit hai hng 5056 v 5056.0: y 5056 l s nguyn cn 5056.0 l hng thc.
1.5.2.2 Hng long:
Hng long l s nguyn c gi tr trong khong t -2147483648 n 2147483647.
Hng long c vit theo cch:
1234L hoc 1234l
(thm L hoc l vo ui)
Mt s nguyn vt ra ngoi min xc nh ca int cng c xem l long.
V d:
#define sl 8865056Lnh nghi hng long sl c gi tr l 8865056
#define sl 8865056nh nghi hng long sl c gi tr l 8865056
1.5.2.3 Hng int h 8:
Hng int h 8 c vit theo cch 0c1c2c3.... y ci l mt s nguyn dng trong khong t 1 n 7. Hng int h 8 lun lun nhn gi tr dng.
V d:
#define h8 0345nh nghi hng int h 8 c gi tr l
1.5.2.4 Hng int h 16:
Trong h ny ta s dng 16 k t: 0,1..,9,A,B,C,D,E,F.
Cch vitGi tr
a hoc A10
b hoc B11
c hoc C12
d hoc D13
e hoc E14
f hoc F15
Hng s h 16 c dng 0xc1c2c3... hc 0Xc1c2c3... y ci l mt s trong h 16.
V d:
#define h16 0xa5
#define h16 0xA5
#define h16 0Xa5
#define h16 0XA5
Cho ta cc hng s h16 trong h 16 c gi tr nh nhau. Gi tr ca chng trong h 10 l:10*16+5=165.
1.5.2.5 Hng k t:
Hng k t l mt k t ring bit c vit trong hai du nhy n, v d 'a'.
Gi tr ca 'a' chnh l m ASCII ca ch a. Nh vy gi tr ca 'a' l 97. Hng k t c th tham gia vo cc php ton nh mi s nguyn khc. V d:'9'-'0'=57-48=9
V d:#define kt 'a'nh nghi hng k t kt c gi tr l 97
Hng k t cn c th c vit theo cch sau:' \c1c2c3'
trong c1c2c3 l mt s h 8 m gi tr ca n bng m ASCII ca k t cn biu din.
V d: ch a c m h 10 l 97, i ra h 8 l 0141. Vy hng k t 'a' c th vit di dng '\141'. i vi mt vi hng k t c bit ta cn s dng cch vit sau (thm du \):Cch vitK t
'\'''
'\"'"
'\\'\
'\n' \n (chuyn dng)
'\0' \0 (null)
'\t' Tab
'\b' Backspace
'\r' CR (v u dng)
'\f' LF (sang trang)
Ch : Cn phn bit hng k t '0' v '\0'. Hng '0' ng vi ch s 0 c m ASCII l 48,
cn hng '\0' ng vi kt \0 (thng gi l k t null) c m ASCII l 0.
Hng k t thc s l mt s nguyn, v vy c th dng cc s nguyn h 10 biu din cc k t, v d lnh printf("%c%c", 65, 66) s in ra AB.
1.5.2.6 Hng chui k t:
Hng chui k t l mt dy k t bt k t trong hai du nhy kp.
V d: #define str "Ha noi"
Chui k t c lu tr trong my di dng mt bng c cc phn t l cc k t ring bit. Trnh bin dch t ng thm k t null \0 vo cui mi chui (k t \0 c xem l du hiu kt thc ca mt chui k t).
Ch : Cn phn bit hai hng 'a' v "a". 'a' l hng k t c lu tr trong 1 byte, cn "a" l hng chui k t c lu tr trong 1 mng hai phn t: phn t th nht cha ch a cn phn t th hai cha \0.
1.6 Bin:
Mi bin cn phi c khai bo trc khi a vo s dng. Vic khai bo bin c thc hin theo mu sau:
Kiu d liu ca bin tn bin ;V d:int a,b,c;Khai bo ba bin int l a,b,c
long dai,mn;Khai bo hai bin long l dai v mn
char kt1,kt2;Khai bo hai bin k t l kt1 v kt2
float x,yKhai bo hai bin float l x v y
double canh1, canh2;Khai bo hai bin double l canh1 v canh2
Bin kiu int ch nhn c cc gi tr kiu int. Cc bin khc cng c ngha tng t. Cc bin kiu char ch cha c mt k t. lu tr c mt chui k t cn s dng mt mng kiu char.
V tr ca khai bo bin: Trong cc trnh bin dch C hin i, ta ch cn khai bo tn bin trc khi s dng bin .Khi u cho bin: Nu trong khai bo ngay sau tn bin ta t du = v mt gi tr no th y chnh l cch va khai bo va khi u cho bin.
V d:
int a, b=20,c,d=40;
float e=-55.2,x=27.23,y,z,t=18.98;
Vic khi u v vic khai bo bin ri gn gi tr cho n sau ny l hon ton tng ng.
Ly a ch ca bin:
Mi bin c cp pht mt vng nh gm mt s byte lin tip. S hiu ca byte u chnh l a ch ca bin. a ch ca bin s c s dng trong mt s hm ta s nghin cu sau ny (v d nh hm scanf).
ly a ch ca mt bin ta s dng php ton: &tn bin
1.7 Mng:
Mi bin ch c th biu din mt gi tr. biu din mt dy s hay mt bng s ta c th dng nhiu bin nhng cch ny khng thun li. Trong trng hp ny ta c khi nim v mng. Mng c th c hiu l mt tp hp nhiu phn t c cng mt kiu gi tr v chung mt tn. Mi phn t mng biu din c mt gi tr. C bao nhiu kiu bin th c by nhiu kiu mng. Mng cn c khai bo nh r: Loi mng: int, float, double...
Tn mng.
S chiu v kch thc mi chiu.
Khi nim v kiu mng v tn mng cng ging nh khi nim v kiu bin v tn bin. Ta s gii thch khi nim v s chiu v kch thc mi chiu thng qua cc v d c th di y.
Cc khai bo:
int a[10],b[4][2];
float x[5],y[3][3];
s xc nh 4 mng v ngha ca chng nh sau:Th tTn mngKiu mngS chiuKch thcCc phn t
1AInt110a[0],a[1],a[2]...a[9]
2BInt24x2b[0][0], b[0][1]
b[1][0], b[1][1]
b[2][0], b[2][1]
b[3][0], b[3][1]
3XFloat15x[0],x[1],x[2]...x[4]
4YFloat23x3y[0][0], y[0][1], y[0][2]
y[1][0], y[1][1], y[1][2]
y[2][0], y[2][1], y[1][2]
Ch :
Cc phn t ca mng c cp pht cc khong nh lin tip nhau trong b nh. Ni cch khc, cc phn t ca mng c a ch lin tip nhau.
Trong b nh, cc phn t ca mng hai chiu c sp xp theo hng.
Ch s mng:
Mt phn t c th ca mng c xc nh nh cc ch s ca n. Ch s ca mng phi c gi tr int khng vt qu kch thc tng ng. S ch s phi bng s chiu ca mng.
Gi s z,b,x,y c khai bo nh trn, v gi s i,j l cc bin nguyn trong i=2, j=1. Khi :
a[j+i-1] la[2]
b[j+i][2-i]lb[3][0]
y[i][j]
ly[2][1]
Ch :
Mng c bao nhiu chiu th ta phi vit n c by nhiu ch s. V th nu ta vit nh sau s l sai: y[i] (V y l mng 2 chiu) vv..
Biu thc dng lm ch s c th thc. Khi phn nguyn ca biu thc thc s l ch s mng.
V d:
a[2.5] l a[2]
b[1.9] l a[1]
*Khi ch s vt ra ngoi kch thc mng, my s vn khng bo li, nhng n s truy cp n mt vng nh bn ngoi mng v c th lm ri lon chng trnh.
Ly a ch mt phn t ca mng:
C mt vi hn ch trn cc mng hai chiu. Chng hn c th ly a ch ca cc phn t ca mng mt chiu, nhng ni chung khng cho php ly a ch ca phn t ca mng hai chiu. Nh vy my s chp nhn php tnh: &a[i] nhng khng chp nhn php tnh &y[i][j].
a ch u ca mt mng:
Tn mng biu th a ch u ca mng. Nh vy ta c th dng a thay cho &a[0].
Khi u cho bin mng:
Cc bin mng khai bo bn trong thn ca mt hm (k c hm main()) gi l bin mng cc b.
Mun khi u cho mt mng cc b ta s dng ton t gn trong thn hm.
Cc bin mng khai bo bn ngoi thn ca mt hm gi l bin mng ngoi.
khi u cho bin mng ngoi ta p dng cc qui tc sau:
Cc bin mng ngoi c th khi u (mt ln) vo lc dch chng trnh bng cch s dng cc biu thc hng. Nu khng c khi u my s gn cho chng gi tr 0.
V d:....
float y[6]={3.2,0,5.1,23,0,42};
int z[3][2]={
{25,31},
{12,13},
{45,15}
};
....
void main()
{
....
}
Khi khi u mng ngoi c th khng cn ch ra kch thc (s phn t) ca n. Khi , my s dnh cho mng mt khong nh thu nhn danh sch gi tr khi u.
V d:
....
float a[]={0,5.1,23,0,42};
int m[][3]={
{25,31,4},
{12,13,89},
{45,15,22}
};
Khi ch ra kch thc ca mng, th kch thc ny cn khng nh hn kch thc ca b khi u.
V d:
....
float m[6] = {0,5.1,23,0};
int z[6][3] = {
{25,31,3},
{12,13,22},
{45,15,11}
};
i vi mng hai chiu, c th khi u vi s gi tr khi u ca mi hng c th khc nhau:V d:
float z[][3] = {
{31.5},
{12,13},
{-45.76}
};
int z[13][2] = {
{31.11},
{12},
{45.14,15.09}
};
Khi u ca mt mng char c th l: Mt danh sch cc hng k t.
Mt hng chui k t.
V d:
char ten[] = {'h','a','g'};
char ho[] = 'tran';
char dem[10] = "van";
CHNG 2 : NHP XUT TRONG NGN NG C
Chng ny gii thiu th vin nhp/xut chun l mt tp cc hm c thit k cung cp h thng nhp/xut chun cho cc chng trnh C. Chng ta s khng m t ton b th vin vo ra y m ch quan tm nhiu hn n vic nu ra nhng iu c bn nht vit chng trnh C tng tc vi mi trng v h iu hnh.
2.1 Cc th vin nhp xut chun:Ngn ng C dng 2 th vin nhp xut chun l stdio.h v conio.h. Trong : Th vin studio.h cha cc hm nh gets(), puts(), scanf(), printf(), fflush(), fwrite() ...
Th vin conio.h cha cc hm nh getch(), putch(), clrscr(), gotoxy()
s dng cc th vin ny, ta phi khai bo cc ch th #include u chng trnh: #include v #include . Trong du ngoc < v > ch th cho trnh bin dch tm kim th vin trong danh mc cha thng tin th vin chun (trong th mc Include).
2.2 Cc hm nhp xut chun:2.2.1 Hm getchar (): Cch dng: S dng cu lnh: bin = getchar();
Cng dng: Nhn mt k t vo t bn phm v khng a ra mn hnh. Hm s tr v k t nhn c v lu vo bin.
V d:
int c;
c = getchar();
2.2.2 Hm putchar (): Cch dng: putchar(ch);
Cng dng: a k t ch ln mn hnh ti v tr hin ti ca con tr. K t s c hin th vi mu trng.
V d:
int c;
c = getchar();
putchar(c);
2.2.3 Hm getch(): Cch dng: Dng cu lnh sau:getch();
Cng dng: Nu c sn k t trong b m bn phm th hm s nhn mt k t trong .
Nu b m rng, my s tm dng. Khi g mt k t th hm nhn ngay k t (khng cn bm thm phm Enter nh trong cc hm nhp khc). K t va g khng hin ln mn hnh.
Nu dng: bin=getch();
Th bin s cha k t c vo.
2.2.4 Hm putch(): Cch dng: S dng cu lnh: putch(ch);
Cng dng: a k t ch ln mn hnh ti v tr hin ti ca con tr. K t s c hin th theo mu xc nh trong hm textcolor.
2.2.5 Hm printf: Cch dng:
prinf(iu khin, i s 1, i s 2, ...);
Hm printf chuyn, to khun dng v in cc i ca n ra thit b ra chun di s iu khin ca chui iu khin. Chui iu khin cha hai kiu i tng: cc k t thng thng, chng s c a ra trc tip thit b ra, v cc c t chuyn dng, mi c t s to ra vic i dng v in i tip sau ca printf. Chui iu khin c th c cc k t iu khin:
\nsang dng mi
\fsang trang mi
\bli li mt bc
\tdu tabDng tng qut ca c t:
%[-][fw][.pp]k t chuyn dng
Mi c t chuyn dng u c a vo bng k t % v kt thc bi mt k t chuyn dng. Gia % v k t chuyn dng c th c:Du tr:
Khi khng c du tr th kt qu ra c dn v bn phi nu di thc t ca kt qu ra nh hn rng ti thiu fw dnh cho n. Cc v tr d tha s c lp y bng cc khong trng. Ring i vi cc trng s, nu dy s fw bt u bng s 0 th cc v tr d tha bn tri s c lp y bng cc s 0.
Khi c du tr th kt qu c dn v bn tri v cc v tr d tha v bn phi (nu c) lun c lp y bng cc khong trng.
fw:
Khi fw ln hn di thc t ca kt qu ra th cc v tr d tha s c lp y bi cc khong trng hoc s 0 v ni dung ca kt qu ra s c y v bn phi hoc bn tri.
Khi khng c fw hoc fw nh hn hay bng di thc t ca kt qu ra th rng trn thit b ra dnh cho kt qu s bng chnh di ca n.
Ti v tr ca fw ta c th t du *, khi fw c xc nh bi gi tr nguyn ca i tng ng.
V d:Gi tr nhn vofwDu -Kt qu
-25038c-2503
-250308c-2503
-25038khng c -2503
-250308khng c000-2503
"abcdef"8khng c abcdef
"abcdef"08cabcdef
"abcdef"08khng c abcdef
pp:
Tham s pp ch c s dng khi i tng ng l mt chui k t hoc mt gi tr kiu float hay double.
Trong trng hp i tng ng c gi tr kiu float hay double th pp l chnh xc ca trng ra. Ni mt cch c th hn gi tr in ra s c pp ch s sau s thp phn.
Khi vng mt pp th chnh xc s c xem l 6.
Khi i l chui k t:
Nu pp nh hn di ca chui th ch pp k t u tin ca chui c in ra. Nu khng c pp hoc nu pp ln hn hay bng di ca chui th c chui k t s c in ra.
V d:Gi tr nhn vofwppDu -Kt qu di trng ra
-435.645102c-435.657
-435.645100c-4364
-435.6458khng cc-435.64500011
"alphabeta"83khng c alp3
"alphabeta"khng ckhngkhng calphabeta9
"alpha"86calpha5
Cc k t chuyn dng v ngha ca n:
K t chuyn dng l mt hoc mt dy k hiu xc nh quy tc chuyn dng v dng in ra ca i tng ng. Nh vy s c tnh trng cng mt s s c in ra theo cc dng khc nhau. Cn phi s dng cc k t chuyn dng theo ng qui tc nh sn. Bng sau cho cc thng tin v cc k t chuyn dng.
K t chuyn dng ngha
di c chuyn sang s nguyn h thp phn
oi c chuyn sang h tm khng du (khng c s 0 ng trc)
xi c chuyn sang h mi su khng du (khng c 0x ng trc)
ui c chuyn sang h thp phn khng du
ci c coi l mt k t ring bit
si l chui k t, cc k t trong chui c in cho ti khi gp k t khng hoc cho ti khi s lng k t c xc nh bi cc c t v chnh xc pp.
ei c xem l float hoc double v c chuyn sang dng thp phn c dng [-]m.n..nE[+ hoc -] vi di ca chui cha n l pp.
fi c xem l float hoc double v c chuyn sang dng thp phn c dng [-]m..m.n..n vi di ca chui cha n l pp. chnh xc mc nh l 6. Lu rng chnh xc khng xc nh ra s cc ch s c ngha phi in theo khun dng f.
gDng %e hoc %f, tu theo loi no ngn hn, khng in cc s 0 v ngha.
Ch :
Mi dy k t khng bt u bng % hoc khng kt thc bng k t chuyn dng u c xem l k t hin th.
hin th cc k t c bit:Cch vitHin th
\''
\""
\\\
Cc v d:1printf("\" Nang suat tang: %d % \" \n\\d"",30,-50);"Nang suat tang ; 30 %"
\d=-50
2n=8
float x=25.5, y=-47.335
printf("\n%f\n%*.2f",x,n,y);
Lnh ny tng ng vi
printf("\n%f\n%8.2f",x,n,y);
V n=8 tng ng vi v tr *25.500000
-47.34
2.2.6 Hm scanf:
Hm scanf l hm c thng tin t thit b vo chun (bn phm), chuyn dch chng (thnh s nguyn, s thc, k t vv..) ri lu tr n vo b nh theo cc a ch xc nh.
Cch dng:
scanf(iu khin,i 1, i 2, ...);
Chui iu khin cha cc c t chuyn dng, mi c t s to ra vic i dng bin tip sau ca scanf.
c t c th vit mt cch tng qut nh sau:
%[*][d...d]k t chuyn dng
Vic c mt ca du * ni ln rng trng vo vn c d c bnh thng, nhng gi tr ca n b b qua (khng c lu vo b nh). Nh vy c t cha du * s khng c i tng ng.
d...d l mt dy s xc nh chiu di cc i ca trng vo, ngha ca n c gii thch nh sau: Nu tham s d...d vng mt hoc nu gi tr ca n ln hn hay bng di ca trng vo tng ng th ton b trng vo s c c, ni dung ca n c dch v c gn cho a ch tng ng (nu khng c du *).
Nu gi tr ca d...d nh hn di ca trng vo th ch phn u ca trng c kch c bng d...d c c v gn cho a ch ca bin tng ng. Phn cn li ca trng s c xem xt bi cc c t v i tng ng tip theo.
V d:
int a;
float x,y;
char ch[6],ct[6]
scanf("%f%5f%3d%3s%s",&x&y&a&ch&ct0;
Nu dng nhp vo l: 54.32e-1 25 12452348a
Kt qu l lnh scanf s gn
5.432 cho bin x
25.0 cho bin y
124 cho bin a
chui "523" v du kt thc \0 cho bin ch
chui "48a" v du kt thc \0 cho bin ct
K t chuyn dng:
K t chuyn dng xc nh cch thc d c cc k t trn dng vo cng nh cch chuyn dch thng tin c c trc khi gn n cho cc a ch tng ng.
Cch d c th nht l c theo trng vo, khi cc khong trng b b qua. Cch ny p dng cho hu ht cc trng hp.
Cch d c th hai l c theo k t, khi cc khong trng cng c xem xt bnh ng nh cc k t khc. Phng php ny ch xy ra khi ta s dng mt trong ba k t chuyn dng sau: C, [ dy k t ], [^ dy k t ]
Cc k t chuyn dng v ngha ca n:cVo mt k t, i tng ng l con tr k t. C xt k t khong trng.
dVo mt gi tr kiu int, i tng ng l con tr kiu int. Trng phi vo l s nguyn.
ldVo mt gi tr kiu long, i tng ng l con tr kiu long. Trng phi vo l s nguyn.
oVo mt gi tr kiu int h 8, i tng ng l con tr kiu int. Trng phi vo l s nguyn h 8.
loVo mt gi tr kiu long h 8, i tng ng l con tr kiu long. Trng phi vo l s nguyn h 8.
xVo mt gi tr kiu int h 16, i tng ng l con tr kiu int. Trng phi vo l s nguyn h 16.
lxVo mt gi tr kiu long h 16, i tng ng l con tr kiu long. Trng phi vo l s nguyn h 16.
f hay eVo mt gi tr kiu float, i tng ng l con tr float, trng vo phi l s du phy ng.
lf hay leVo mt gi tr kiu double, i tng ng l con tr double, trng vo phi l s du phy ng.
sVo mt gi tr kiu double, i tng ng l con tr kiu char, trng vo phi l dy k t bt k khng cha cc du cch v cc du xung dng.
[Dy k t], [^Dy k t] Cc k t trn dng vo s ln lt c c cho n khi no gp mt k t khng thuc tp cc k t t trong[]. i tng ng l con tr kiu char. Trng vo l dy k t bt k (khong trng c xem nh mt k t).
V d:
int a,b;
char ch[10], ck[10];
scanf("%d%[0123456789]%[^0123456789]%3d",&a,ch,ck,&b);
Nu dng nhp vo l: 35 13145 xyz 584235
Th trnh bin dch s gn: gi tr 35 cho bin a, chui "13145" v du kt thc chui \0 cho bin ch, chui "xyz v du kt thc chui \0 cho ck , gi tr 584 cho bin b.
CHNG 3 : BIU THC
Ton hng c th xem l mt i lng c mt gi tr no . Ton hng bao gm hng, bin, phn t mng v hm.
Biu thc lp nn t cc ton hng v cc php tnh to nn nhng gi tr mi. Biu thc dng din t mt cng thc, mt qui trnh tnh ton, v vy n l mt thnh phn khng th thiu trong chng trnh.
3.1 Biu thc:Biu thc l mt s kt hp gia cc php ton v cc ton hng din t mt cng thc ton hc no . Mi biu thc c s c mt gi tr. Nh vy hng, bin, phn t mng v hm cng c xem l biu thc.
Trong C, ta c hai khi nim v biu thc: Biu thc gn.
Biu thc iu kin.
Biu thc c phn loi theo kiu gi tr: nguyn v thc. Trong cc mnh logic, biu thc c phn thnh ng (gi tr khc 0) v sai (gi tr bng 0).
Biu thc thng c dng trong: V phi ca cu lnh gn.
Lm tham s thc s ca hm.
Lm ch s.
Trong cc ton t ca cc cu trc iu khin.
Ti y, ta c hai khi nim chnh to nn biu thc l ton hng v php ton. Ton hng gm: hng, bin, phn t mng v hm trc y ta xt. Di y ta s ni n cc php ton. Hm s c cp trong chng 6.
3.2 Lnh gn v biu thc:
Biu thc gn l biu thc c dng:
v = e
Trong v l mt bin (hay phn t mng), e l mt biu thc. Gi tr ca biu thc gn l gi tr ca e, kiu ca n l kiu ca v. Nu t du ; vo sau biu thc gn ta s thu c php ton gn c dng:
v = e;
Biu thc gn c th s dng trong cc php ton v cc cu lnh nh cc biu thc khc.
V d 1: nu nh khi ta vit: a = b = 5; th iu c ngha l gn gi tr ca biu thc b = 5 cho bin a. Kt qa l b = 5 v a = 5.
V d 2: Cu lnh z = (y = 2)*(x = 6); s gn 2 cho y, 6 cho x v nhn hai biu thc li cho ta z = 12.
3.3 Cc php ton s hc:
Php ton nghiV d
+Php cnga+b
-Php tra-b
*Php nhna*b
/Php chiaa/b
(Chia s nguyn s b i phn thp phn)
%Php ly phn da%b
(Cho phn d ca php chia a cho b)
3.4 Cc php ton quan h v logic:
Php ton quan h v logic cho ta gi tr ng (1) hoc gi tr sai (0). Ni cch khc, khi cc iu kin nu ra l ng th ta nhn c gi tr 1, tri li ta nhn gi tr 0.
Cc php ton quan h l:Php ton nghiV d
>So snh ln hna>b
4>5 c gi tr 0
>=So snh ln hn hoc bnga>=b
6>=2 c gi tr 1
b) max=a;
else max=b;
printf(" \n Max cua hai so a=%8.2f va b=%8.2f la Max=%8.2f",a,b,max);
}
S lng nhau ca cc ton t if:C cho php s dng cc ton t if lng nhau c ngha l trong cc khi lnh (1 v 2) trn c th cha cc ton t if - else khc. Trong trng hp ny, nu khng s dng cc du ng m ngoc cho cc khi th s c th nhm ln gia cc if-else.
Ch l my s gn ton t else vi ton t if khng c else gn nht. Chng hn nh on chng trnh v d sau:
if (n>0)/* if th nht*/
if (a>b)/* if th hai*/
z=a;
else
z=b;
th else y s i vi if th hai.
on chng trnh trn tng ng vi :
if (n>0)/* if th nht*/
{
if (a>b)/* if th hai*/
z=a;
else
z=b;
}
Trng hp ta mun else i vi if th nht ta vit nh sau:
if (n>0)/* if th nht*/
{
if (a>b)/* if th hai*/
z=a;
}
else
z=b;
5.1.2 Lnh else if:
Khi mun thc hin mt trong n quyt nh ta c th s dng cu trc sau:
if (biu thc 1)
khi lnh 1;
else if (biu thc 2)
khi lnh 2;
......
else if (biu thc n-1)
khi lnh n-1;
else
khi lnh n;
Trong cu trc ny, my s i kim tra t biu thc 1 tr i n khi gp biu thc no c gi tr khc 0.
Nu biu thc th i (1,2, ...n-1) c gi tr khc 0, my s thc hin khi lnh i, ri sau i thc hin lnh nm tip theo khi lnh n trong chng trnh.
Nu trong c n-1 biu thc khng c biu thc no khc 0, th my s thc hin khi lnh n ri sau i thc hin lnh nm tip theo khi lnh n trong chng trnh.
V d:
Chng trnh gii phng trnh bc hai.
#include
void main()
{
float a,b,c,d,x1,x2;
printf("\n Nhap a, b, c:");
scanf("%f%f%f,&a&b&c);
d=b*b-4*a*c;
if (d