giao an ltc

97
Mục lục Mục lục Mục lục................................................... 1 CHƯƠNG 1 : CÁC KHÁI NIÊM CƠ BẢN..........................4 1.1 Giới thiệu ngôn ngữ C:..............................4 1.2 Các yếu tố cơ bản:..................................4 1.2.1 Tập ký tự dùng trong ngôn ngữ C:.................4 1.2.2 Từ khoá:......................................... 4 1.2.3 Tên:............................................. 5 1.3 Các kiểu dữ liệu cơ bản:............................5 1.3.1 Kiểu ký tự (char):..............................5 1.3.2 Kiểu số nguyên:..................................6 1.3.3 Kiểu dấu phảy động (số thực):....................6 1.4 Định nghĩa kiểu bằng TYPEDEF:.......................6 1.4.1 Công dụng:.......................................6 1.4.2 Cách viết:.......................................6 1.5 Hằng:............................................... 7 1.5.1 Tên hằng:........................................7 1.5.2 Các loại hằng:...................................7 1.5.2.1 Hằng int:.....................................7 1.5.2.2 Hằng long:....................................7 1.5.2.3 Hằng int hệ 8:................................7 1.5.2.4 Hằng int hệ 16:...............................7 1.5.2.5 Hằng ký tự:...................................8 1.5.2.6 Hằng chuỗi ký tự:.............................8 1.6 Biến:............................................... 9 1.7 Mảng:............................................... 9 CHƯƠNG 2 : NHẬP XUẤT TRONG NGÔN NGỮ C...................13 2.1 Các thư viện nhập xuất chuẩn:......................13 2.2 Các hàm nhập xuất chuẩn:...........................13 2.2.1 Hàm getchar ():.................................13 2.2.2 Hàm putchar ():.................................13 2.2.3 Hàm getch():....................................13 2.2.4 Hàm putch():....................................13 2.2.5 Hàm printf:.....................................14 2.2.6 Hàm scanf:......................................16 CHƯƠNG 3 : BIỂU THỨC....................................18 3.1 Biểu thức:.........................................18 3.2 Lệnh gán và biểu thức:.............................18 Trang 1

Upload: snakesv

Post on 06-Nov-2015

226 views

Category:

Documents


1 download

DESCRIPTION

Bai giang lap trinh ngon ngu C. Cung cap nhung kien thuc co ban cho nguoi bat dau hoc.

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