You are on page 1of 37

K thut lp trnh

C++ v cc bi ton THCN

Gii thiu mn hc
Mn C++ gip sinh vin nm c phng php lp trnh cu trc. Ni dung gm: Cc bc gii bi ton trn my tnh. Cc khi nim v bin, hng, ton t, biu thc, cu lnh... Cu trc r nhnh v la chn. Cu trc lp. Mng. Hm. Con tr. Mt s ng dng v thut ton cho bi ton CN Cng c lp trnh s dng y l C-Free 4.0

Ni dung trnh by
My tnh, phn cng, phn mm Cc mc ca ngn ng lp trnh Ngn ng bc cao v C++ Cc thnh phn c bn ca chng trnh C++ Cc kiu d liu c bn trong C++ Cc bc gii bi ton Cc loi li v x l li

My tnh
My tnh (my vi tnh hay my in ton) l thit b hay h thng c dng tnh ton hay kim sot cc hot ng m c th biu din di dng s hay quy lut lgic.

Thit b phn cng


Phn cng (hardware) l cc thnh phn c th ca my tnh c th chm vo c nh mn hnh, chut, bn phm, my in, my qut, v my tnh, n v vi x l CPU, bo mch ch, cc loi dy ni, loa, mm, cng, CDROM, ... Da trn chc nng v cch thc hot ng ta c th phn bit phn cng ra thnh:
Thit b nhp (Input): Cc b phn thu nhp d liu hay mnh lnh nh l bn phm, chut... Thit b xut (Output): Cc b phn tr li, pht tn hiu, hay thc thi lnh ra bn ngoi nh l mn hnh, my in, loa, ...

Phn mm my tnh
Phn mm (Software) l mt tp hp nhng cu lnh c vit bng mt hoc nhiu ngn ng lp trnh theo mt trt t xc nh nhm t ng thc hin mt s chc nng hoc gii quyt mt bi ton no . Phn loi phn mm da trn phng thc hot ng
Phn mm h thng: H iu hnh, Driver, Firmware Phn mm ng dng: Vn phng, tr chi, Phn mm chuyn dch (gm trnh bin dch v trnh thng dch): Cng c lp trnh

Cc mc ca ngn ng lp trnh
Ngn ng:
Ngn ng trong my tnh l mt cng c thc hin vic giao tip gia ngi v my.

Lnh:
Lnh l tp hp mt nhm cc k hiu ca mt ngn ng no nhm gip cho ngi lp trnh c th xy dng chng trnh trn ngn ng .

Cc mc ca ngn ng lp trnh

Cu trc phn cp ca ngn ng trn my tnh

Cc mc ca ngn ng lp trnh
Ngn ng my: Gm mt tp hp cc cu lnh c m ha theo cc s nh phn 0 v 1, y l ngn ng m my hiu c khi a vo trc tip. Hp ng: Gm mt tp hp cc k t gi nh cho php thun tin trong vic vit chng trnh hn. Mt lnh ca hp ng tng ng vi mt lnh ca m my. Ngn ng bc cao: Gm cc ngn ng c thit k cho ngi lp trnh ng dng. V d:
Pascal, C, C++, Java, Fortran, Cobol

Bin dch v chy chng trnh


Ch : Tt c cc chng trnh vit bng ngn ng lp trnh
bc cao u phi c chuyn sang ngn ng my trc khi thc thi.
Lnh trong C++ cout<<Hello, World !; Kt qu chy Hello, World !

Dch lnh

Lnh m my 1110010100011101 1001110111011011

Thc hin lnh

Gii thiu C++


C++ l mt loi ngn ng lp trnh bc cao c cc chc nng hng i tng. Bjarne Stroustrup pht trin C++ theo phng thc C++ = C + OO (Object Oriented) Nhng b sung ca C++ so vi C bt u vi s thm vo ca khi nim lp, tip theo l cc khi nim hm o, ton t qu ti, a k tha v x l ngoi l. Mt s cng v h tr cho lp trnh C++:
Borland C++ ca hng Borland Microsoft Visual C++ ca hng Microsoft

Cc thnh phn c bn ca chng trnh C++


<cc th vin>: Ni cha cc chc nng c bn do trnh bin dch cung cp hoc cc chc nng do ngi lp trnh nh ngha trc . Cc th vin ny thng c ui .h <cc bin, hng, hm ton cc>: L ni cha cc thnh phn c th c s dng bt k ni no trong chng trnh <hm main>: L im vo bt u ca chng trnh.

Mt s ch khi lp trnh
Ngn ng C++ phn bit ch hoa v ch thng. V d: float khc vi Float Kt thc mi cu lnh phi c du ; (chm phy) Khng t tn bin, hng, trng vi cc t kha ca C++. V d: void, const, S dng ch thch:
S dng du // ch thch trn 1 dng lnh S dng du /* v */ ch thch trn nhiu dng lnh

Mt s khi nim v cu lnh c bn ca chng trnh C++


Lnh hin th k t ln mn hnh:
C php:
cout << chui k t 1 << chui k t 2 << << chui k t n;

Ch : Khi hin th thng tin trn mn hnh dng chui k t (1 dy cc ch) ta cn phi bao chui k t gia 2 du nhy kp. V d: Chao cac ban

V d:
Hin th ch Hello World !!! ln mn hnh
Cch 1: cout << Hello World !!!; Cch 2: cout << Hello << World << !!!;

Mt s khi nim v cu lnh c bn ca chng trnh C++


Cc k t c bit c s dng nh dng hin th d liu:
\t : Tab \n (endl) : Xung dng \\ : Hin th ch \ V d:
Hin th ch Hello World !!! vi mi ch trn 1 dng Cch 1: cout << Hello << endl << World !!!; Cch 2: cout << Hello \n World !!!;

Mt s khi nim v cu lnh c bn ca chng trnh C++


Bin: L thnh phn m gi tr ca n c th b thay i trong chng trnh. Trong C++, mun dng bin ta cn phi khai bo trc khi s dng.
Khai bo bin:
C php:
<kiu d liu> <tn cc bin>; Ch : Nu khai bo nhiu bin th cc bin cch nhau bi du phy

V d:
int a; // Khai bo mt bin s nguyn c tn l a float x; // Khai bo mt bin s thc c tn l x long m, n; // Khai bo 2 bin s nguyn di c tn l m v n

Mt s khi nim v cu lnh c bn ca chng trnh C++


Khai bo v khi gn gi tr cho bin:
C php:
<kiu d liu> <tn bin> = <gi tr>;

V d:
int a = 6; // Khai bo mt bin s nguyn c tn l a v a nhn gi tr ban u l 6. float x = 5.67; // Khai bo mt bin s thc c tn l x v x nhn gi tr ban u l 5.67 long m = 9, n = 15; // Khai bo 2 bin s nguyn di c tn l m v n; trong m nhn gi tr ban u l 9 v n nhn gi tr ban u l 15

Mt s khi nim v cu lnh c bn ca chng trnh C++


Hin th gi tr ca bin ln mn hnh
C php:
cout << tn bin 1 << tn bin 2 << . << tn bin n;

V d:
int a = 6; float b = 6.78; cout << a; // Hin th gi tr ca a ln mn hnh cout << a << b; // Hin th gi tr ca a v b ln mn hnh

Mt s khi nim v cu lnh c bn ca chng trnh C++


Hng: L thnh phn m gi tr ca n khng th b thay i trong chng trnh. Trong C++, mun dng hng ta cn phi khai bo gi tr trc khi s dng.
Khai bo v khi gn gi tr cho hng:
C php:
const <kiu d liu> <tn hng> = <gi tr>; Ch : Ngi ta quy c tn hng s lun ch hoa

V d:
const int HANG1 = 6; // Khai bo mt hng s nguyn c tn l HANG1 v gi tr ca hng s ny l 6 const float PI = 3.14, E = 2.72; // Khai bo 2 hng s thc c tn l PI v E; trong PI nhn gi tr l 3.14 cn E nhn gi tr 2.72

Mt s khi nim v cu lnh c bn ca chng trnh C++


Hin th gi tr ca hng ln mn hnh
C php:
cout << tn hng 1 << tn hng 2 << . << tn hng n;

V d:
const int HANG1 = 6; const float PI = 3.14, E = 2.72; cout << HANG1; // Hin th gi tr ca HANG1 ln mn hnh cout << PI << E; // Hin th gi tr ca hng PI v E ln mn hnh

Mt s khi nim v cu lnh c bn ca chng trnh C++


Cu lnh tng qut hin th d liu ln mn hnh:
C php:
cout << tham s 1 << tham s 2 << << tham s n;

Tham s: L d liu kiu chui, bin, hng,

V d:
int xep_thu = 6; float diem_trung_binh = 9.4; cout << Ban Trung co diem trung binh la: << diem_trung_binh << va xep thu << xep_thu << o trong lop ! << endl;

Mt s khi nim v cu lnh c bn ca chng trnh C++


Cu lnh nhp d liu cho bin t bn phm
C php:
cin >> bin 1 >> bin 2 >> . >> bin n;

V d:
Nhp gi tr cho bin s nguyn x ri hin th gi tr ca x ln mn hnh
int x; cout << Hay nhap gia tri cho bien x: ; cin >> x; cout << Gia tri cua bien x la: << x << endl;

Mt s khi nim v cu lnh c bn ca chng trnh C++


Ton t
Cc ton t c bn
+ (cng), - (tr), * (nhn), / (chia)

Cc ton t vi kiu s nguyn


/ (chia ly phn nguyn), % (chia ly phn d)

V d:
b2 4ac = b*b 4*a*c

Th t u tin cc ton t: Nh trong ton hc (u tin trong ngoc trc, tip n l nhn chia trc, cng tr sau)

Mt s khi nim v cu lnh c bn ca chng trnh C++


