ấu trúc rẽ nhánh chỉ cho máy tính chọn thực hiện ủa một điều ống, ến trình, ả của một điều màn hình theo th t tăng d n các s... ập vào một số nguyên từ ừ trên xuống,... Vi t chế
Trang 2do … while
Trang 3Tu n t th c thi ti n trình, ần tự thực thi tiến trình, ự thực thi tiến trình, ự thực thi tiến trình, ến trình,
m i l nh đ ỗi lệnh được thực thi theo ệnh 1; ược thực thi theo c th c thi theo ự thực thi tiến trình,
m t chu i t trên xu ng, ột chuỗi từ trên xuống, ỗi lệnh được thực thi theo ừ trên xuống, ống, xong l nh này r i chuy n ệnh 1; ồi chuyển ển
xu ng l nh k ti p ống, ệnh 1; ến trình, ến trình,
Lệnh 1
Lệnh 2
Lệnh 3
Trang 5*C u trúc r nhánh ch cho máy tính ch n th c hi n ấu trúc rẽ nhánh chỉ cho máy tính chọn thực hiện ẽ nhánh chỉ cho máy tính chọn thực hiện ỉ cho máy tính chọn thực hiện ọn thực hiện ự thực thi tiến trình, ệnh 1;
m t dãy l nh nào đó d a vào k t qu c a m t đi u ột chuỗi từ trên xuống, ệnh 1; ự thực thi tiến trình, ến trình, ả của một điều ủa một điều ột chuỗi từ trên xuống, ều
ki n (bi u th c quan h hay bi u th c so sánh) ệnh 1; ển ức quan hệ hay biểu thức so sánh) ệnh 1; ển ức quan hệ hay biểu thức so sánh)
*G m 2 d ng: ồi chuyển ạng:
Ch xét tr ỉ cho máy tính chọn thực hiện ường hợp đúng ng h p đúng ợc thực thi theo
if (bi u th c đi u ki n) ểu ức điều kiện) ều kiện) ện)
{
<kh i l nh> ; ối lệnh> ; ện)
}
N u bi u th c đi u ki n cho ếu biểu thức điều kiện cho ểu ức điều kiện) ều kiện) ện)
k t qu ếu biểu thức điều kiện cho ả true thì th c hi n kh i l nh bên trong ực hiện khối lệnh bên trong ện) ối lệnh> ; ện) if
Trang 6Ví d :ụ: Vi t chến trình, ương trình nhập vào một số nguyên từ ng trình nh p vào m t s nguyên t ập vào một số nguyên từ ột chuỗi từ trên xuống, ống, ừ trên xuống,
1 đ n 10, n u nh p sai thì thông báoến trình, ến trình, ập vào một số nguyên từ
void main() {
cout<<"So vua nhap khong hop le"; }
}
Trang 7Xét c hai tr ả của một điều ường hợp đúng ng h p đúng và sai: ợc thực thi theo
if (bi u th c đi u ki n) ểu ức điều kiện) ều kiện) ện)
N u bi u th c đi u ki n cho k t qu ếu biểu thức điều kiện cho ểu ức điều kiện) ều kiện) ện) ếu biểu thức điều kiện cho ả true thì th c hi n kh i ực hiện khối lệnh bên trong ện) ối lệnh> ;
l nh 1, ng ện) ược lại thì cho thực hiện khối lệnh thứ 2 ại thì cho thực hiện khối lệnh thứ 2 c l i thì cho th c hi n kh i l nh th 2 ực hiện khối lệnh bên trong ện) ối lệnh> ; ện) ức điều kiện)
Trang 8Ví d 1: Nh p vào s nguyên a và b, n u a là b i s c a b thì in ụ: ập vào một số nguyên từ ống, ến trình, ột chuỗi từ trên xuống, ống, ủa một điều thông báo “a là b i s c a b”, ng ột chuỗi từ trên xuống, ống, ủa một điều ược thực thi theo ạng: c l i in “a khong la boi so cua b”
cout<<“Nhap vao a: “; cin>>a;
cout<<“Nhap vao b: “; cin>>b;
{ cout<<“a la boi so cua b“; }
Trang 9cout<<“a la boi so cua b”;
} else {
cout<<“a khong la boi so cua b”; }
Trang 10Ví d 2: Gi i và bi n lu n ph ụ: ả của một điều ệnh 1; ập vào một số nguyên từ ương trình nhập vào một số nguyên từ ng trình: ax+b=0
Trang 141 Nh p vào hai s nguyên a, b In ra màn hình giá tr ập vào một số nguyên từ ống, ị
l n nh t ớn nhất ấu trúc rẽ nhánh chỉ cho máy tính chọn thực hiện
tr l n nh t c a ba s trên và in ra k t qu ị ớn nhất ấu trúc rẽ nhánh chỉ cho máy tính chọn thực hiện ủa một điều ống, ến trình, ả của một điều
màn hình theo th t tăng d n các s (Ch đ ức quan hệ hay biểu thức so sánh) ự thực thi tiến trình, ần tự thực thi tiến trình, ống, ỉ cho máy tính chọn thực hiện ược thực thi theo c
4 Vi t ch ến trình, ương trình nhập vào một số nguyên từ ng trình nh p vào m t s nguyên n g m ba ập vào một số nguyên từ ột chuỗi từ trên xuống, ống, ồi chuyển
ch s Xu t ra màn hình ch s l n nh t v trí ữ số Xuất ra màn hình chữ số lớn nhất ở vị trí ống, ấu trúc rẽ nhánh chỉ cho máy tính chọn thực hiện ữ số Xuất ra màn hình chữ số lớn nhất ở vị trí ống, ớn nhất ấu trúc rẽ nhánh chỉ cho máy tính chọn thực hiện ở vị trí ị nào?
Ví dụ:: n=291 Ch s l n nh t n m hàng ch c ữ số lớn nhất nằm ở hàng chục ối lệnh> ; ớn nhất nằm ở hàng chục ất nằm ở hàng chục ằm ở hàng chục ở hàng chục ục (ch s 9) ữ số lớn nhất nằm ở hàng chục ối lệnh> ;
Trang 155 Vi t ch ến trình, ương trình nhập vào một số nguyên từ ng trình nh p vào s nguyên n g m ba ch ập vào một số nguyên từ ống, ồi chuyển ữ số Xuất ra màn hình chữ số lớn nhất ở vị trí
s Xu t ra màn hình theo th t tăng d n c a các ống, ấu trúc rẽ nhánh chỉ cho máy tính chọn thực hiện ức quan hệ hay biểu thức so sánh) ự thực thi tiến trình, ần tự thực thi tiến trình, ủa một điều
ch s ữ số Xuất ra màn hình chữ số lớn nhất ở vị trí ống,
Ví dụ:: n=291 Xu t ra 129 ất nằm ở hàng chục
6 Nh p vào ngày, tháng, năm Ki m tra xem ngày, ập vào một số nguyên từ ển
tháng, năm đó có h p l hay không? In k t qu ra ợc thực thi theo ệnh 1; ến trình, ả của một điều màn hình.
7 Nh p vào gi , phút, giây Ki m tra xem gi , phút, ập vào một số nguyên từ ờng hợp đúng ển ờng hợp đúng
giây đó có h p l hay không? In k t qu ra màn hình ợc thực thi theo ệnh 1; ến trình, ả của một điều
8 Vi t ch ến trình, ương trình nhập vào một số nguyên từ ng trình nh p vào ngày, tháng, năm h p l ập vào một số nguyên từ ợc thực thi theo ệnh 1;
Cho bi t năm này có ph i là năm nhu n hay không? In ến trình, ả của một điều ập vào một số nguyên từ
k t qu ra màn hình ến trình, ả của một điều
9 Vi t ch ến trình, ương trình nhập vào một số nguyên từ ng trình tính di n tích và chu vi các hình: ệnh 1;
tam giác, hình vuông, hình ch nh t và hình tròn v i ữ số Xuất ra màn hình chữ số lớn nhất ở vị trí ập vào một số nguyên từ ớn nhất.
nh ng thông tin c n đ ữ số Xuất ra màn hình chữ số lớn nhất ở vị trí ần tự thực thi tiến trình, ược thực thi theo c nh p t bàn phím ập vào một số nguyên từ ừ trên xuống,
Trang 1610 Vi t chến trình, ương trình nhập vào một số nguyên từ ng trình tính ti n cều ướn nhất.c TAXI Bi t ến trình,
r ng:ằng:
km đ u tiên là 13000 ầu tiên là 13000 đ
M i km ti p theo là 12000 ỗi km tiếp theo là 12000 ếu biểu thức điều kiện cho đ
N u l n h n 30km thì m i km thêm s là 11000 ếu biểu thức điều kiện cho ớn nhất nằm ở hàng chục ơn 30km thì mỗi km thêm sẽ là 11000 ỗi km tiếp theo là 12000 ẽ là 11000 đ
Hãy nh p s km sau đó in ra s ti n ph i tr ập vào một số nguyên từ ống, ống, ều ả của một điều ả của một điều
11 Nh p vào 3 s nguyên dập vào một số nguyên từ ống, ương trình nhập vào một số nguyên từ ng Ki m tra xem 3 ển
s đó có l p thành tam giác không? N u có hãy ống, ập vào một số nguyên từ ến trình, cho bi t tam giác đó thu c lo i nào? (Cân, vuông, ến trình, ột chuỗi từ trên xuống, ạng:
đ u, …).ều
12 Vi t chến trình, ương trình nhập vào một số nguyên từ ng trình nh p vào s nguyên dập vào một số nguyên từ ống, ương trình nhập vào một số nguyên từ ng
n Ki m tra xem n có ph i là s chính phển ả của một điều ống, ương trình nhập vào một số nguyên từ ng hay không? (s chính phống, ương trình nhập vào một số nguyên từ ng là s khi l y căn b c 2 ống, ấu trúc rẽ nhánh chỉ cho máy tính chọn thực hiện ập vào một số nguyên từ
có k t qu là nguyên).ến trình, ả của một điều
Trang 17switch (bi u th c) ểu ức điều kiện)
Trang 18V i: ớn nhất.
*ni là các h ng s nguyên ho c ký t ằng số nguyên hoặc ký tự ố nguyên hoặc ký tự ặc ký tự ự.
*Ph thu c vào giá tr c a bi u th c vi t sau ụ: ột chuỗi từ trên xuống, ị ủa một điều ển ức quan hệ hay biểu thức so sánh) ến trình, switch,
n u: ến trình,
*Giá tr này = n ị i thì th c hi n câu l nh sau case n ự thực thi tiến trình, ệnh 1; ệnh 1; i
*Khi giá tr bi u th c không th a t t c các n ị ển ức quan hệ hay biểu thức so sánh) ỏa tất cả các n ấu trúc rẽ nhánh chỉ cho máy tính chọn thực hiện ả của một điều i thì th c ự thực thi tiến trình,
hi n câu l nh sau ệnh 1; ệnh 1; default n u có, ho c thoát kh i ến trình, ặt ỏa tất cả các n
*Khi ch ương trình nhập vào một số nguyên từ ng trình đã th c hi n xong câu l nh c a ự thực thi tiến trình, ệnh 1; ệnh 1; ủa một điều
case ni nào đó thì nó s th c hi n luôn các l nh ẽ nhánh chỉ cho máy tính chọn thực hiện ự thực thi tiến trình, ệnh 1; ệnh 1; thu c ột chuỗi từ trên xuống, case bên dướn nhất i nó mà không xét l i đi u ki n ạng: ều ệnh 1; (do các ni đ ược thực thi theo c xem nh các nhãn) ư Vì v y, đ ập vào một số nguyên từ ển
ch ương trình nhập vào một số nguyên từ ng trình thoát kh i l nh ỏa tất cả các n ệnh 1; switch sau khi th c ự thực thi tiến trình,
hi n xong m t tr ệnh 1; ột chuỗi từ trên xuống, ường hợp đúng ng h p, ta dùng l nh ợc thực thi theo ệnh 1; break.
Trang 19Ví d :ụ: Nh p vào s nguyên n có giá tr t 1 đ n 5 In cách đ c c a ập vào một số nguyên từ ống, ị ừ trên xuống, ến trình, ọn thực hiện ủa một điều
s đó ra màn hình ống,
case 1: cout<<"So mot”; break;
case 2: cout<<"So hai"; break;
case 3: cout<<"So ba”; break;
case 4: cout<<"So bon”; break;
case 5: cout<<"So nam”; break;
default : cout<<"Khong doc duoc";
}
Trang 2013 Vi t ch ến trình, ương trình nhập vào một số nguyên từ ng trình nh p vào 1 s ập vào một số nguyên từ ống, nguyên d ương trình nhập vào một số nguyên từ ng g m 3 ch s , in ra cách ồi chuyển ữ số Xuất ra màn hình chữ số lớn nhất ở vị trí ống,
đ c c a s này ọn thực hiện ủa một điều ống,
14 Vi t ch ến trình, ương trình nhập vào một số nguyên từ ng trình nh p vào ngày ập vào một số nguyên từ
năm có h p l không? In k t qu ki m ợc thực thi theo ệnh 1; ến trình, ả của một điều ển tra ra màn hình
Trang 22for (<kh i gán> ở hàng chục ; <đi u ki n l p> ều kiện) ện) ặp> ; <c p nh t>) ập nhật>) ập nhật>)
*Đi u ki n l p: Dùng đ ki m tra đi u ki n tr ều kiện) ện) ặp> ểu ểu ều kiện) ện) ướn nhất nằm ở hàng chục c khi
th c hi n vòng l p ực hiện khối lệnh bên trong ện) ặp>
*C p nh t: Dùng đ c p nh t vòng l p (tăng ho c gi m ập nhật>) ập nhật>) ểu ập nhật>) ập nhật>) ặp> ặp> ả
ch s l p) ỉ số lặp) ối lệnh> ; ặp>
B t kỳ bi u th c nào trong 3 bi u th c nói trên đ u có ất nằm ở hàng chục ểu ức điều kiện) ểu ức điều kiện) ều kiện)
th v ng nh ng ph i gi d u ch m ph y (;) ểu ắng nhưng phải giữ dấu chấm phẩy (;) ư ả ữ số lớn nhất nằm ở hàng chục ất nằm ở hàng chục ất nằm ở hàng chục ẩy (;)
Trang 24* B ước 1: c 1: Kh i gán ở hàng chục
* B ước 1: c 2: Ki m tra đi u ki n ểu ều kiện) ện)
― N u ếu biểu thức điều kiện cho đi u ki n b ng true ều kiện bằng true ện bằng true ằng true thì cho
th c hi n các l nh c a vòng l p, th c ực hiện khối lệnh bên trong ện) ện) ủa vòng lặp, thực ặp> ực hiện khối lệnh bên trong
hi n ện) c p nh t vòng l p ập nhật vòng lặp ập nhật vòng lặp ặp Quay tr l i ở hàng chục ại thì cho thực hiện khối lệnh thứ 2
b ướn nhất nằm ở hàng chục c 2.
― Ng ược lại thì cho thực hiện khối lệnh thứ 2 ại thì cho thực hiện khối lệnh thứ 2 c l i thoát kh i l p ỏi lặp ặp>
Trang 25Ví d : ụ: In ra màn hình 10 dòng ch ữ số Xuất ra màn hình chữ số lớn nhất ở vị trí “Xin chao”
Trang 27*Ví d : ụ: Tính t ng: ổng: , v i n>0S 1 2 3 n ớn nhất.
S = 0
i = 1
i <= n
S = S + i Yes n
i = i + 1
“Tổng = “ S
Trang 28< Kh i gán> ở hàng chục
while ( <đi u ki n l p>) ều kiện) ện) ặp>
Trang 29Ví d : ụ: In ra màn hình 10 dòng ch ữ số Xuất ra màn hình chữ số lớn nhất ở vị trí “Xin chao”
void main()
{
int dong = 1;
while(dong <= 10) {
cout<<"Xin chao“<<endl;
dong++;
} }
Trang 31 Th c hi n kh i l nh cho đ n khi bi u ực hiện khối lệnh bên trong ện) ối lệnh> ; ện) ếu biểu thức điều kiện cho ểu
th c có giá tr b ng ức điều kiện) ị ban đầu cho vòng ằm ở hàng chục false.
C u trúc l p do…while th ất nằm ở hàng chục ặp> ường dùng cho ng dùng cho
tr ường dùng cho ng h p nh p có ki m tra đi u ki n ợc lại thì cho thực hiện khối lệnh thứ 2 ập nhật>) ểu ều kiện) ện)
Trang 32Ví dụ:: Nh p vào m t s nguyên dập vào một số nguyên từ ột chuỗi từ trên xuống, ống, ương trình nhập vào một số nguyên từ ng, n u nh p sai thì ến trình, ập vào một số nguyên từ thông báo l i và yêu c u nh p l i ỗi lệnh được thực thi theo ần tự thực thi tiến trình, ập vào một số nguyên từ ạng:
} while (n <= 0);
cout<<"Ban da nhap dung, ket thuc chuong trinh”;
}
Trang 33 Ng ược lại thì cho thực hiện khối lệnh thứ 2 ại thì cho thực hiện khối lệnh thứ 2 ớn nhất nằm ở hàng chục ất nằm ở hàng chục c l i v i c u trúc l p ặp>
ki n tr ện) ướn nhất nằm ở hàng chục c khi th c hi n ực hiện khối lệnh bên trong ện)
l p), vòng l p ặp> ặp> do…while th c ực hiện khối lệnh bên trong
hi n l nh l p r i m i ki m ện) ện) ặp> ồi mới kiểm ớn nhất nằm ở hàng chục ểu tra đi u ki n Do đó vòng l p ều kiện) ện) ặp>
do while th c hi n l nh ít ực hiện khối lệnh bên trong ện) ện)
nh t m t l n ất nằm ở hàng chục ộng của ầu tiên là 13000
Trang 34* L nh break: thoát kh i các c u trúc ệnh 1; ỏa tất cả các n ấu trúc rẽ nhánh chỉ cho máy tính chọn thực hiện
switch, while, for, do…while ch a nó ứa nó
g n nh t ần nhất ất (đang ch a break) ức quan hệ hay biểu thức so sánh) t i th i đi m ạng: ờng hợp đúng ển break đ ược thực thi theo c g i thi hành mà không c n ọn thực hiện ần tự thực thi tiến trình,
ki m tra k t qu c a bi u th c đi u ki n ển ến trình, ả của một điều ủa một điều ển ức quan hệ hay biểu thức so sánh) ều ệnh 1;
* Tuy nhiên, c n phân bi t v i l nh ần tự thực thi tiến trình, ệnh 1; ớn nhất ệnh 1; return
là l nh tr v t hàm, nghĩa là thoát kh i ệnh 1; ả của một điều ều ừ trên xuống, ỏa tất cả các n hàm đang thi hành, nên cũng giúp thoát luôn kh i t t c các vòng l p ỏa tất cả các n ấu trúc rẽ nhánh chỉ cho máy tính chọn thực hiện ả của một điều ặt
Trang 35L nh continue: đ ệnh 1; ược thực thi theo c s d ng trong các ử dụng trong các ụ:
l nh continue đ ệnh 1; ược thực thi theo c g i thì ch ọn thực hiện ương trình nhập vào một số nguyên từ ng trình
s quay tr v đ u vòng l p đ b t đ u ẽ nhánh chỉ cho máy tính chọn thực hiện ở vị trí ều ần tự thực thi tiến trình, ặt ển ắt đầu ần tự thực thi tiến trình,
l n l p m i (có ki m tra đi u ki n l p đ ần tự thực thi tiến trình, ặt ớn nhất ển ều ệnh 1; ặt ển xác đ nh có l p ti p hay không) N u có ị ặt ến trình, ến trình, các l nh còn l i (cùng trong vòng l p) đ t ệnh 1; ạng: ặt ặt sau continue s không đ ẽ nhánh chỉ cho máy tính chọn thực hiện ược thực thi theo c th c hi n Nói ự thực thi tiến trình, ệnh 1; tóm l i, l nh continue dùng đ b qua ạng: ệnh 1; ển ỏa tất cả các n
m t l n l p nào đó n u th a đi u ki n ột chuỗi từ trên xuống, ần tự thực thi tiến trình, ặt ến trình, ỏa tất cả các n ều ệnh 1;