Professional Documents
Culture Documents
Chuong 2 Lập Trình Và Giải Thuật (Update)
Chuong 2 Lập Trình Và Giải Thuật (Update)
Cách 4: Các ngôn ngữ lập trình như Pascal, C/C++ hay
Java. Tuy nhiên, không nhất thiết phải sử dụng đúng ký
pháp của các ngôn ngữ đó mà có thể được bỏ một số
ràng buộc.
Ngôn ngữ tự nhiên
Sử dụng một loại ngôn ngữ tự nhiên để liệt kê các bước
của thuật toán
Ưu điểm
Đơn giản
Không yêu cầu người viết và người đọc phải có kiến thức
nền tảng
Nhược điểm
Dài dòng
Không làm nổi bật cấu trúc của thuật toán
Khó biểu diễn với những bài toán phức tạp
8/23
Ngôn ngữ tự nhiên, ví dụ 1 :
Ví dụ 1 :
Bài toán: Đưa ra kết luận về tương quan của hai số a và
9/23
Ví dụ 1: Ngôn ngữ tự nhiên
B0: Bắt đầu
B1: Nhập số a và số b.
B2: Nếu a > b, hiển thị “a>b”. Kết thúc.
Ngược lại sang B3.
B3: Nếu a = b, hiển thị “a=b”.
Ngược lại, hiển thị “a < b”.
B4: Kết thúc
10/23
Lưu đồ thuật toán
Sử dụng các hình khối để minh hoạ cho các bước
thực hiện:
Khối bắt đầu
Khối kết thúc
Khối thao tác cụ thể
Khối kiểm tra điều kiện
Sử dụng mũi tên để diễn đạt thứ tự thực hiện
Lưu đồ thuật toán
Khối bắt đầu Begin
Đúng
Điều kiện
Kiểm tra điều kiện
Sai
1 mũi tên vào, 2 mũi tên ra
tương ứng với 2 trạng thái đúng/sai của Điều kiện
Mô tả bằng lưu đồ thuật toán
Ưu điểm
Trực quan, dễ hiểu, dễ thiết kế
Cung cấp toàn cảnh, tổng quan về thuật toán
Nhược điểm
Cồng kềnh, đặc biệt với bài toán phức tạp
13/23
Cấu trúc tuần tự
Các bước được thực hiện theo 1 trình tự tuyến tính, hết
bước này đến bước khác
Công việc 1
Công việc 2
…
Công việc n
14/23
Cấu trúc rẽ nhánh
Nếu biểu thức điều kiện đúng (giá trị chân lý là True)
thực hiện công việc 1.
Nếu biểu thức điều kiện sai (giá trị chân lý là False) thực
hiện công việc 2.
Sai Sai
Điều kiện Điều kiện
Đúng Đúng
15/23
Cấu trúc lặp
Khi biểu thức điều kiện Thực hiện công việc
còn đúng, thực hiện công đến khi biểu thức điều
việc kiện sai.
Sai
Điều kiện Công việc
Đúng
Đúng
Công việc Điều kiện
Sai
16/23
Ví dụ 2- Mô tả bằng lưu đồ thuật toán
Begin
B1: Nhập a và b
Nhập a, b
End
B4: Kết thúc
17/23
Mã giả (pseudocode)
Ngôn ngữ tựa (gần giống) với ngôn ngữ lập trình được
gọi là mã giả
Mệnh đề có cấu trúc
Ngôn ngữ tự nhiên
Ưu điểm
Tiện lợi, đơn giản
Dễ hiểu, dễ diễn đạt
18/23
Ví dụ 3:
Bài toán: Đưa ra tổng, tích, hiệu, thương của hai số a
và b.
Đầu vào: Hai số a và b
Đầu ra: Tổng, tích, hiệu và thương của a và b.
Ý tưởng:
Tính tổng, tích, hiệu của a và b
Nếu b khác 0, đưa ra thương
Nếu b bằng 0, đưa ra thông báo không thực hiện được
phép chia
19/23
Ví dụ 3 -Ngôn ngữ tự nhiên
Ngôn ngữ tự nhiên Begin Sơ đồ khối
B1: Nhập số a và b. Nhập a, b
21/23
Ví dụ 4: ngôn ngữ tự nhiên
Ngôn ngữ tự nhiên Sơ đồ khối
Begin
B1: Nhập a và b
B2: Nếu a0 thì x-b/a. Hiển thị Nhập a, b
trình vô nghiệm”.
Ngược lại, hiển thị “Phương
𝑃𝑇𝑣ô 𝑛𝑔h𝑖ệ𝑚 𝑃𝑇𝑣ô𝑠ố 𝑛𝑔h𝑖ệ𝑚
trình vô số nghiệm”
B4: Kết thúc End
22/23
Bài tập
Bài toán: Giải phương trình bậc II
Đầu vào: Ba hệ số a, b, c
Đầu ra: Nghiệm của phương trình
Ý tưởng:
Lần lượt xét a = 0, b = 0 rồi xét c = 0 để kiểm tra các
trường hợp của phương trình bậc 2
Lời giải
Begin
Nhập a, b, c
∆←
Sai Đúng
∆>0
Sai Đúng
∆=0
−𝑏
𝑥=
2∗ 𝑎
”
𝐼𝑛 𝑛𝑔h𝑖ệ𝑚𝑥 𝐼𝑛 𝑛𝑔h𝑖ệ𝑚𝑥1,𝑥2
End
Bài tập
Bài toán: Tìm giá trị lớn nhất trong 3 số
Đầu vào: Ba hệ số a, b, c
Đầu ra: giá trị lớn nhất
Ý tưởng:
So sánh lần lượt các số.
Bài toán mở rộng: Tìm giá trị lớn nhất trong dãy
gồm nhiều số
Ý tưởng
3 1 4 9 8 6
Max 3
Max 3 1
Max 3 4
Max 4 9
Max 9 8
Max 9 6
Bài tập
Bài 01: Hoán đổi giá trị 2 số a và b.
Bài 01: Tìm tất cả các ước của số N.
Ý tưởng: kiểm tra từ 1 đến N, nếu gặp số chia hết thì ghi
nhận
Bài 02: Kiểm tra số p có phải số nguyên tố hay không
Ý tưởng: đếm số lượng ước số của p
27/23