Professional Documents
Culture Documents
SV: NGUYN VN THUN LP: 11TCLC KHOA CNG NGH THNG TIN HBKN
BO CO THC HNH
MC LC
LI NI U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Phn 1: BI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Phn 2: BI GII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Bi 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Bi 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Bi 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Cu a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Cu b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Cu c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Bi 1.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Bi 1.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Bi 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Page 1
Ngy nay, Cng ngh thng tin l mt trong nhng ngnh ang pht trin rt mnh m v c nh hng su rng n mi mt i sng. N l nn tng ca nn kinh t tri thc, l thc o trnh pht trin ca mt quc gia.V vy, vic o to i ng k s cng ngh thng tin c cht lng i hi phi c ch trng v u t ng mc. i hc l mi trng c bn cung cp kin thc chuyn mn, gip sinh vin hnh thnh v pht trin nhng k nng cn thit cho cng vic. V vy, hc i i vi hnh lun l phng chm o to hng u trong cc trng i hc hin nay. Cng vi hc phn l thuyt, hc phn Thc Hnh Ton Ri Rc gip nng cao kh nng t duy ca sinh vin. Trn c s bi thc hnh c nhn, sinh vin phi bit cch phn tch v ci t gii quyt cc bi ton lit k, lp lch, nhm gii quyt nhng bi ton c tnh ng dng thc t cao. Em xin chn thnh cm n gio vin hng dn thy Nguyn Vn Nguyn gip v ch dn em hon thnh bi bo co ny. Nng, ngy 20 thng 12 nm 2012
Page 2
Bi tp 1.
1. m s xu nh phn di n: a) Bt k. b) Khng c hai bit 0 k nhau. c) C t nht hai bit 0 k nhau. 2. Vit chng trnh lit k tt c cc xu nh phn di n nh yu cu ca bi ton 1. Lit k c s th t kim tra kt qu m c. Th nhp vi nhiu gi tr khc nhau ca n. Lu cc trng hp n=1 v n=2. 3. Vit chng trnh nhp mt xu ch gm n ch ci hoa (A...Z)-trong c mt s ch ci lp. Lit k tt c cc cch sp xp n ch ci ny. C m tng s cch sp xp. 4. Xt phng trnh nguyn: x1+x2+...+xn=k vi xi0 i=1...k. Vit chng trnh nhp n, k v in ra tt c cc nghim ca phng trnh.C m tng s nghim.
Bi tp 2.
Bi ton trn th
Vit chng trnh pht sinh ngu nhin ma trn trng s Anxn= (aij) nxn ca th v hng lin thng G gm n nh (aij=aji i, j=1... n). 1. Kim tra th G c phi l th Euler hay khng. 2. Nhp hai nh x, y v dng thut ton Dijkstra tm ng i ngn nht t x n y. 3. Dng thut ton Prim tm cy ph nh nht ca th G.
Page 3
CHNG TRNH
#include <iostream> using std::cin; using std::cout; using std::endl; double S(int n); int main() { int n,a,b; do { cout << "Nhap do dai xau bit: "; cin >> n; } while (n < 0); cout << "\nSo xau nhi phan co do dai " << n << endl; cout << "\tBat ki la: " << (a = pow(double (2), n)) << endl; cout << "\tKhong co hai bit 0 ke nhau la: " << (b = S(n)) << endl; cout << "\tIt nhat hai bit 0 ke nhau la: " << (a - b) << endl; cin.get(); cin.get(); } double S(int n) { if(1 == n) return 2; else if (2 == n) return 3; else return (S(n-1) + S(n-2));
Page 4
Page 5
Page 6
CHNG TRNH
#include <iostream> #include <conio.h> using namespace std; int s[100], n, d (0); void print(); void Lke(int i); int main() { cout << "Nhap gia tri n: "; cin >> n; Lke(0); cout << "\nVay co " << d << " xau nhi phan do dai " << n << " khong co hai bit 0 ke nhau."; getch(); } void print() { for(int k = 0; k < n; k++) cout << s[k]; cout << endl; d++; } void Lke(int i) { int j; for (j = 0; j <= 1; j++) if(!(i > 0 && s[i-1] == 0 && j == 0)) { s[i] = j; if(i == n - 1) print(); else Lke(i+1); } }
Page 7
CHNG TRNH
#include <iostream> #include <conio.h> using namespace std; int s[100], n, d (0);
Page 8
Page 9
Bi 1.3: Vit chng trnh nhp mt xu ch gm n ch ci hoa (A...Z)-trong c mt s ch ci lp. Lit k tt c cc cch sp xp n ch ci ny. C m tng s cch sp xp. THUT TON
Da vo phng php sinh, cc bc thc hin: o Bc 1: Xy dng cu hnh u tin theo th t t in. Sp xp li xu . In ra cu hnh v s cch theo chiu gim: a[i] >= a[i+1] vi sp xp c khi to gi tr bng 1. o Bc 2: Lp cho ti khi t c cu hnh cui c dng a[i] <= a[i+1] vi . Trong qu trnh lp sinh xu k tip bng cch hon i 2 v tr phn t a*i+ a*j+ cho nhau. iu kin ca i l tt c cc phn t ca xu bn tri i c sp sp theo chiu tng tr phn t i. V cc phn t ca xu c lu vo v tr t 0 -> n-1 nn i n chnh l iu kin thot khi vng lp, iu kin ca j l 1 trong i 1 phn t bn tri ca phn t i c gi tr nh nht nhng a*j+ > a*i+. V dy bn tri ca phn t th i l dy tng, do chnh l v tr ca phn t u tin ln hn a[i] nu j = 1 -> i 1. Sau khi hon v a[i] v a[j] cho ta sp xp li tt c cc phn t bn tri i theo chiu gim, in ra cu hnh mi ca xu v tng bin m ln.
Page 10
Page 11
Bi 1.4 Xt phng trnh nguyn: x1 + x2 + ... + xn = k vi xi 0, i = 1 ... k. Vit chng trnh nhp n, k v in ra tt c cc nghim ca phng trnh.C m tng s nghim.
Khai bo bin: mng a*i+ cha cc nghim ca phng trnh. Nhp n v k. Dng bi ton chnh hp lp chp n ca k + 1 phn t (0,1, k): o Khai bo bin sum. o Nu k = 0 th c nghim duy nht x1 = x2 = = xn = 0. o Ngc li th gn a[i] = 0. Thay i a*i+ c a[i] k tip theo bi ton chnh hp lp. Gn sum = a[i]. Nu sum = k th in kt qu a[i]. Thut ton chnh hp lp chp k ca n phn t (phng php kit k)
for (int c = 1; c < pow(double (k + 1), n); c++) { sum = 0; int i (n);
Page 12
CHNG TRNH
#include<conio.h> #include <iostream> #include <iomanip> using namespace std; void print(int* s, int n); void main() { int n,k, s[30]; int count (0), sum (0); cout << "Nhap gia tri n, k: "; cin >> n >> k; for (int i = 1; i <= n; i++) s[i] = 0; cout << "\nNghiem cua phuong trinh:\n"; if (0 == k) { cout << ++count << '.'; print(s, n); } else { for (int c = 1; c < pow(double (k + 1), n); c++) { sum = 0; int i (n); while (s[i] == k) i--; s[i]++; for(int j = i + 1;j <= n;j++) s[j] = 0; for(int i = 1; i <= n; i++) sum += s[i]; if (k == sum) { cout << setw(3) << ++count << '.'; print(s, n); } } }
Page 13
Bi tp 2. Bi ton trn th
Vit chng trnh pht sinh ngu nhin ma trn trng s Anxn= (aij) nxn ca th v hng lin thng G gm n nh (aij=aji i, j=1... n). 1. Kim tra th G c phi l th Euler hay khng. 2. Nhp hai nh x, y v dng thut ton Dijkstra tm ng i ngn nht t x n y. 3. Dng thut ton Prim tm cy ph nh nht ca th G. Thut ton
2.1 Kim tra th Euler
Page 14
Mng v lu nh k trc nh vi, d l ng i ngn nht t v1 n vi, checked l mng boolean nh du nh vi gn nhn hay cha, min l s hiu ca nh c gi tr nh nht va xt. o Khi to cc gi tr
for(int i = 0; i < n; i++) { checked[i] = false; d[i] = INF; v[i] = x; } min = x; d[x] = 0;
o Lp cho n khi nh c ng i nh nht (min) va nhn c trng vi i: Tm nh c ng i ngn nht n vx. Gn nhn li cho cc nh khc
//Thc hin gn nhn for(int i = 0; i < n; i++) { if (!checked[i] && d[i] >= d[min] + a[min][i]) { v[i] = min; d[i] = d[min] + a[min][i]; } }
Bin complete kim tra thut ton hon thnh hay cha, Mng v lu nh k trc nh vi, w l khon cch ca nh ang xt v nh trc n, checked l mng boolean nh du nh vi gn nhn hay cha. Mng edge lu cc cnh ca cy ph nh nht. Ta chn nh u tin (nh v0 v gn nhn cho cc nh cn li). Lp cho n khi s cnh bng n 1 (count = n 1) th dng:
Page 15
Page 16
Page 17
Page 18
_ _ _ -- HT -- _ _ _
Page 19