1. Trang chủ
  2. » Giáo án - Bài giảng

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

47 435 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 47
Dung lượng 823 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cấu trúc lựa chọn if…else …• Nếu điều kiện thỏa mãn đúng – Thực hiện khối lệnh • Nếu điều kiện không thỏa mãn sai – Thực hiện khối lệnh Kiểm tra điều kiện đúng sai... Cấu trúc

Trang 1

Tin học cơ sở 4

Các Cấu Trúc Điều Khiển

Trang 2

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

Trang 3

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: && || !

Trang 6

Biểu thức logic

• Các phép toán logic

– Phép AND logic (&&)

– Phép OR logic (||)

– Phép NOT logic (!)

Trang 7

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

Trang 10

– 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ụm câu lệnh>

•Dễ đọc & phân biệt <cụm câu lệnh> nào thuộc if

Kiểm tra điều kiện đúng

Trang 11

Cấu trúc if …

if (<biểu thức logic>) {

<cụm câu lệnh>

}

• 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?

Kiểm tra điều kiện đúng

Trang 12

Ví dụ về cấu trúc if

Trang 13

Cấu trúc lựa chọn if…else

sai

Trang 14

Cấu trúc lựa chọn if…else …

• Nếu điều kiện thỏa mãn (<biểu thức logic> đúng)

– Thực hiện khối lệnh <cụm câu lệnh đk ĐÚNG>

• Nếu điều kiện không thỏa mãn (<biểu thức logic> sai)

– Thực hiện khối lệnh <cụm câu lệnh đk SAI>

Kiểm tra điều kiện đúng

sai

Trang 15

Cấu trúc lựa chọn if…else …

• Lưu ý: Nhánh else không bắt buộc

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

Kiểm tra điều kiện đúng

sai

Trang 16

Ví dụ về cấu trúc if…else

Trang 17

Cấu trúc if…else lồng nhau

• Cấu trúc if…else này trong cấu trúc if…else kia:

– Để kiểm tra nhiều trường hợp

• Một khi điều kiện thỏa mãn, các cụm lệnh khác 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>

Trang 18

Cấu trúc 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>

}

Trang 19

Ví dụ về cấu trúc if…else

Trang 20

Cấu trúc 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?

Trang 21

Một vài lưu ý

– Thực hiện phép gán xong rồi kiểm tra điều kiện

•Giá trị 0 luôn sai

Trang 22

Một vài 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)

Trang 23

Cấu trúc 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

Trang 24

Cấu trúc switch

• Cấu trúc điều khiển rẽ nhánh khác

• Sau mỗi case phải là một hằng số

• Trường hợp default có thể có hoặc không

Trang 25

Cấu trúc switch …

• 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:

Trang 26

Cấu trúc switch …

–Nếu không có phần default thì không thực hiện gì

• Thứ tự của các trường hợp case không quan trọng:

–Do cấu trúc switch: đi tìm case tương ứng để thực hiện Khác với

if…else lồng nhau

Trang 27

Ví dụ về cấu trúc switch

enum NGAY {T2, T3, T4, T5, T6, T7, CN};

enum NGAY ngay;

