Tải bản đầy đủ (.ppt) (47 trang)

Tin học cơ sở 4 Cấu trúc điều khiển

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 (429.68 KB, 47 trang )

Tin học cơ sở 4
Cac
́ Câu
́ Truc
́ Điêu
̀ Khiên
̉


Trong Bài Giảng 02
• Biến:
– 03 thuộc tính: kiểu, tên giá trị hiện tại
– Phải khai báo trướ c khi sử dụng

• Hằng:
– Giống biến như ng giá trị không đượ c phép thay đổ i
– Khở i tạo giá trị ngay khi khai báo hằng
– 02 cách khai báo hằng: #define & const (chú ý sự khác biệt)

• Quy tắc đặt tên:






Bắt đầu bằng chữ cái, tiếp chữ cái, chữ số, gạch chân
C phân biệt chữ thườ ng và chữ hoa
Không được trùng vớ i từ khóa của C/C++.
Tên biến nên gợ i nghĩa và ngắn gọn
Hằng nên viết hoa


Lê Nguyên Khôi

2


Trong Bài Giảng 02
• Kiểu dữ liệu cơ bản:





Số nguyên: char, int (miền giá trị trong limits.h)
Số thự c: double (miền giá trị trong float.h)
Logic & void
Chuyển đổi kiểu dữ liệu có thể mất độ chính xác. Cẩn thận !!!

• Các phép toán:






Đối vớ i DL số (nguyên/thự c): + - * / %
Đối vớ i DL logic: && || !
Toán tử so sánh: == != > < >= <=
Toán tử gán: = += -= *= /= %= ++ -Mứ c độ ư u tiên:
• ngoặc () cao nhất: thực hiện đầu tiên
• gán thấp nhất: thự c hiện cuối cùng

Lê Nguyên Khôi

3


Nôị Dung
• Các cấu trúc lự a chon:
̣
– if / if-else
– switch

• Các cấu trúc lặp
– while / do-while
– for

• Chuyên
̉ điêu
̀ khiên
̉
– break/continue
Lê Nguyên Khôi

4


Toán Tử So Sánh
Toán tử

Sử dụng


Trả về true (đúng) nếu

>

TH1 > TH2

TH1 lớ n hơ n TH2

>=

TH1 >= TH2 TH1 lớ n hơ n hoặc bằng TH2

<

TH1 < TH2

<=

TH1 <= TH2 TH1 nhỏ hơ n hoặc bằng TH2

==

TH1 == TH2 TH1 và TH2 bằng nhau

!=

TH1 != TH2 TH1 và TH2 khác nhau
Lê Nguyên Khôi

TH1 nhỏ hơ n TH2


5


Biêu
̉ thưc
́ logic
• Cać phep
́ toan
́ logic
– Phep
́ AND logic (&&)
– Phep
́ OR logic (||)
– Phép NOT logic (!)

Lê Nguyên Khôi

6


Các phép toán logic
Toán tử

Sử dụng

Trả về true (đúng) nếu

&&


TH1 &&
TH2

TH1 và TH2 cùng đúng, đánh
giá TH2 có điều kiện

||

TH1 || TH2

TH1 hoặc TH2 đúng, đánh giá
TH2 có điều kiện

!

!TH

TH sai

Lê Nguyên Khôi

7


Lê Nguyên Khôi

8


Cấu trúc if

if (<biểu thức logic>) {
<cụm câu lệnh>
}

Kiêm
̉
tra điêu
̀
kiên
̣
đúng

• Nếu <biểu thức logic> (hay <biểu thức điều kiện>)
ĐÚNG thì thự c hiện <cụm câu lệnh>
• Nếu <biểu thức logic> (hay <biểu thức điều kiện>)
SAI thì KHÔNG thực hiện <cụm câu lệnh>

Lê Nguyên Khôi

9


Cấu trúc if …
if (<biểu thức logic>) {
<cụm câu lệnh>
}


