Download - Giao an LTC

Transcript

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


Top Related