You are on page 1of 23

Ngn Ng Lp Trnh

C++
Cu trc lp (tip theo)

mc
Cu lnh for
Cu lnh do-while
So snh while, for v do-while
Vng lp lng nhau
G ri vng lp
Cc li lp trnh thng gp

Vng lp

Cu lnh for
Cu lnh for thch hp vi vng lp thc hin cc
cng vic ging nhau da trn bin m.
V d 1: In ra mn hnh 20 du *
dem = 0;
while (dem < 20)
{
cout<<*<<endl;
dem ++;
}

Vng lp

for
for (dem
(dem == 0;
0; dem
dem << 20;
20; dem++)
dem++)
cout<<*<<endl;
cout<<*<<endl;

Cu lnh for
Gii thch qu trnh thc hin:
for
for (dem
(dem == 0;
0; dem
dem << 20;
20; dem++)
dem++)
cout<<*<<endl;
cout<<*<<endl;

khi to dem = 0;
kim tra (dem < 20) thy ng, vy in ra du *
tng dem ++ vy dem = 1
quay li kim tra (dem < 20) thy ng, vy in ra du *
tng dem ++ vy dem = 2
...
tng dem ++ vy dem = 19
quay li kim tra (dem < 20) thy ng, vy in ra du *
tng dem ++ vy dem = 20
quay li kim tra (dem < 20) thy sai, vy ra khi vng lp

Vng lp

Cu lnh for
V d 2 : Tnh lng cho cc cng nhn

for (dem_cn = 0; dem_cn < 10; dem_cn ++)


{
cout<<So san pham lam duoc : ";
cin>>SoSP;
Luong = SoSP * 5;

cout<<Luong cua ban la : "<<Luong<<" nghin dong"<<endl;

Vng lp

Bi tp
Tnh tng S = 13 + 23 + 33 + ... + 103
In ra mn hnh bng gi tr
i
1
2
3
4
5
6
7

Vng lp

i*i
1
4
9
16
25
36
49

sqrt(i)
1.0
1.4
1.7
2.0
2.2
2.4
2.6

Li gii
Tnh tng S = 13 + 23 + 33 + ... + 103
tong = 0;
for (i = 1; i <= 10; i++)

tong += i*i*i;

In bng
cout.setf(ios::fixed); // hien thi theo ki phap dau cham
cout.precision(1); // lay 1 so le sau dau cham
cout<<setw(3)<<i<<setw(5)<<i*i <<setw(7)<<sqrt(i)<<endl;

for (i = 1; i <= 7; i++)

cout<<setw(3)<<i<<setw(6)<<i*i<<setw(9)<<sqrt(i)<<endl;
Vng lp

Cu lnh for
Bin iu khin trong lnh for c th tng gim vi
mt lng bt k.
V d: Tnh tng cc s l nm t 1 n N
sum = 0;
for (le = 1; le <= N; le += 2)

sum += le;

Vng lp

Bi tp
In ra mn hnh bng i nhit t C sang F
Celsius

20

15

10

-5
-10
-15
-20

Fahrenheit
68.00
59.00
50.00
41.00
32.00
23.00
14.00
5.00
-4.00

Cng thc: F = 1.8*C + 32


Vng lp

Cu lnh for
C php:
for (khi to; biu thc iu kin; cp nht bin iu khin)

<Cu lnh>;

Gii thch:
Thc hin cu lnh khi to;
Kim tra biu thc iu kin;
Nu iu kin ng th

Thc hin <Cu lnh>;


Thc hin cp nht bin iu khin
Quay li kim tra iu kin;

Nu iu kin sai th ra khi vng lp


Vng lp

10

Cu lnh do-while
Cu lnh do-while thch hp vi nhng vng lp cn
thc hin t nht mt ln lp
Lm thc n (menu)
Kim tra lnh nhiu ln

C php

do
{

<Cu lnh>;
} while (biu thc iu kin)

Gii thch

Lm <Cu lnh>.
Kim tra iu kin, nu ng th
Quay li lm <Cu lnh>
Kim tra iu kin
Kim tra iu kin, nu sai th
Ra khi vng lp.

Vng lp

11

Cu lnh do-while
Lm thc n:

void thuc_don()
{
cout<<1. Tinh dien tich hinh tron<<endl;
cout<<2. Tinh dien tich tam giac<<endl;
cout<<3. Thoat<<endl;
}
do
{
thuc_don();
cout<<Chon mot so: ;
cin>>so;
switch (so)...
} while (so != 3);

Vng lp

12

Cu lnh do-while

Kim tra lnh nhiu ln

do
{
cout<<Nhap ban kinh: ;
cin>>ban_kinh;
ket_qua = chu_vi_ht(ban_kinh);
cout<<Chu vi la: <<ket_qua;
} while (ban_kinh != 0);

Vng lp

13

Break v Continue

Lnh break dng thot ngay ra khi vng lp


Lnh continue dng quay tr li ngay u vng lp

do
{
cout<<Nhap mot so: ;
cin>>so;
if (so == 0)
break;
cout<<Hello<<endl;
} while (so != 0);

Vng lp

14

So snh cc cu lnh lp
while:
Thch hp vi vng lp cha bit trc s ln lp
Cu lnh trong while c th khng c thc hin
1 ln no nu iu kin kim tra l sai ngay t
u.

for:
Thch hp vi vng lp bit trc s ln lp

do-while:
Thch hp vi vng lp c t nht l mt ln lp

Vng lp

15

Vng lp lng nhau


V d 1: In ra mn hnh 20 dng v 30 ct cc ngi sao

******************************
******************************
******************************
******************************
...

Li gii:

for (dong = 1; dong <= 20; dong ++)


{
for (cot = 1; cot <= 30; cot ++)
cout<<*;
cout<<endl;
}

Vng lp

16

Vng lp lng nhau


V d 2: In ra mn hnh cc ngi sao nh sau

*
**
***
****
*****
******
*******

Li gii:

for (dong = 1; dong <= 7; dong ++)


{
for (cot = 1; cot <= dong; cot ++)
cout<<*;
cout<<endl;
}

Vng lp

17

G ri vng lp
Ln theo gi tr cc bin trong sau tng bc lp
Lp bng vt v d:

tong = 0;
gt = 1;
for (i = 1; i <= 6; i++)
{
gt = gt*i;
tong = tong + gt;
}
cout<<Tong: <<tong;
Tong = 1! + 2! +... + 6!

Vng lp

18

gt

tong

24

33

120

153

720

873

G ri vng lp
In ra cc gi tr trung gian trong tng bc lp

tong = 0;
gt = 1;
for (i = 1; i <= 6; i++)
{
gt = gt*i;
cout<<gt = <<gt<<endl;
tong = tong + gt;
cout<<tong = <<tong<<endl;
}
cout<<Tong: <<tong;

Vng lp

19

Bi tp
Vng lp sau cho kt qu nh th no ?

tong = 0;
for (i = 1; i <= 7; i++)
{
if (i % 2) == 1
tong = tong + i*i;
else
tong = tong i*i;
}
cout<<Tong: <<tong;
Tong = 122 222 + 322 422 + 522 622 + 722

Vng lp

20

tong

-3

-10

15

-21

28

Bi tp
Vng lp sau cho kt qu nh th no ?
for (i = 1; i <= 7; i++)
{

for (j = 1; j <= i; j++)

cout<<setw(3)<<j;

cout<<endl;
}

Vng lp

i/j 1

6 7

21

Cc li lp trnh thng gp
Nhm gia if v while
Sai iu kin lp
So snh s bng nhau gia hai s thc

Thiu { } cu lnh gp
Bin cha khi to gi tr

Vng lp

22

Bi tp
Vit chng trnh tnh gi tr
A = 1/n + 2/(n-1) + 3/(n-2) + ... + n/1
Vit chng trnh nhp vo mt s nguyn dng,
sau cho bit s c bao nhiu ch s
Vit chng trnh kim tra mt s c l s nguyn t
Vit chng trnh in ra mn hnh cy thng
*
**
***
****
*****
******
*******
Vng lp

23

You might also like