KHOA ĐIỆN – ĐIỆN TỬ

1

Chương 3 CHƯƠNG TRÌNH VÀ LƯU ĐỒ

GV giảng dạy: Nguyễn Quốc Bình. Email: binh.nguyenquoc@stu.edu.vn

CHƯƠNG TRÌNH VÀ LƯU ĐỒ

Chương trình: tập hợp các lệnh máy tính để thực thi một tác vụ nào đó. Lập trình: là nghệ thuật cài đặt các thuật toán có liên quan với nhau bằng một ngôn ngữ lập trình để tạo thành một chương trình. Thuật toán: là tập hợp các chỉ thị được định nghĩa rõ nhằm giải quyết một bài toán nào đó.

 Quy trình xây dựng một chương trình có thể chia làm 3 giai đoạn như sau:

Xác định mục tiêu

Giai đoạn 1 Cần xác định rõ đầu vào và đầu ra của chương trình.

Giai đoạn 3

Giai đoạn 2 Thiết kế và xây dựng chương trình

2

Người lập trình phải phân tích kỹ các yêu cầu (về mục tiêu, giao diện, về khả năng hiệu quả của chương trình…) để thiết kế cơ sở dữ liệu, thuật toán, giao diện…cho phù hợp. Kiểm tra, sửa lỗi phát sinh trong quá trình sử dụng (testing) và đánh giá hiệu quả của chương trình so với mục tiêu đề ra ban đầu.

Sửa lỗi và đánh giá tính hiệu qủa

LƯU ĐỒ GIẢI THUẬT (flow chart)

Là một số hình khối mô tả giải thuật

Khối giới hạn Chỉ thị bắt đầu và kết thúc.

Khối vào ra Nhập/Xuất dữ liệu.

Khối lựa chọn Tùy điều kiện sẽ rẽ nhánh.

Khối thao tác Ghi thao tác cần thực hiện.

Đường đi Chỉ hướng thao tác tiếp theo.

3

Ví dụ: Giải pt bậc 1 ax+b=0 với a,b là số thực.

Bắt đầu

o Nếu b=0: pt có vô số nghiệm. o Nếu b 0: pt vô nghiệm.

 Nếu a=0

Nhập a,b

 Nếu a  0: pt trình có nghiệm duy nhất –b/a.

Đ

Đ

b = 0

a = 0

Xuất “PT vo so nghiem”

S

S

Xuất “PT vo ngiem”

Tính kq = -b/a

Xuất kq

Kết thúc

4

Ví dụ 2: Nhập vào 2 số nguyên. Cho biết số nào là số lớn và số nào là số nhỏ.

Bắt đầu

Nhập a,b

a > b

S

Xuất a so nho b so lon

Đ

Kết thúc

5

Xuất a so lon b so nho

6

Bài tập 1: Nhập vào 3 số nguyên. Cho biết số nào là số lớn nhất và số nào là số nhỏ nhất.

Bắt đầu

Bài tập 1: Nhập vào 3 số nguyên. Cho biết số nào là số lớn nhất và số nào là số nhỏ nhất.

Nhập a,b,c

S S

a > b và a > c b > a và b > c c so lon nhat

Đ Đ

a > b a so lon nhat b so lon nhat

Đ

S

a > c

b so nho nhat b > c b so nho nhat

Đ Đ

c so nho nhat

a so nho nhat

7

Kết thúc

c so nho nhat a so nho nhat

Bài tập 2: Nhập vào 3 số nguyên. Tính trung bình (dtb), nếu dtb >= 5 Đậu , ngược lại Rớt.

8

Bài tập 3: Nhập vào 1 số nguyên. Kiểm tra số đó có phải số chẵn không ?

9

Bài tập 4: Nhập vào 2 số nguyên a, b. Kiểm tra xem a có chia hết cho b không ?

10

Bài tập

11

1. Nhập vào 2 số nguyên a, b. Tính tổng, hiệu, thương và tích 2 số đó. 2. Nhập tên sản phẩm, số lượng và đơn giá. Tính tiền và thuế giá trị gia tăng phải trả, biết: a. Tiền = số lượng * đơn giá b. Thuế giá trị gia tăng = 10% * tiền 3. Nhập điểm thi và hệ số 3 môn: Toán, lý, hóa của một sinh viên. Tính điểm trung bình của sinh viên đó. 4. Nhập bán kính của đường tròn. Tính chu vi và diện tích của hình tròn. 5. Nhập vào số xe (gồm 5 chữ số) của bạn. Cho biết số xe của bạn được mấy nút?

KHOA ĐIỆN – ĐIỆN TỬ

1

Chương 4a CẤU TRÚC ĐIỀU KHIỂN

GV giảng dạy: Nguyễn Quốc Bình. Email: binh.nguyenquoc@stu.edu.vn

Câu lệnh: if  Cú pháp:

S

CÂU LỆNH ( if ) (if … else) (if … else if )

BT điều kiện

 Ý nghĩa: nếu biểu thức điều kiện đúng thực hiện câu lệnh.

Đ

if (biểu thức điều kiện) { câu lệnh

câu lệnh

 câu lệnh: có thể là một lệnh hoặc nhóm lệnh. }

Ví dụ 1.

if (dtb >= 5)

cout << “Dau";

 Nếu là nhóm lệnh thì phải được viết trong dấu móc { … }.

if (dtb >= 5) {

if (dtb >= 5)

cout << “Dau"; cout << “Xep loai: Trung binh”;

cout << “Dau"; cout << “Xep loai: Trung binh”;

}

2

Ví dụ 3. Ví dụ 2.

if (dtb >= 5)

cout << “Dau";

S

dtb>=5

Ví dụ 4. Ví dụ 4a.

Đ

Kết quả: m? n?

