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

Bài giảng Ngôn ngữ lập trình C và C++: Bài 3 - TS. Đỗ Đăng Khoa

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 (440.73 KB, 41 trang )

4/21/2015

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Ngơn ngữ lập trình C và C++
Bài 3: Dòng Điều Khiển

TS. Đỗ Đăng Khoa
Bộ mơn Cơ học Ứng dụng
Viện Cơ khí
/>
1


4/21/2015

Điều khiển Tuần Tự: Lệnh Đơn & Lệnh Phức
Các câu lệnh được xử lý
tuần tự theo thứ tự từ trên
xuống dưới
Lệnh đơn: là một câu lệnh
riêng lẻ được kết thúc bằng
dấu chấm phẩy “ ; ”.
Lệnh phức: Nhóm nhiều
lệnh đơn thành một lệnh
phức bằng cách rào chúng
bên trong các dấu ngoặc
nhọn {...}.

Ví dụ:
{



int min, i, j;
min = (i < j ? i : j);
cout << min << '\n';
}

TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

2


4/21/2015

Dòng điều khiển
Điều khiển rẽ nhánh
Câu lệnh điều kiện if
Câu lệnh lựa chọn switch
Điều khiển chu trình
Chu trình while
Chu trình do while
Chu trình for
Lệnh continue: bắt đầu chu trình tiếp theo
Lệnh break: kết thúc chu trình
TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

3



4/21/2015

Điều khiển Rẽ Nhánh
Cho phép thay đổi hướng thực hiện của chương
trình
Biểu thức điều kiện trả về giá trị đúng hoặc sai
Ví dụ: Xác định một số là số chẵn hay số lẻ:
1) Nhập vào một số
2) Chia số đó cho 2 để xác định số dư
3) Nếu số dư là 0, số đó là “SỐ CHẴN”
4) Ngược lại số dư khơng bằng 0, số đó là
“SỐ LẺ”
TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

4


4/21/2015

Điều khiển Rẽ Nhánh: If
Cú pháp:
if (điều kiện)
lệnh đơn / lệnh phức;
Ý nghĩa:
Nếu biểu thức điều kiện có giá trị
đúng (true), khối lệnh theo sau
lệnh if được thực thi.
Điều kiện: biến, hằng, biểu
thức, hàm

Chú ý: “đúng” là một giá trị
khác 0
“sai” là giá trị 0

Điều kiện

Đúng

Sai

Lệnh Đơn/ Lệnh Phức

TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

5


4/21/2015

Điều khiển Rẽ Nhánh: If
•Ví dụ 1: lấy trị tuyệt đối
if(value < 0)
value = -value;
•Ví dụ 2: xếp 2 số từ nhỏ đến lớn
if(value1 > value2)
{
temp = value1;
value1 = value2;
value2 = temp;

}
TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

6


4/21/2015

Điều khiển Rẽ Nhánh: If - Else
Cú pháp:
if (điều kiện)
lệnh đơn 1 / lệnh phức 1;
else
lệnh đơn 2 / lệnh phức 2;
Ý nghĩa:
Nếu biểu thức điều kiện trả về
giá trị đúng, lệnh đơn 1/ lệnh phức
1 được thực hiện.
Nếu biểu thức của if khơng trả về
giá trị đúng thì lệnh đơn 2/ lệnh
phức 2 được thực hiện.

Biểu thức
điều kiện
Đúng

Sai

Lệnh đơn 1/


Lệnh đơn 2/

Lệnh phức 1

Lệnh phức 2

TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

7


4/21/2015

Điều khiển Rẽ Nhánh: If - Else
•Ví dụ 1: tìm số lớn hơn
trong 2 số
if(value1 > value2)
larger = value1;
else
larger = value2;

TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

8


4/21/2015


Điều khiển Rẽ Nhánh: If - Else
Ví dụ 2: Kiểm tra một số là chẵn hay lẻ
#include <stdio.h>
int main ()
{
int n;
printf(L"Nhập một số nguyên:");
scanf("%d", &n);
if(n%2 == 0)
printf("n là số chẵn");
else
printf("n là số lẻ");
return 0;
}

#include <iostream>
using namespace std;
int main ()
{
int n;
cout << "Nhập một số nguyên:";
cin >> n;
if(n%2 == 0)
cout << "n là số chẵn";
else
cout << "n là số lẻ";
return 0;
}
TRƯỜNG ĐẠI HỌC

BÁCH KHOA HÀ NỘI

9


4/21/2015

Điều khiển Rẽ Nhánh: If – Else - If
Cú pháp:
if (điều kiện 1)
lệnh đơn 1 / lệnh phức 1;
else if (điều kiện 2)
lệnh đơn 2 / lệnh phức 2;
.......
else if (điều kiện n-1)
lệnh đơn n-1 / lệnh phức n-1;
else
lệnh đơn n / lệnh phức n;

TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

10


4/21/2015

Điều khiển Rẽ Nhánh: If – Else - If
Ý nghĩa:
Khi biểu thức điều kiện mang

nhiều giá trị
Các biểu thức được kiểm tra theo
thứ tự đã viết
Nếu một biểu thức nào đó đúng
thì câu lệnh tương ứng sẽ được
thực hiện và rồi kết thúc toàn bộ
kết cấu
Phần else xử lý khi khơng có điêu
kiện nào được thỏa mãn. Phần này
có thể được bỏ đi

if Ngày ==<T2, T4, T6>{
học Toán;
}
else if Ngày==<T3,T5>{
học C++;
}
else if Ngày==<CN>{
chơi;
}
else{
ngủ;
}
TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

11


4/21/2015


Điều khiển Rẽ Nhánh: If – Else - If
•Ví dụ 1:
if(diem_so >= 90)
cout << “Diem = A" <<
else if(diem_so >= 80)
cout << “Diem = B" <<
else if(diem_so >= 70)
cout << “Diem = C" <<
else if(diem_so >= 60)
cout << “Diem = D" <<
else
cout << “Diem = F" <<

endl;
endl;
endl;
endl;
endl;
TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

12


4/21/2015

Điều khiển Rẽ Nhánh: If – Else - If

Tệp chứa các hàm toán

học: sin, cos, tan, ln,
log, fabs.(trị tuyệt đối),
pow (mũ), sqrt(căn)...

Ví dụ 2: Giải phương trình ax2+bx+c=0
#include <iostream>
#include <math>
using namespace std;

{
cout << “Nghiệm kép: ";
cout << -b/(2*a) << endl;
}
else
{

int main ()
{
double a, b, c;
cout << "Nhập a, b, c:";
cin >> a >> b >> c;
double delta = b*b – 4*a*c;
if(delta < 0.0)
cout << "Nghiệm phức";
else if (fabs(delta) < 1.0E-5)

double x1, x2;
x1 = (-b + sqrt(delta))/(2*a);
x2 = (-b - sqrt(delta))/(2*a);
cout << “x1 = “<< x1 << endl;

cout << “x2 = “<< x2 << endl;
}
return 0;
}
TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

13


4/21/2015

Điều khiển Rẽ Nhánh: If lồng nhau
Lệnh if lồng nhau là một
lệnh if được đặt trong một
lệnh if hoặc else khác
Sự nhập nhằng khi dẫy if
lồng nhau (else luôn được
gắn với if khơng có else
gần nhất trước đó)
Nên sử dụng móc nhọn
{..} để làm rõ các khối lệnh
trong mọi trường hợp

int a=-1, b=1,c=1;
if(a>0)

if(b>0)
c = 2;
else

c = 3;

TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

14


4/21/2015

Điều khiển Rẽ Nhánh: Switch
Cú pháp:
Switch (Biểu thức)
{
case giá trị hằng 1:
khối lệnh 1;
case giá trị hằng 2:
khối lệnh 2;
......
default:
khối lệnh n;
}

Điều kiện
Case 1
Khối lệnh 1
Case 2
Khối lệnh 2

default

Khối lệnh n
TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

15


4/21/2015

Câu lệnh lựa chọn switch
Cú pháp
switch (expression)
{
case value1:
Statement-1;
break;
case value2:
Statement-2;
break;
......
default:
Statement;
}

Biến, hằng, biểu thức,
hàm (kiểu trả về) có kiểu
kí tự hoặc số ngun

Hằng kí tự hoặc ngun


- Tùy chọn
- Khơng có lệnh break, tất cả các
case sẽ được thực hiện sau khi
so khớp giá trị
- Dùng break để thốt ngay khỏi
switch (khơng phải tiếp tục
chuyển sang các case còn lại).
- Tùy chọn
- Các lệnh trong default sẽ được
thực hiện nếu tất cả các case
đều không khớp giá trị
TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

16


4/21/2015

Câu lệnh lựa chọn switch
Cú pháp
switch (expression)
{
case value2:
Statement-2;
break;
default:
Statement;
case value1:
Statement-1;

break;
......

Thứ tự của các case và default tùy ý

}
TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

17


4/21/2015

Câu lệnh lựa chọn switch
Cú pháp
switch (expression)
{
case value1:
case value2:
Statement-x;
break;
......

Gộp lại các case để thực hiện cùng
các lệnh

default:
Statement;
}


TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

18


4/21/2015

Điều khiển Rẽ Nhánh: Switch
Ý nghĩa:
•Tạo quyết định nhiều nhánh đặc biệt (Nếu dùng if
rẽ nhiều nhánh khiến chương trình khó đọc )
• Kiểm tra xem một biểu thức có ứng với một trong
số giá trị hằng hay không (từ đầu) và nhảy đến lệnh
tương ứng khi so trúng
• Dùng câu lệnh break để thốt ra ngay khỏi switch
khi khơng muốn kiểm tra tiếp các trường hợp cịn
lại
•Khơng cần bao dãy lệnh bởi cặp dấu {}
•Nhánh default có thể nằm bất cứ đâu, không cần ở
cuối cùng
TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

19


4/21/2015


Điều khiển Rẽ Nhánh: Switch
Minh họa switch và case
int x,y,z;
char a,b;
float f;
hàm func() có giá trị trả về là số nguyên.
switch đúng

switch sai

case đúng

case sai

switch(x)

switch(f)

case 3:

case 2.5:

switch(x>y)

switch(x+2.5)

case 'a‘:

case x:


switch(a+b-2)

case 1+2:

case x+2:

switch(func(x,y))

case 'x'>'y‘:

case 1,2,3:

TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

20


4/21/2015

Điều khiển Rẽ Nhánh: Switch
•Ví dụ:
int th;
cout << “Cho biet thang can tinh ngay: “ ; cin >> th ;
switch (th) {
case 1: case 3: case 5: case 7: case 8: case 10:
case 12: cout << “thang nay co 31 ngay" ; break ;
case 2: cout << “thang nay co 28 ngay" ; break;
case 4: case 6: case 9:
case 11: cout << “thang nay co 30 ngay" ; break;

default: cout << “Nhap sai thang" ;
}
TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

21


4/21/2015

Điều khiển Vòng Lặp
Vòng lặp: Một đoạn mã lệnh trong chương trình
thực hiện lặp đi lặp lại cho đến khi một điều kiện
xác định được thỏa mãn
Ba điều khiển vòng lặp:
• Vịng lặp For
• Vịng lặp While
• Vịng lặp Do.. While

TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

22


4/21/2015

Điều khiển Vòng Lặp- For
Cú pháp:
for (khởi gán biến lặp ;

điều kiện lặp ; thay đổi
biến lặp)
{ khối lệnh lặp; }
•Ví dụ:
int i;
for(i=1; i<=20;
i++)
cout << "i is
" << i << endl;

Khởi gán biến lặp

Điều kiện lặp
Đúng

Sai

Khối lệnh lặp

Thay đổi biến lặp

TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

23


4/21/2015

Điều khiển Vòng Lặp- For

Thực hiện khởi tạo. Lặp quá trình kiểm tra điều kiện đúng thì
thực hiện khối lệnh và cập nhật, sai thì dừng.
Cú pháp
for(initialization;condition;incr/decr)
{
Statement
}
- Thực hiện đầu tiên
- Các lệnh khai báo hoặc
khởi tạo biến
for(i = 0;
Khởi tạo
for(i = 0, j = 5;
for(int i = 0;
Khai báo
for(int i = 0, j = 0; và khởi tạo
TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

24


4/21/2015

Điều khiển Vòng Lặp- For
Thực hiện khởi tạo. Lặp quá trình kiểm tra điều kiện đúng thì
thực hiện khối lệnh và cập nhật, sai thì dừng.
Cú pháp
for(initialization;condition;incr/decr)
{

Statement
}
- hằng, biến, biểu thức và
hàm
- Nếu đúng, thực hiện các
lệnh trong chu trình
- Nếu sai thì kết thúc chu
trình

TRƯỜNG ĐẠI HỌC
BÁCH KHOA HÀ NỘI

25


×