Xem mẫu
- Bé c«ng nghiÖp
Tr êng cao ®¼ng c«ng nghiÖp hµ néi
--- - ---
®Ò c¬ng chi tiÕt
m«n häc
kü thuËt lËp tr×nh
(Tµi liÖu gi¶ng d¹y)
Biªn so¹n: ThS. NguyÔn M¹nh Cêng
(lu hµnh néi bé)
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
Hµ néi – 8/2004
§Ò c¬ng chi tiÕt
M«n häc: Kü thuËt lËp tr×nh
Tµi liÖu tham kh¶o
1. Ng«n ng÷ lËp tr×nh C++ - GS. TS. Ph¹m v¨n Êt.
2. C++ vµ lËp tr×nh H íng ®èi tîng - GS. TS. Ph¹m v¨n Êt.
3. Kü thuËt lËp tr×nh - NguyÔn TiÕn Huy – TrÇn H¹nh Nhi.
4. Ng«n ng÷ lËp tr×nh C++ - Ng« Trung ViÖt.
….
Ch¬ng I. Giíi thiÖu vÒ ng«n ng÷ lËp tr×nh C++
1. M«i tr êng lËp tr×nh C++
Ng«n ng÷ lËp tr×nh C++ lµ mét sù më réng cña ng«n ng÷ lËp
tr×nh C, trong ®ã, chñ yÕu ®a thªm vµo ng«n ng÷ C kh¶ n¨ng lËp
tr×nh híng ®èi t îng vµ lo¹i bá nh÷ng phøc t¹p kh«ng cÇn thiÕt cña
ng«n ng÷ .
§Ó vµo m«i tr êng so¹n th¶o ch¬ng tr×nh cña C++ ta thùc hiÖn:
+ Cµi ®Æt ch¬ng tr×nh so¹n th¶o m· lÖnh C++ vµo m¸y tÝnh.
+ Vµo th môc TC30\ BIN, chän TC.Exe.
Khi ®ã, m«i tr êng so¹n th¶o C++ ®· s½n sµng.
- C¸c thao t¸c khi so¹n th¶o ch¬ng tr×nh:
Biªn so¹n: NguyÔn M ¹nh Cêng Trang 2
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
[1]. Më mét file míi: Chän File \ New hoÆc bÊm phÊm F3 sau ® ã gâ
tªn file vµo.
[2]. L u file: Chän File\ Save hoÆc bÊm phÝm F2. NÕu file cha ®îc
®Æt tªn bëi ngêi lËp tr×nh h·y ®Æt tªn.
[3]. Më mét file cã s½n: Chän File\ Open hoÆc bÊm phÝm F3. Chän
file cÇn më vµ bÊm Enter.
[4]. So¹n th¶o ch¬ng tr×nh: Ch¬ng tr×nh ®îc so¹n th¶o trong cöa sæ
so¹n th¶o. Nãi chung, khi so¹n th¶o th êng thùc hiÖn nh÷ng thao t¸c
sau:
- Di chuyÓn con trá: dïng c¸c phÝm mòi tªn, phÝm Page Up, Page
Down. phÝm Home ®a con trá vÒ ®Çu dßng, phÝm End ®a con trá
vÒ cuèi dßng.
- Sao chÐp:
Gi÷ Shift vµ phÝm mòi tªn ®Ó b«i ®en ®o¹n cÇn sao chÐp.
§a con trá tíi n¬i ®Æt ®o¹n sao chÐp vµ bÊm tæ hîp phÝm Ctrl +
K + C ®Ó d¸n.
- Di chuyÓn khèi: NÕu bÊm tæ hîp phÝm Ctrl + K + V sÏ cho phÐp
di chuyÓn ®o¹n m· ®îc b«i ®en.
- Bá b«i ®en khèi: §a con trá lªn trªn ®o¹n b«i ®en vµ bÊm tæ hîp
phÝm Ctrl + K + K ®Ó bá b«i ®en
Chó ý: Kh¸c víi ng«n ng÷ Pascal, ng«n ng÷ C++ cã ph©n biÖt
ch÷ hoa vµ ch÷ thêng.
§Ó ghi c¸c dßng chó thÝch, sö dông dÊu / / t¹i ®Çu dßng hoÆc
®Æt ®o¹n chó thÝch nh sau: / * ®o¹n chó thÝch * /
Biªn so¹n: NguyÔn M ¹nh Cêng Trang 3
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
[5]. DÞch ch¬ng tr×nh: BÊm phÝm F9 ® Ó dÞch ch¬ ng t r× nh. NÕu
ch¬ ng t r× nh cã lçi, ch¬ ng t r× nh dÞch sÏ b¸o lçi. Ch¬ ng t r× nh chØ t hùc
t hi ®îc nÕu kh«ng cã lçi.
[6]. Thùc thi ch¬ng tr×nh: BÊm tæ hîp phÝm Ctrl + F9 ®Ó thùc thi
ch¬ng tr×nh.
[7]. §Æt ®êng dÉn tíi c¸c th viÖn: Trong mét ch¬ng tr×nh viÕt
b»ng ng«n ng÷ C++ th êng sö dông c¸c hµm trong c¸c th viÖn kh¸c nhau.
Th«ng th êng, c¸c th viÖn ®Æt trong c¸c th môc TC\INCLUDE hoÆc
TC\ LIB. M«i tr êng lËp tr×nh C++ tù thiÕt ®Æt ®êng dÉn tíi c¸c th
viÖn nµy. Tuy nhiªn, trong tr êng hîp ®êng dÉn bÞ thay ®æi, ta cÇn
ph¶i thiÕt ®Æt l¹i.
B1: Trong Menu chÝnh, chän Option \ Directories.
B2: Trong Include, ®Æt ®êng dÉn tíi c¸c th viÖn cã ®u«i .h.
Trong Libraries, ®Æt ®êng dÉn tíi c¸c th viÖn ®u«i .lib.
2. C¸c kiÓu d÷ liÖu c¬ b¶n trong C++
Trong C++ cã sö dông mét sè kiÓu d÷ liÖu c¬ b¶n sau:
a. KiÓu sè: bao gåm
+ Sè nguyªn ng¾n int: lµ kiÓu d÷ liÖu cã ®é dµi 2 byte, dïng ®Ó
khai b¸o c¸c biÕn nguyªn cã gi¸ trÞ trong kho¶ng –32768 -> 32767
+ Sè nguyªn ng¾n kh«ng dÊu: unsign int: ®é dµi 2 byte, khai b¸o
c¸c biÕn nguyªn cã gi¸ trÞ tõ 0 tíi 65535.
+ Sè nguyªn dµi long: lµ kiÓu d÷ liÖu cã ®é dµi 4 byte, dïng khai
b¸o c¸c biÕn nguyªn cã gi¸ trÞ trong kho¶ng – 2.147.483.648 ->
2.147.483.647.
Biªn so¹n: NguyÔn M ¹nh Cêng Trang 4
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
+ Sè nguyªn dµi kh«ng dÊu: unsign long: ® é dµi 4 byte, khai b¸o
c¸c biÕn cã gi¸ t rÞ tõ 0 t íi 4.294.967.295.
+ Sè thùc (dÊu ph¶y ®éng) float: kÝch th íc 4 byte khai b¸o c¸c
-38 38
biÕn thùc tõ 3.4*10 -> 3.4*10 .
-308
+ Sè thùc double: kÝch th íc 8 byte, cã ph¹m vi tõ 1.7*10 - >
308
1.7*10
+ Sè thùc (dÊu ph¶y ®éng, ®é chÝnh x¸c kÐp) dµi: long double:
-4932 4932
kÝch th íc 10 byte, khai b¸o c¸c biÕn tõ 3.4 * 10 tíi 1.1 * 10 .
b. KiÓu ký tù: bao gåm
+ KiÓu ký tù char: khai b¸o biÕn chøa mét ký tù.
+ KiÓu con trá ký tù char *: t¬ng ®¬ng víi chuçi ký tù.
3. BiÕn vµ c¸ch khai b¸o biÕn
§Ó khai b¸o biÕn trong C++ ta dïng có ph¸p sau:
Trong ®ã:
- : cã thÓ lµ mét trong c¸c kiÓu d÷ liÖu chuÈn, cã
thÓ lµ c¸c kiÓu tù ®Þnh nghÜa.
- : ®îc ®Æt tu©n theo quy t¾c ®Æt tªn biÕn trong ng«n
ng÷ lËp tr×nh Pascal.
- C¸c biÕn c¸ch nhau bëi dÊu ph¶y, c¸c khai b¸o c¸ch nhau bëi dÊu
chÊm ph¶y.
VD: int a, b, c;
long so;
char * s;
Biªn so¹n: NguyÔn M ¹nh Cêng Trang 5
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
Chó ý: cã t hÓ khai b¸o biÕn t¹i bÊt kú ® © u t rong ch¬ ng t r× nh
vµ t ríc khi sö dông.
4. CÊu tróc mét ch¬ng tr×nh ®¬n gi¶n
Mét ch¬ng tr×nh ®¬n gi¶n trong C++ th êng cã cÊu tróc nh sau:
//Khai b¸o c¸c th viÖn sö dông trong ch¬ng tr×nh.
#include
….
main() //tªn hµm chÝnh
{
// NhËp d÷ liÖu
// TÝnh to¸n
// In c¸c kÕt qu¶
}
VD1. xÐt ®o¹n tr×nh sau:
#include
#include
#include
main()
{
clrscr();
int a, b; / / k hai b¸o hai biÕn nguyªn a, b
couta;
coutb;
int c;
c = a+b;
cout
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
Trong vÝ dô trªn, ta cã:
- C¸c c©u lÖnh #include : khai b¸o mét sè t h viÖn sÏ
sö dông. C¸ c t h viÖn nµy cã chøa s½n c¸c hµm sÏ sö dông t rong ch-
¬ ng t r× nh. Ch¼ng h¹n t h viÖn iost ream.h chøa c¸c hµm cout, cin…
- Tõ khãa main() ®Ó b¾t ®Çu th©n ch¬ng tr×nh chÝnh.
- C¸c ký tù {, } ®Ó b¾t ®Çu vµ kÕt thóc mét khèi lÖnh trong ch¬ng
tr×nh. C¸c ký tù nµy t ¬ng tù c¸c tõ khãa nµy Begin vµ End trong
Pascal.
- clrscr(); lµ mét lêi gäi hµm xãa mµn h×nh. Hµm n·y ®· cã s½n
trong th viÖn stdio.h. CÇn lu ý c¸ch gäi hµm kh«ng ®èi, kh¸c víi
Pascal.
- C¸c lÖnh cout, cin cã s½n trong th viÖn iostream.h cho phÐp in lªn
mµn h×nh c©u th«ng b¸o vµ nhËn gi¸ trÞ nhËp vµo tõ bµn phÝm
cho hai biÕn a, b. chóng t ¬ng tù nh lÖnh Write vµ Read trong
Pascal.
- LÖnh getch() cã trong th viÖn conio.h cho phÐp dõng mµn h×nh l¹i
®Ó xem kÕt qu¶. Mµn h×nh sÏ dõng cho tíi khi mét phÝm bÊt kú
®îc bÊm.
- LÖnh return 0; dïng ®Ó chØ ra kÕt qu¶ tr¶ vÒ cña hµm.
VD2. ViÕt ch¬ng tr×nh nhËp vµo hai sè nguyªn a, b sau ®ã in
ra mµn h×nh tæng, hiÖu, tÝch, th ¬ng cña hai sè nguyªn ®ã.
#include
#include
#include
main()
{
clrscr();
int a, b; / / k ha i b¸o hai biÕn nguyªn a, b
Biªn so¹n: NguyÔn M ¹nh Cêng Trang 7
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
couta;
coutb;
int T, H, TI, TH;
T = a+b;
H = a-b;
TI = a*b;
TH= a/b;
cout
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
Chó ý: - cã t hÓ sö dông liªn t iÕp nhiÒu to¸ n tö xuÊt t rªn mét
dßng cout.
VD: cout< < ” Gi¸ t rÞ cña a[“< < i
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
cout.precision(2);
coutc;
Biªn so¹n: NguyÔn M ¹nh Cêng Trang 1
0
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
Bµi t Ëp vÝ dô: ViÕt ch¬ ng t r× nh nhËp vµo mét sè t hùc x, in ra
2
mµn h× nh gi¸ t rÞ cña F(x) = sin (x) + cos(x) víi ®é chÝnh x¸c 2 ch÷ sè
sau dÊu ph¶y.
#include
#include
#include
void main()
{
clrscr();
float x, F;
coutx
cout.precision(2);
cout
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
VD: CÇn ®a ra c¸c gi¸ t rÞ cña c¸c biÕn a, b, c kiÓu nguyªn, ta
viÕt:
printf (“ Gi¸ trÞ cña a b c la %d %d %d, a, b, c);
LÖnh nhËp: scanf.
Có ph¸p: scanf(“chuçi c¸c ®Æc t¶”, , …);
Trong ®ã, mçi biÕn cÇn ph¶i cã mét ®Æc t¶ t ¬ng øng. LÖnh
scanf nhËp gi¸ trÞ vµo c¸c biÕn th«ng qua ®Þa chØ cña biÕn.
c. C¸c lÖnh nhËp xuÊt trong Conio.h
LÖnh xuÊt: puts.
Có ph¸p: puts(p);
Trong ®ã p lµ mét con trá, trá tíi mét ký tù hoÆc h»ng x©u ký
tù. NÕu p lµ biÕn chøa 1 ký tù th× p ph¶i cã kiÓu char *, nÕu p lµ
kiÓu char th× ph¶i lµ mét m¶ng kiÓu char.
LÖnh puts sÏ ®a c¸c ký tù ®îc con trá p trá tíi lªn mµn h×nh.
VD:
char * p = “a”;
puts(p);// ®a ký tù a ra mµn h×nh
char q[100] = “Ha Noi”;
puts(q);// ®a Ha Noi ra mµn h×nh.
LÖnh nhËp: gets().
Có ph¸p: gets(p);
Trong ®ã, p lµ biÕn con trá ký tù, nh vËy, p ph¶i cã kiÓu char
* . NÕu p lµ biÕn kiÓu char th× ph¶i lµ mét biÕn m¶ng kiÓu char.
(char * p hoÆc char p[])
Biªn so¹n: NguyÔn M ¹nh Cêng Trang 1
2
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
C¸ c lÖnh gets, puts t hÝch hîp cho viÖc nhËp xuÊt c¸c biÕn kiÓu
x© u ký t ù.
6. BiÓu thøc trong C++
Mét biÓu thøc th«ng th êng ®îc cÊu thµnh tõ hai thµnh phÇn: c¸c
to¸n tö vµ c¸c to¸n h¹ng.
a. C¸c to¸n tö: ®îc t¹m chia lµm 3 lo¹i
C¸c to¸n tö sè häc
Trong C++ sö dông c¸c to¸n tö sè häc cho trong b¶ng sau:
Stt To¸n tö Ng«n ng÷ Ng«n ng÷ C++
Pascal
1 Céng + +
2 Trõ - -
3 Nh©n * *
4 Chia / /
5 §ång d mod %
6 T¨ng 1 ®¬n +1 ++
vÞ
7 Gi¶m 1 ®¬n -1 --
vÞ
8 G¸n := =
VD:
int a, b;
int T, H, TI, TH, D;
a=8;
b=3;
T = a+b;
H = a-b;
TI = a*b;
Biªn so¹n: NguyÔn M ¹nh Cêng Trang 1
3
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
TH = a/b;
D = a%b;
a++;
b--;
C¸c to¸n tö Logic
Trong C+ + sö dông c¸c to¸ n tö Logic cho t rong b¶ng sau:
Stt To¸n tö Ng«n ng÷ Ng«n ng÷ C++
Pascal
1 Vµ And &&
2 HoÆc Or | |
3 Phñ ®Þnh Not !
C¸c to¸n tö so s¸nh
Trong C++ sö dông c¸c to¸n tö So s¸nh cho trong b¶ng sau:
Stt To¸n tö Pascal Ng«n ng÷ C++
1 Lín h¬n > >
2 Nhá h¬n < <
3 Lín h¬n hoÆc >= >=
b»ng
4 Nhá h¬n hoÆc
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
Trong mét biÓu t høc cã sö dông nhiÒu to¸ n tö, t hø t ù u t iªn c¸c
to¸ n tö nh sau (theo chiÒu tõ t r¸ i qua ph¶i, tõ t rªn xuèng díi):
! ++ -- * / % + -
< >= == != && | |
VD: ViÕt biÓu thøc to¸n häc sau b»ng ng«n ng÷ C++ (nÕu cÇn)
vµ cho biÕt thø tù thùc hiÖn c¸c phÐp to¸n.
5x 6 +2/7 + (6 mod 3)
i + j ++
(i+j)++
Biªn so¹n: NguyÔn M ¹nh Cêng Trang 1
5
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
Ch¬ng II. C¸c cÊu tróc ®iÒu khiÓn trong C++
1. Giíi thiÖu chung
Mét phÇn rÊt quan t räng t rong mét ng«n ng÷ lËp t r× nh lµ c¸c
cÊu t róc ® iÒu khiÓn.
Trong Pascal ta ® · lµm quen víi 3 lo¹i cÊu t róc ® iÒu khiÓn:
Chän, RÏ nh¸ nh, LÆp. Ta sÏ lÇn lît xem xÐt c¸c lo¹i cÊu t róc ® iÒu
khiÓn ® ã t rong ng«n ng÷ C+ + . Ta t¹m t hêi chia c¸c cÊu t róc ® iÒu
khiÓn t rong C+ + t heo c© y t hø bËc sau:
CÊu tr óc ®iÒu k hiÓn
CÊu t r óc CÊu t r óc CÊu t r óc
chän r Ï nh¸nh lÆp
CÊu t r óc CÊu t r óc
lÆp víi sè lÆp víi sè
lÇn lÆp lÇn lÆp
CÊu t r óc CÊu t r óc
lÆp kiÓm lÆp kiÓm
t r a ®iÒu t r a ®iÒu
2. CÊu tróc rÏ nh¸nh
Trong thùc tÕ, khi gi¶i quyÕt mét c«ng viÖc th êng ta ph¶i lùa
chän nhiÒu ph¬ng ¸n gi¶i quyÕt kh¸c nhau. Ngêi ta th êng biÓu diÔn
vÊn ®Ò nµy b»ng mÖnh ®Ò:
Biªn so¹n: NguyÔn M ¹nh Cêng Trang 1
6
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
- [1]. NÕu … th× …;
- [2]. NÕu … th× … ngîc l¹i th×…
§Ó m« pháng hai mÖnh ® Ò ® ã, t rong ng«n ng÷ lËp t r× nh C+ +
®a ra cÊu t róc r Ï nh¸ nh.
CÊu t róc r Ï nh¸ nh cã hai d¹ng nh t rong s¬ ® å khèi díi ® © y.
BT§K BT§K
Thùc hiÖn Thùc hiÖn
N lÖnh1 lÖnh 2
Thùc hiÖn lÖnh Y N
Y
a). M« t¶ mÖnh ®Ò [1] b) M« t¶ mÖnh ®Ó [2]
Có ph¸p:
(m« pháng mÖnh ®Ò 1)
if ()
;
(M« pháng mÖnh ®Ò 2)
if ()
;
Biªn so¹n: NguyÔn M ¹nh Cêng Trang 1
7
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
else
;
ý nghÜa:
[1]. nÕu < biÓu t høc ® iÒu kiÖn> nhËn gi¸ t rÞ ® óng, sÏ t hùc
hiÖn < LÖnh> , ngîc l¹i, bá qua lÖnh if.
[2]. nÕu < biÓu t høc ® iÒu kiÖn> nhËn gi¸ t rÞ ® óng, sÏ t hùc
hiÖn < LÖnh 1> , ngîc l¹i, nÕu < biÓu t høc ® iÒu kiÖn> nhËn gi¸ t rÞ sai
sÏ t hùc hiÖn < LÖnh 2> .
Chó ý:
- BiÓu thøc ®iÒu kiÖn ®îc ®Æt gi÷a hai dÊu ngoÆc ®¬n “(“
“)”.
- C©u lÖnh tr íc else cã dÊu “;”.
- vµ cã thÓ lµ mét khèi lÖnh. C¸c khèi
lÖnh ®îc ®Æt trong hai dÊu { }.
VD: LËp ch¬ng tr×nh nhËp vµo mét sè nguyªn. KiÓm tra tÝnh
ch½n lÎ cña sè ®ã vµ th«ng b¸o ra mµn h×nh.
#include
#include
#include
main()
{
clrscr(); int a;
cout>a;
if (a%2 = = 0)
cout
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
getch();
}
C¸ c lÖnh if cã t hÓ lång nhau t heo nghÜa: C¸ c c© u lÖnh bªn
t rong mét m Önh ® Ò if l¹i cã t hÓ lµ c¸c mÖnh ® Ò if. C¸ c m Önh ® Ò if
lång nhau t ¬ ng ®¬ ng víi mét m Önh ® Ò if mµ biÓu t høc ® iÒu kiÖn
cña nã lµ sù kÕt hîp biÓu c¸c biÓu t høc ® iÒu kiÖn cña c¸c mÖnh ® Ó
if lång nhau t heo phÐp vµ (AND).
Mçi lÖnh if ®ñ sÏ cho phÐp lùa chän 2 kh¶ n¨ng ®Ó thùc hiÖn.
Trong tr êng hîp cã n kh¶ n¨ng lùa chän, ta cã thÓ sö dông n-1 lÖnh if
®ñ lång nhau.
VD: ViÕt ch¬ng tr×nh thùc hiÖn viÖc nhËp vµo sè tiÒn cña
kh¸ch hµng ph¶i tr¶. NÕu sè tiÒn tõ 300000 tíi 400000, khuyÕn m¹i
20%. NÕu sè tiÒn tõ 400000 trë lªn, khuyÕn m¹i 30%. C¸c tr êng hîp
kh¸c kh«ng ®îc khuyÕn m¹i. TÝnh vµ in sè tiÒn khuyÕn m¹i cña kh¸ch
lªn mµn h×nh.
#include
#include
#include
main()
{
clrscr();
int T, km;
coutT;
if (T>=300000 && T 40000)
km = 30*T /100;
else
km = 0;
Biªn so¹n: NguyÔn M ¹nh Cêng Trang 1
9
- §Ò c¬ng chi tiÕt Kü thuËt lËp
tr×nh
cout
nguon tai.lieu . vn