Ví dụ 4b. cout << “Dau";

3

Kết quả: m? n?

Bài tập 1a.

Nhập vào 2 số a, b và sắp xếp lại theo thứ tự giảm dần.

Bài tập 1b.

4

Nhập vào 3 số a, b, c và sắp xếp lại theo thứ tự giảm dần.

CÂU LỆNH ( if ) (if … else) (if … else if )

Câu lệnh: if … else

 Cú pháp:

S

BT điều kiện câu lệnh 2

if (biểu thức điều kiện) { câu lệnh 1 Đ

câu lệnh 1 } else{

câu lệnh 2

}

if (v == 0){

cout << "v bang 0";  Ý nghĩa:

 Nếu biểu thức điều kiện đúng thực hiện } else {

cout << "v khac 0"; câu lệnh 1.

5

}  Ngược lại sai sẽ thực hiện câu lệnh 2.

Ví dụ 5. đánh giá kết quả của SV Bài tập 2.

6

Nhập vào 2 số a, b và cho biết số nào là số lớn và số nào là số nhỏ.

CÂU LỆNH ( if ) (if … else) (if … else if )

Câu lệnh: if … else if Cú pháp: Đ

câu lệnh 1

if (biểu thức điều kiện 1){ câu lệnh 1;

S

Đ

} …

câu lệnh 2 } else if (biểu thức điều kiện 2){ câu lệnh 2;

S

câu lệnh n;

Đ else { câu lệnh n-1

} S

7

câu lệnh n

 Ý nghĩa: hỏi lần lượt các biểu thức điều kiện, nếu BT nào đúng thì thực hiện câu lệnh ở biểu thức điều kiện đó.

Ví dụ 6: dựa vào điểm trung bình xếp loại học lực SV

Điểm trung bình >= 90: xếp loại A Điểm trung bình >= 80: xếp loại B Điểm trung bình >= 70: xếp loại C Điểm trung bình >= 60: xếp loại D Còn lại: xếp loại E

2. Nếu điểm trung bình giới hạn (10 - 100)

8

1. Cách viết khác ?

Bài tập 2:

Viết chương trình cho phép nhập vào Tên, điểm toán, điểm văn; sau đó tính điểm trung bình theo công thức: dtb=(điểm toán*2 + điểm văn)/3. Dựa vào điểm trung bình (dtb) để đánh giá kết quả học tập như sau: o Nếu điểm trung bình >=5 là đậu ngược lại là rớt. o Xếp loại học tập:

9

 Nếu dtb>=9, xếp loại xuất sắc.  Nếu 8<=dtb<9, xếp loại giỏi.  Nếu 6.5<=dtb<8, xếp loại khá.  Nếu 5<=dtb<6.5, xếp loại trung bình.  Nếu dtb<5, xếp loại yếu.

CÂU LỆNH ( if ) (if … else) (if … else if )

Lưu ý các cách viết của cấu trúc điều khiển if

Cách viết 1:

Cách viết 2:

10

Cách viết 3:

CÂU LỆNH (switch ... case)

Cú pháp: switch (biến/biểu thức) {

 (Giatri1, Giatri2 …) phải là một biểu thức hằng nguyên và là giá trị duy nhất trong phát biểu switch.

case Giatri1:  (biến/biểu thức) phải thuộc kiểu nguyên (integer, có thể chấp nhận luôn kiểu char) hoặc là một biểu thức có giá trị trả về là số nguyên (integer value).

nhóm lệnh 1; break; case Giatri2:

 (biến/biểu thức) bằng giá trị của trường hợp nào thì thực hiện nhóm lệnh của trường hợp đó. Chỉ kết thúc khi gặp lệnh break;

nhóm lệnh 2; break; . . . default: (optional)

nhóm lệnh mặc định

11

 default (optional) là một nhãn có thể có hoặc không. Nhóm lệnh mặc định được thực hiện khi không có giá trị nào thỏa (biến/biểu thức). }

CẤU TRÚC RẼ NHÁNH (switch ... case)

?

Viết lại chương trình trên theo cấu trúc if … else if

12

Ví dụ 1. Ví dụ 2.

CẤU TRÚC RẼ NHÁNH (switch ... case)

13

Câu lệnh switch là một câu lệnh đơn và có thể lồng nhau.

Bài tập 1.

2

Tạo menu cho chương trình tính diện tích, chu vi hình tròn. Nếu nhập 1: Tính diện tích hình tròn. Nếu nhập 2: Tính chu vi hình tròn. Nếu nhập 0: Thoát khỏi chương trình. Nhập khác (0,1,2) thông báo nhập sai.

14

𝑆 = 𝜋 ∗ 𝑟 𝐶 = 𝜋 ∗ 2 ∗ 𝑟

Bài tập 2: Nhập vào một biểu thức với một toán tử (+,-,*,/,%) cho biết kết quả của phép tính đó. Vd: nhập 3+5. Kết quả: 3+5=8

15

Bài tập buổi 3.

2

Lập lưu đồ và viết chương trình nhập vào 3 số nguyên a,b,c và giải phương trình bậc hai:

#include "math.h" 𝑎𝑥 + 𝑏𝑥 + 𝑐 = 0

16

x1=sqrt(a);

BTVN

Bài tập 1.

2

Viết chương trình nhập vào 3 số nguyên a,b,c và giải phương trình bậc hai:

Bài tập 2. 𝑎𝑥 + 𝑏𝑥 + 𝑐 = 0

Nhập 4 số nguyên a, b, c và d. Tìm số có giá trị nhỏ nhất (min).

Bài tập 3.

17

Nhập 4 số nguyên a, b, c và d. Hãy sắp xếp giá trị của 4 số nguyên này theo thứ tự tăng dần.