Tải bản đầy đủ (.pdf) (10 trang)

CPP3 cautrucdieukhien

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (324.53 KB, 10 trang )

Nội dung
Cấu trúc rẽ nhánh
if, switch
Cấu trúc lặp
while, for, do – while
Các từ khóa
break, continue

2

Tuần tự (sequence)
Rẽ nhánh (branch)
Lặp (loop) (Böhm-Jacopini theorem)

T

block 1

bool expr

F

block 2

T

bool expr

F-

block 1



3

4


Dạng thiếu:
if (bool expr) statement;
if (bool expr) { … }

//Tìm số lớn nhất trong 2 số
int a, b, max;
cin >> a >> b;
if (a > b)
max = a;
else
max = b;
cout << ”max = ” << max << endl;

Dạng đủ:
if (bool expr) statement1;
else statement2;
if (bool expr) {…}
else {…}
5

6

Lưu ý
Nếu đặt dấu chấm phẩy (;) ở ngay sau biểu thức

điều kiện thì lệnh S của if xem như “KHÔNG
LÀM GÌ”

//In ra 2 số a,b nhập từ bàn phím sao cho b luôn
mang giá trị lớn nhất
int a, b;
cin >> a >> b;
if (a > b) {
int tmp = a;
a = b;
b = tmp;
}
cout << a << ”, ” << b << endl;
7


Ví dụ về if-else-if
if ( N< 0
cout <<
}
else if (
cout <<
}
else {
cout <<
}

if (expr1) statement1;
else if (expr2) statement2;
p

statement3;
else if (expr3)