Kiêm
̉

tra điêu
̀
kiên
̣
đúng

<cụm câu lệnh> có thể là:
– một câu lệnh đơn
– hoặc một cụm câu lệnh
– nên luôn sử dụng {} để gói đóng <cụm câu lệnh> do
•Dễ quên đóng gói {} khi chỉnh sử a, thêm/bớ t câu lệnh vào câu lệnh>
•Dễ đọc & phân biệt <cụm câu lệnh> nào thuộc if
Lê Nguyên Khôi

10


Cấu trúc if …
if (<biểu thức logic>) {
<cụm câu lệnh>
}

Kiêm
̉
tra điêu
̀
kiên
̣
đúng


• Chú ý không có kiểu boolean trong C
– Trong C: 0 được hiểu như là sai false
tất cả các giá trị khác là đúng true

• Nếu <biểu thức logic> sai thì chươ ng trình sẽ tiếp tục
chạy như thế nào?
Lê Nguyên Khôi

11


Ví dụ về cấu trúc if
• Mã giả - pseudocode
if (nghỉ học thường xuyên) {
Không được đi thi
}

•Mã nguồn (C)
if (diemDanh < 8) {
printf(“Ban khong duoc phep di thi\n”);
}

Lê Nguyên Khôi

12


Câu
́ truc

́ lựa chon
̣ if…else
if (<biểu thức logic>) {
<cụm câu lệnh đk ĐÚNG>
}
else {
<cụm câu lệnh đk SAI>
}
• Chon
̣ giư a
̃ cać tuyên
́ if hoặc else

Lê Nguyên Khôi

Kiêm
̉
tra điêu
̀
kiên
̣

sai

đúng

13


Câu

́ truc
́ lựa chon
̣ if…else …
Kiêm
̉
if (<biểu thức logic>) {
tra điêu
̀
kiên
̣
<cụm câu lệnh đk ĐÚNG>
đúng
}
else {
<cụm câu lệnh đk SAI>
}
• Nêu
́ điêu
̀ kiên
̣ thoa
̉ man
̃ (<biểu thức logic> đúng)

sai

– Thự c hiên
̣ khôí lênh
̣
<cụm câu lệnh đk ĐÚNG>


• Nêu
́ điêu
̀ kiên
̣ không thoa
̉ mãn (<biểu thức logic> sai)
– Thự c hiên
̣ khôí lênh
̣
<cụm câu lệnh đk SAI>
Lê Nguyên Khôi

14


Câu
́ truc
́ lựa chon
̣ if…else …
if (<biểu thức logic>) {
<cụm câu lệnh đk ĐÚNG>
}
else {
<cụm câu lệnh đk SAI>
}
• Lư u ý: Nhanh
́ else không băt́ buôc̣

Kiêm
̉
tra điêu

̀
kiên
̣

sai

đúng

– Không có else, trở thành if như trướ c

Lê Nguyên Khôi

15


Ví dụ về cấu trúc if…else
• Mã giả - pseudocode
if (nghỉ học thường xuyên) {
Không được đi thi
}
else {
Có thể qua môn THCS 4
}

• Mã nguồn (C)
if (diemDanh < 8) {
printf(“Ban khong duoc phep di thi\n”);
}
else {
printf(“Ban co the qua mon THCS\n”);

} Lê Nguyên Khôi

16


Câu
́ truc
́ if…else lông
̀ nhau
• Câu
́ truć if…else naỳ trong câu
́ truć if…else kia:
– Để kiêm
̉ tra nhiêu
̀ trươ ng
̀ hợ p

• Môṭ khi điêu
̀ kiên
̣ thoa
̉ man,
̃ cać cụm lênh
̣ khać bỏ qua
if (<biểu thức logic 1>)
<cụm câu lệnh 1>
else if (<biểu thức logic 2>)
<cụm câu lệnh 2>
else
<cụm câu lệnh 3>
Lê Nguyên Khôi


17


Câu
́ truc
́ if…else lông
̀ nhau
• Quy luật: else của if gần nhất mà chưa có else
if (<biểu thức logic 1>)
<cụm câu lệnh 1>
else {
if (<biểu thức logic 2>)
<cụm câu lệnh 2>
else
<cụm câu lệnh 3>
}
Lê Nguyên Khôi

18


Ví dụ về cấu trúc if…else
………
if (tuoi_khac >= 0) {
if (tuoi_khac >= 150) {
printf(“ban co the da chet vao nam %i”, nam_khac);
}
else {
printf(“tuoi cua ban vao nam %i la %i”, nam_khac,

tuoi_khac);
}
}
else
{
printf(“ban chua sinh ra vao nam %i”, nam_khac);
}
Lê Nguyên Khôi

19


Câu
́ truc
́ if…else lông
̀ nhau
• Có rất nhiều cách lồng cấu trúc if…else:
– Đơ n giản: coi từ ng cấu trúc if…else như một cụm
câu lệnh (hay câu lệnh đơn)

• Lư u ý: việc sử dụng {} là rất cần thiết khi làm
việc vớ i cấu trúc if…else lồng do rất dễ mắc lỗi:
– Lỗi: else của if nào?

• Không nên quá 3 lệnh if…else lồng. Tại sao?

Lê Nguyên Khôi

20



Môṭ vaì lưu ý
• Nhâm
̀ lân
̃ giưa
̃ gan
́ (=) và so sanh
́ băng
̀ (==)
– Không lôĩ khi dich
̣ và chaỵ
– Kêt́ quả khać nhau
if (a = 10) … luôn đúng
if (a = 0) … luôn sai
if (a = b) … tương đương
if ( (a=b) != 0) …
– Thự c hiện phép gán xong rồi kiểm tra điều kiện
•Giá trị 0 luôn sai
•Giá trị khác 0 luôn đúng
Lê Nguyên Khôi

21


Môṭ vaì lưu ý
• Biểu thứ c logic trong toán học:
(0 ≤ tuoi ≤ 150)
Chuyển sang ngôn ngữ lập trình
(0 <= tuoi <= 150)
Dịch & chạy không báo lỗi như ng chạy sai !!!


• Biểu thứ c logic trong ngôn ngữ lập trình:
–Phải sử dụng các phép toán logic
(0 <= tuoi && tuoi <= 150)
–Lỗi thườ ng gặp: biểu thức logic luôn sai/đúng
(0 >= tuoi && tuoi >= 150)
Lê Nguyên Khôi

22


Câu
́ truc
́ if…else – Bài tập
• Tìm số lớ n nhất trong 3 số nhập vào từ bàn phím

Lê Nguyên Khôi

23


Câu
́ truc
́ switch
• Cấu trúc điêu
̀ khiên
̉ rẽnhanh
́ khác
switch (<biểu thức>) {
case <hằng số 1>:

<cụm câu lệnh 1>; break;
case <hằng số 2>:
<cụm câu lệnh 2>; break;
default:
<cụm câu lệnh mặc định>; break;
}

• Sau mỗi case phải là một hằng số
• Trườ ng hợ p default có thể có hoặc không
Lê Nguyên Khôi

24


Câu
́ truc
́ switch …
switch (<biểu thức>) {
case <hằng số 1>:
<cụm câu lệnh 1>; break;
default:
<cụm câu lệnh mặc định>; break;
}

• Giá trị của <biểu thức> tươ ng ứ ng (bằng) vớ i <hằng số i>
của case nào thì thực hiện <cụm câu lệnh i> tươ ng ứng
– break: kết thúc câu lệnh switch
–Nếu không có break?
• Tiếp tục thự c hiện các case tiếp theo cho tớ i khi:
– Gặp break

– Hoặc kết thúc cấu trúc switch

Lê Nguyên Khôi

25


×