Biu thc
Biu thc n: L biu thc ch c 1 ton hng. Ton hng ny c th l mt gi tr c th, c th l mt hng hoc bin.
V d: 98 tong_day_so PI

Biu thc c ton t: L biu thc trong c s kt hp gia cc ton hng v ton t.
V d:
a+b a+b*c PI * E 23 + 56

Mt s khi nim v cu lnh c bn ca chng trnh C++


Php gn
C php:
<bin> = <biu thc>;

Quy tc: Tnh ton gi tr ca biu thc bn v phi, c gi tr bao nhiu s a vo cho bin. V d:
int a = 7, b = 9, c; c = 5; c = a + b; a = a * b + c; b = b + 1;

Cc kiu d liu c bn trong C++


Tn char short long di 1 byte 2 bytes 4 bytes M t Min gi tr C du K t hay s -128 n 127 nguyn 8 bit S nguyn 16 bit S nguyn 32 bit Trn Windows l s nguyn 32 bit -32763 n 32762 Khng du 0 n 255 0 n 65535

-2147483648 0 n n 4294967295 2147483647 nh kiu long nh kiu long

int

Trn Windows l 4 bytes

Cc kiu d liu c bn trong C++


Tn float di 4 bytes M t S thc dng du phy ng S thc dng du phy ng S thc dng du phy ng Kiu logic Min gi tr 3.4E-38 n 3.4E+38

double

8 bytes

1.7E-308 n 1.7E+308

long double

10 bytes

1.2E-4932 n 1.2E+4932

bool

1 byte

true hoc false

p kiu
p kiu c s dng a kiu d liu ca mt bin hay mt hng v dng d liu c kiu mong mun ti mt thi im xc nh.
C php:
(kiu d liu) <tn bin>;

V d:
int a = 6; float b = (float) a; //p bin a v s thc v gn cho b, tuy nhin a vn l s nguyn

p kiu
p kiu trong biu thc:
Quy tc tnh ton trong biu thc:
<s nguyn> <ton t> <s nguyn> => <s nguyn> <s thc> <ton t> <s thc> => <s thc> <s nguyn> <ton t> <s thc> => <s thc>

V d:
int a = 5; float x = 6.7; cout << x * a << endl; cout << (int) x * a << endl;

Cc bc gii bi ton
1. 2. u bi: Tnh tin Su Tp Phn tch bi ton
Tnh gi tr ca mt b su tp gm cc ng 5 xu v 1 xu. Input : S ng nickel (5 xu) v penny (1 xu). Output : Gi tr tin ca b su tp bng la v xu. Bit rng : 1 ng nickel = 5 xu 1 ng penny = 1 xu 1 la = 100 xu

Cc bc gii bi ton
3. Thit k thut ton
1. 2. 3. 4. Nhp s ng nickel v ng penny Tnh tng gi tr xu i gi tr xu sang la v xu l Hin th kt qu la v xu l

4. Lm mn (refine) thut ton


Tnh tng gi tr xu 1. Tng gi tr xu = 5*S ng nickel + S ng penny. i gi tr xu sang la v xu l 1. S la = Phn nguyn ca Tng gi tr xu chia 100. 2. S xu l = Phn d ca Tng gi tr xu chia 100.

Cc bc gii bi ton
5. Ci t
#include <iostream.h> void main() { // Khai bao bien int nickel; int penny; int giatrixu; int dola; int xule; // Nhap so dong nickel va penny cout<<"Nhap so dong nickel : "; cin>>nickel; cout<<"Nhap so dong penny : "; cin>>penny;

Cc bc gii bi ton
// Tinh tong gia tri xu giatrixu = 5*nickel + penny; // Tinh gia tri dola va xu le dola = giatrixu / 100; xule = giatrixu % 100; // Hien thi ket qua cout<<"Bo suu tap cua ban co gia tri la "<<dola<<" dola va <<xule<<" xu";

Cc bc gii bi ton
6. Kim tra chng trnh
Nhap so dong nickel : 37 Nhap so dong penny : 25 Bo suu tap cua ban co gia tri la 2 dola va 10 xu

Mt s loi li thng gp v cch thc x l li


Li c php xut hin khi dch chng trnh
Thiu du chm phy Bin cha khai bo G sai tn bin Khng tng thch kiu d liu => Sa li da trn li bo li ca chng trnh dch Chia cho khng Khai cn ca s m Nhp sai kiu d liu => Xem li on lnh gy li khi chy

Li xut hin khi chy chng trnh

Mt s loi li thng gp v cch thc x l li


Li logic xut hin do thit k thut ton khng ng
Li rt a dng => Xem li qu trnh ci t thut ton v thit k thut ton => Xen k cc cu lnh in kt qu trung gian => S dng chng trnh debug

Thc hnh trn my


1. 2. 3. 4. 5. 6. 7. Chy Visual C++ 6.0 To mt d n (project) To tp tin ngun Son tho lnh Dch chng trnh Chy chng trnh Sa li (nu c)

You might also like