else
statementn;

){
N << " là số âm" << endl;
N > 0 ) {
N << " là số dương " << endl;

N << " bằng 0" << endl;

9

Chuyển if, switch, for sang while
if(BTDK)
{
Lệnh;
}
while(BTDK)
{
Lệnh; break;
}
11

if(BTDK1)
Khối Lệnh 1;
else if (BTDK2)
Khối lệnh 2;

else
khối lệnh;
bool flag = true;
while(BTDK1)
{
khối lệnh 1; flag = false; break;
}
while(BTDK2)
{
khối lệnh 2; flag = false; break;
}
while(flag){
12
Khối lệnh; break; }


Yêu cầu: Viết chương trình thực hiện:
1. nhập từ bàn phím số nguyên dương year
2. in ra màn hình Yes n
nếu
u là n
năm
m nhuận, No
nếu không

Dễ nhầm với toán tử gán, kết quả của toán tử
gán cũng có thể đổi thành giá trị logic
if (a = 10) luôn đúng
if (a = 0) luôn sai
if (a = b) tương đương if ( (a=b) > 0)


Đảo thứ tự
if ( 0 == a)
if (10 == a)

13

14

Ví dụ về switch

Cấu trúc switch
Cú pháp:
switch (biểu thức){
case <Trường hợp 1>: Lệnh/Khối lệnh 1; break;
case <Trường hợp 2>: Lệnh/Khối lệnh 2; break;
case <Trường hợp 3>: Lệnh/Khối lệnh 3; break;

case <Trường hợp n>: Lệnh/Khối lệnh n; break;
default:
Lệnh/Khối lệnh;
}

char ch; cout<< “Nhập kí tự:”;cin >> ch;
switch (ch) {
case 'a': case 'A':
case 'e': case 'E':
case 'i': case 'I':
case 'o': case 'O':
case 'u': case 'U':

cout << ch << " là nguyên âm" << endl;
break;
default:
cout << ch << " không phảI nguyên âm" <<
endl;
}
15


Ví dụ khác – switch
//Doan chuong trinh doc so 0..9
switch(so) {
case 0:
cout<<“khong”<case 1:
cout<<“mot"<case 2:
2
cout<<“hai"<h i
dl
case 3:
cout<<“ba"<case 4:
cout<<“bon"<case 5:
cout<<“nam"<case 6:
cout<<“sau"<case 7:

cout<<“bay"<case 8:
cout<<“tam"<case 9:
cout<<“chin"<}

cout << “Nhập vào biểu thức: ";
int a;
int b;
char Operator;
cin >> a>> Operator >> b;
cout << a<< " " << Operator << " " << b
<< " = ";
switch (Operator) {
case '+' : cout << a + b << endl; break;
case '-' : cout << a – b << endl; break;
case '*' : cout << a * b << endl; break;
case '/' : cout << a / b << endl; break;
default: cout << “Không hợp lệ" << endl;
}

while (BT điều kiện) lệnh;
block

while (BT điều
i u kiện) {

}


block

T

bool expr
F

T

bool expr
F

19

20


Lưu ý dấu chấm phẩy ;
Dấu ‘;’ đặt ngay sau biểu thức điều kiện đồng
nghĩa với lệnh S là rỗng.

int i = 1, n, gt = 1;
cin >> n;
while (i++ < n) gt *= i;
// while (i < n) gt *= ++i;
/* while (i < n) {
i++;
gt *= i;
}
*/

cout << gt << endl;

int j = 5;

Chương trình bị lặp
không thoát được

while(j > 0);
cout<<"j = “<
21

Yêu cầu: Viết chơng trình:
1. Nhập vào 2 số nguyên dương m, n
2. In ra ước
c ssố chung llớn
n nh
nhấtt ccủa
a 2 ssố này

for (state1; bool expr; expr2)
state2;
int i, gt=1, n;
cin >> n;
for (i=1; i<=n; i++)
gt *= i;
cout << gt << endl;
23

24



Thường được sử dụng cho lặp với số lần
xác định
Không nhất thiết bước lặp là 1
Trong C/C++, vòng lặp for là sự mở rộng
của while

int gt=1, n;

for (int i=1; i<=n; i++) gt *= i;
------------------------------------int i=1, gt=1, n;

for (; i<=n;) gt *= i++;

25

26

Nói thêm về for
Phần lệnh khởi động và lệnh điều khiển có thể
gồm nhiều lệnh đơn giản, các lệnh này cách
nhau bởi dấu phẩy (,)

for (state1; bool expr; expr2) state2;
Tương đương với:
{
state1;
while (bool expr) {
state2;

expr2;
}
}

int
i t i,
i j,
j k;
k
for(i = 0, j = 5, k = -1; i < 10; i++, j++, k--)

Các phần: khởi động, điều kiện lặp, điều
khiển có thể không có lệnh nào.
for(; i < 10; i++, j++, k--)
for(;i < 10;)
for(;;)
27

Dùng while sẽ
hợp lý hơn
Vòng lặp không kết thúc


do{
khối lệnh;
}while (biểu thức điều kiện);

do statement;
while (bool expr);


khối lệnh;
while(biểu thức điều kiện)
{
khối lệnh;
}

do {

} while (bool expr);

29

30

Chờ nhập phím thích hợp
char TraLoi;
do {
cout << “Có hay không? (c/k): ";
if (cin >> TraLoi)
TraLoi = tolower(Traloi);
else
TraLoi = ‘k';
} while ((TraLoi != ‘c') && (TraLoi
!= ‘k'));

int n;
do {
cout << ”n = ”;
cin >> n;
} while (0 >= n);


31


break: lệnh nhảy, đến vị trí ngay sau vòng lặp
thoát khỏi vòng lặp
continue: lệnh nh
nhảy,
y, đến
n vị trí ngay sau câu
lệnh cuối cùng trong vòng lặp
bắt đầu lượt lặp mới

Các vòng lặp chiếm nhiều thời gian thực hiện
chương trình nhất
Cần tối ưu vòng lặp
dùng các phép toán có tốc độ cao
đưa ra khỏi vòng lặp các giá trị có thể tính
toán trước, không thay đổi trong vòng lặp
Kiểm tra về tính dừng

33

//Nhập và In các số lẻ từ bàn phím cho tới nhập
giá trị 0
int n;
while (true) {
cout << ”n = ”;
cin >> n;
if (0 == n) break;

if (0 == n%2) continue;
cout << n << endl;
}

34

Nhập số nguyên dương n từ bàn phím, in ra
màn hình Yes nếu là số nguyên tố, No nếu
không
Nhập
Nh p các số nguyên từ
t bàn phím, dừng
d ng lại
l i khi
gặp số nguyên tố, in ra màn hình tổng số các số
đã nhập

35

36


Nhập số nguyên dương m, in ra m số Fibonacy
đầu tiên, mỗi số cách nhau một dấu cách
(space)
f(1) = 1, f(2) = 1;
f(i+2) = f(i+1) + f(i) : i >0;

Nhập số thực dương a, tính căn bậc 2 của a với
độ chính xác đến 5 chữ số thập phân. Không sử

dụng hàm thư viện.
Phương
Ph ng pháp Newton
s(1) = 1;
s(i+1) = ( s(i) + a/s(i) )/2 : i > 0;

37

Thao tác thành thạo với các câu lệnh điều khiển
đã học
Cài đặt hoàn chỉnh các ví dụ trong bài giảng

39

38



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×