You are on page 1of 4

Chng 1.

CC KHI NIM C BN

1.1. Thut ton v cu trc d liu - D liu: ni chung l bt k nhng g m my tnh x l - Kiu d liu: Mi kiu d liu gm cc gi tr c cng chung cc tnh cht no v trn xc nh cc php ton - Cu trc d liu: l cch t chc v lu tr d liu trong my tnh - Thut ton (hay gii thut): l tp hp cc bc theo mt trnh t nht nh gii mt bi ton - Gia cu trc d liu v thut ton c quan h mt thit. Nu ta bit cc t chc cu trc d liu hp l th thut ton s n gin hn. Khi cu trc d liu thay i th thut ton s thay i theo 1.2. Cc kiu d liu c bn trong ngn ng C 1.2.1. Cc kiu d liu n gin C gi tr l n, - Kiu k t: c gi tr l mt k t bt k t gia hai du nhy n, c kch thc 1 Byte v biu din c mt k t thng qua bng m ASCII, gm 2 kiu: Kiu Phm vi biu din Kch thc char t -128 n 127 1 Byte unsigned char t 0 n 255 1 Byte - Kiu s nguyn: c gi tr l mt s nguyn, gm cc kiu: Kiu Phm vi biu din Kch thc int t -32768 n 32767 2 Byte unsigned int t 0 n 65535 2 Byte long t -2147483648 n 2147483647 4 Byte unsigned long t 0 n 4294967295 4 Byte Nhn xt: Cc kiu k t cng c th xem l mt dng ca kiu s nguyn - Kiu s thc: C gi tr l mt s thc, gm cc kiu: Kiu Phm vi biu din Kch thc float t 3.4E-38 n 3.4E+38 4 Byte double t 1.7E-308 n 1.7E+308 8 Byte long double t 3.4E-4932 n 1.1E4932 10 Byte 1.2.2. Cc kiu d liu c cu trc 1.1.1.1. Kiu mng Cc thnh phn c cng kiu d liu, mi thnh phn gi l mt phn t, cc phn t c nh ch s t 0 tr i. V d vi khai bo float A[5] Khai bo A l mt mng cc s thc gm 5 phn t l A[0] , A[1] , A[2] , A[3] , A[4] 1.1.1.2. Kiu bn ghi Cc thnh phn c th c kiu d liu khc nhau, mi thnh phn gi l mt trng V d: struct SVIEN { char ten[7]; int namsinh; float cao; }; CTDL - C Trang 1

Khai bo SVIEN l kiu bn ghi gm 3 trng ten, namsinh, cao 1.3. Kiu con tr 1.3.1. nh ngha Con tr l mt bin m ni dung ca n l a ch ca mt i tng khc. i tng y c th l mt bin hoc mt hm 1.3.2. Khai bo kiu con tr kiudliu *tnbincontr ; Vd char c, *pc; // pc l con tr kiu k t char int i, n, *p, *p2; float f, r, *pf; 1.3.3. Hm a ch &bin Tr v a ch ca mt bin trong b nh, v d &n 1.3.4. Cc php ton trn kiu con tr - Php gn: Ta c th gn gi tr ca hai bin con tr cng kiu cho nhau, hoc gn a ch ca mt bin cho bin con tr cng kiu - Php cng thm vo con tr mt s nguyn (i vi con tr lin quan n mng) - Php so snh bng nhau = = hoc khc nhau != - Hng con tr NULL: cho bit con tr khng ch n i tng no c, gi tr ny c th c gn cho mi bin con tr kiu bt k - Php cp pht vng nh Lnh bincontr = NEW kiudliu; Vd lnh p = new int; - Php thu hi vng nh Lnh DELETE bincontr; Vd lnh delete p; 1.4. Kiu tham chiu 1.4.1. nh ngha Trong C++ c 3 loi bin Bin gi tr cha mt gi tr d liu thuc v mt kiu no (nguyn, thc, k t . . . ) Bin con tr cha a ch ca mt i tng. Hai loi bin ny u c cp b nh v c a ch Loi th ba l bin tham chiu, l bin khng c cp pht b nh, khng c a ch ring, c dng lm b danh cho mt bin khc v dng chung b nh ca bin ny 1.4.2. Khai bo kiu tham chiu C php: kiu d liu &tn bin tham chiu = tn bin; Tn bin l tn bin cng kiu vi bin tham chiu ang c khai bo, bin tham chiu s tham chiu n bin cng kiu ny Vd float u, v; Float &x=u; Khai bo 2 bin thc u v v Bin tham chiu x tham chiu n bin u cng kiu thc, dng chung vng nh vi bin u. Khi nhng thay i ca bin u cng l nhng thay i ca bin x v ngc li Vd int m; int &n=m; m=25; cout << \n m= << m; cout << \n n= << n; CTDL - C Trang 2

n=n+10; 1.4.3. ng dng kiu tham chiu #include <iostream.h> #include <conio.h> void doi(int x, int &y, int *z) { x=x+1; y=y+2; *z=*z+4; } void main() { int i=10, j=20, k=30; cout << "\n Truoc khi goi:" << i << j << k; doi(i,j,&k); cout << "\n Sau khi goi:" << i << j << k; getch(); } 1.5. qui 1.5.1. nh ngha Mt chng trnh gi ngay chnh n thc hin gi l tnh qui ca chng trnh 1.5.2. Cc nguyn l khi dng k thut qui - Tham s ha bi ton: th hin kch c ca bi ton - Tm trng hp d nht: m ta bit ngay kt qu - Tm trng hp tng qut: a bi ton vi kch c ln v bi ton c kch c nh hn 1.5.3. V d Bi ton Thp H Ni: Cn chuyn n a t cc A (trong a ln di, a nh trn) sang cc B vi cc iu kin: . Mi ln ch c chuyn mt a . Trn cc cc, lun lun a ln di, a nh trn . c dng cc trung gian th ba C Gii: - Tham s ha bi ton: Gi n: l s lng a cn chuyn x: cc xut pht y: cc ch z: cc trung gian #include <iostream.h> #include <conio.h> #include <stdio.h> int i; void chuyen(int &n, char x, char y, char z) { if (n==1) { i++; cout << "\n" << i << ":" << x << "->" << y; } else { chuyen(n-1,x,z,y); CTDL - C Trang 3

chuyen(1,x,y,z); chuyen(n-1,z,y,x); } } void main() { int n; cout <<"\n Nhap n:"; cin >> n; chuyen(n,'A','B','C'); getch(); } ---o-O-o---

CTDL - C Trang 4

You might also like