switch (ngay) {

case T2: printf(“hoc chieu”); break;

case T3: printf(“hoc sang”); break;

case T4: printf(“di lam”); break;

case T5: printf(“hoc sang va chieu”); break; case T6: printf(“hoc chieu va toi”); break; case T7: printf(“choi the thao”); break;

case CN: printf(“di sang nha ban”); break; default: break;

Trang 28

Ví dụ về cấu trúc switch …

enum NGAY {T2, T3, T4, T5, T6, T7, CN};

enum NGAY ngay;

switch (ngay) {

case T2: case T3: case T5: case T6:

printf(“di hoc”); break;

Trang 29

So sánh switch với if…

• Ngoài sự khác biệt về cấu trúc (hay cú pháp) cần chú ý đến sự khác biệt trong cách sử dụng

• Làm việc với một sự kiện (<biểu • Cùng lúc có thể kiểm tra nhiều sự

Trang 30

Cấu trúc lặp

• 3 cấu trúc lặp trong C:

do…while : ít nhất một lần lặp

while : không hoặc nhiều lần lặp

for : không hoặc nhiều lần lặp

Trang 31

Cấu trúc lặp …

• Thân của các cấu trúc lặp:

Trang 32

Cấu trúc do…while

– Kiểm tra điều kiện <biểu thức điều kiện>

– Nếu sai thì kết thúc cấu trúc do…while

– Nếu đúng thì lặp lai 3 bước trên

•Luôn thực hiện <cụm câu lệnh> ít nhất 1 lần

Trang 33

Ví dụ cấu trúc do…while

• Yêu cầu: nhập vào một số nguyên dương (>0)

• Mã giả - pseudocode

do {

Nhập vào một số nguyên dương

} while (số nhập vào không nguyên dương);

• Mã nguồn (C)

do {

scanf(“%i”, &soND);

} while (soND <= 0);

Trang 34

Cấu trúc while

while (<biểu thức điều kiện>)

{

<cụm câu lệnh>

}

• Các bước thực hiện:

– Kiểm tra điều kiện <biểu thức điều kiện>

– Nếu sai thì kết thúc câu trúc while

– Nếu đúng thực hiện <cụm câu lệnh>

– Lặp lai 3 bước trên.

Trang 35

Ví dụ cấu trúc while

• Tính tổng 50 số nguyên dương đầu tiên?

Trang 36

Ví dụ cấu trúc while

• Tính tổng 50 số nguyên dương đầu tiên?

• Mã giả - pseudocode:

while (số nguyên dương nhỏ hơn bằng 50)

{

Cộng số nguyên dương vào tổng

Tăng số nguyên dương lên 1

}

Lê Nguyên Khôi

Trang 37

Ví dụ cấu trúc while

• Tính tổng 50 số nguyên dương đầu tiên?

Trang 38

So sánh while với do…while

• Tính tổng 50 số nguyên dương đầu tiên?

Trang 39

So sánh while với do…while

• Tính tổng 50 số nguyên dương đầu tiên?

Trang 40

So sánh do…while với while

• Nhập vào một số nguyên dương (>0)

Trang 41

Cấu trúc for

for (<khởi tạo>;<biểu thức đk>;<cập nhật>) {

<cụm câu lệnh>

}

<khởi tạo> : khởi tạo giá trị cho các biến, chỉ

được thực hiện 1 lần khi bắt đầu cấu trúc for

<cập nhật> : gán giá trị của biến trong lần lặp tới

• Nếu biểu thức <biểu thức đk> đúng thì thực hiện

Trang 42

Cấu trúc for …

for (<khởi tạo>;<biểu thức đk>;<cập nhật>) {

<cụm câu lệnh>

}

• Các bước thực hiện trong một vòng lặp:

–Kiểm tra biểu thức <biểu thức đk>

–Nếu sai kết thúc cấu trúc lặp for

–Nếu đúng:

• Thực hiện <cụm câu lệnh>

• Cập nhật các biến

Trang 43

Ví dụ cấu trúc for

• Tính tổng 50 số nguyên dương đầu tiên?

• Mã nguồn (C):

int tong, soND;

for (soND = 1, tong = 0; soND <= 50; soND++)

{

tong += soND ;

}

Trang 44

So sánh for với while

for (<khởi tạo>;<biểu thức đk>;<cập nhật>) {

Trang 45

Lỗi thường gặp với cấu trúc lặp

• Điều kiện lặp cần cho giá trị sai ( fasle ) tại lần lặp nào đó

– Nếu không sẽ lặp vô hạn

• Điều kiện luôn đúng (lặp vô hạn) hoặc

luôn sai (không bao giờ lặp)

• Lặp vô hạn đôi khi có chủ ý:

Trang 46

Cấu trúc lặp lồng nhau

• Giống cấu trúc lựa chọn if…else , cấu trúc lặp có thể lồng nhau

for (lapNgoai=0; lapNgoai<5; lapNgoai++)

Trang 47

break và continue

break : thoát khỏi vòng lặp ngay lập tức

continue : bỏ qua phần còn lại của thân vòng lặp và thực hiện lần lặp tiếp

• 2 lệnh này ảnh hưởng luồng tự nhiên của vòng lặp

– Hạn chế dùng

– Chỉ dùng khi thực sự cần

Ngày đăng: 03/04/2016, 21:54

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm