Nội dung chính của chương này giúp người học hiểu được thuật toán là gì, cách biểu diễn một số thuật toán cơ bản như tính tổng dãy số, tìm giá trị lớn nhất của dãy số,... Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
Trang 1THUẬT TOÁN VÀ
NGÔN NGỮ LẬP TRÌNH C
BÀI GIẢNG
Giáo viên: Hà Nguyên Long
Trang 2www.themegallery.com Company Logo
THUẬT TOÁN
TỪ BÀI TOÁN ĐẾN CHƯƠNG TRÌNH
1 Mô tả các bước giải bài toán
2 Vẽ sơ đồ xử lý dựa trên các bước
3 Dựa trên sơ đồ xử lý để viết chương trình xử lý
bằng ngôn ngữ giả (ngôn ngữ bình thường của
chúng ta)
4 Chọn ngôn ngữ lập trình và chuyển chương trình từ ngôn ngữ giả sang ngôn ngữ lập trình để tạo thành một chương trình hoàn chỉnh
5 Thực hiện chương trình: nhập vào các tham số,
nhận kết quả
Trang 3THUẬT TOÁN
THUẬT TOÁN
Thuật toán là một hệ thống chặt chẽ và rõ ràng các
quy tắc nhằm xác định một dãy các thao tác trên
những dữ liệu vào sao cho sau một số hữu hạn bước thực hiện các thao tác đó ta thu được kết quả của bài toán
Trang 4www.themegallery.com Company Logo
THUẬT TOÁN
THUẬT TOÁN
Ví dụ 1: Giả sử có hai bình A và B đựng hai loại chất lỏng khác nhau, chẳng hạn bình A đựng rượu, bình B đựng nước mắm Thuật toán để hoán đổi chất lỏng
đựng trong hai bình đó là:
- Yêu cầu phải có thêm một bình thứ ba gọi là bình C
- Bước 1: Đổ rượu từ bình A sang bình C
- Bước 2: Đổ nước mắm từ bình B sang bình A
- Bước 3: Đổ rượu từ bình C sang bình B
Trang 5THUẬT TOÁN
THUẬT TOÁN
Ví dụ 2: Một trong những thuật toán tìm ước chung
lớn nhất của hai số a và b là:
- Bước 1: Nhập vào hai số a và b
- Bước 2: So sánh 2 số a,b chọn số nhỏ nhất gán cho UCLN
- Bước 3: Nếu một trong hai số a hoặc b không chia hết cho UCLN thì thực hiện bước 4, ngược lại (cả a
và b đều chia hết cho UCLN) thì thực hiện bước 5
- Bước 4: Giảm UCLN một đơn vị và quay lại bước 3
- Bước 5: In UCLN - Kết thúc
Trang 6www.themegallery.com Company Logo
THUẬT TOÁN
Các đặc trưng của thuật toán
o Tính kết thúc: Thuật toán phải dừng sau một số hữu hạn bước
o Tính xác định: Các thao tác máy tính phải thực hiện được và các máy tính khác nhau thực hiện cùng một bước của cùng một thuật toán phải cho cùng một kết quả
o Tính phổ dụng: Thuật toán phải "vét' hết các trường hợp và áp dụng cho một loạt bài toán cùng loại
o Tính hiệu quả: Một thuật toán được đánh giá là tốt nếu nó đạt hai tiêu chuẩn sau:
- Thực hiện nhanh, tốn ít thời gian
- Tiêu phí ít tài nguyên của máy, chẳng hạn tốn ít bộ nhớ
Trang 7THUẬT TOÁN
Ngôn ngữ biểu diễn thuật toán
● Ngôn ngữ tự nhiên
● Ngôn ngữ sơ đồ (Lưu đồ)
● Ngôn ngữ tựa (giả) chương trı̀nh
Trang 8www.themegallery.com Company Logo
THUẬT TOÁN
Ngôn ngữ sơ đồ
Trang 9THUẬT TOÁN
Biểu diễn thuật toán tı́nh diện tı́ch hı̀nh chữ nhật bằng ngôn ngữ tự nhiên và ngôn ngữ sơ đồ
Bắt đầu
Kết thúc
a, b
S S=a*b
Bước 1: Nhập độ dài cạnh a, b
Bước 2: Tı́nh diện tı́ch S=a*b
Bước 3: In ra diện tı́ch S
Trang 10www.themegallery.com Company Logo
THUẬT TOÁN
Các cấu trúc lệnh cơ bản dùng trong biểu diễn
thuật toán
Cấu trúc tuần tự (Sequential)
Cấu trúc lựa chọn (Selection)
Cấu trúc lặp (Repeating)
Trang 11THUẬT TOÁN
Kiểu dữ liê ̣u
Kiểu dữ liệu sơ cấp
Kiểu dữ liệu sơ cấp là kiểu dữ liệu mà giá trị của nó
là đơn nhất
Ví dụ: Trong ngôn ngữ lập trình C, kiểu char gọi là
kiểu sơ cấp vì kiểu này bao gồm các ký tự
Kiểu dữ liệu có cấu trúc
Kiểu dữ liệu có cấu trúc là kiểu dữ liệu mà các giá trị của nó là sự kết hợp của các giá trị khác
Ví dụ: Kiểu chuỗi ký tự trong ngôn ngữ lập trình C là
Trang 12www.themegallery.com Company Logo
THUẬT TOÁN
Bài tâ ̣p
Biểu diễn các thuật toán sau bằng ngôn ngữ tự
nhiên và ngôn ngữ sơ đồ
● Tı́nh diện tı́ch hı̀nh tam giác khi biết cạnh đáy và
chiều cao
● Tı́nh diện tı́ch hı̀nh thang khi biết độ dài 2 cạnh
đáy và chiều cao
● Tı́nh diện tı́ch hı̀nh tròn khi biết đường kı́nh
Trang 13Biểu diễn một số thuâ ̣t toán cơ bản
● Tı́nh tổng dãy số
● Tı̀m giá tri ̣ lớn nhất của dãy số
● Sắp xếp dãy số
TIẾP THEO
Trang 14www.themegallery.com Company Logo
BIỂU DIỄN MỘT SỐ THUẬT TOÁN
Tı́nh tổng dãy số
Trang 15www.themegallery.com Company Logo
BIỂU DIỄN MỘT SỐ THUẬT TOÁN
Tı́nh tổng dãy số
Bước 1: Nhập số các số hạng n.
Bước 2: Cho S=0 (lưu trữ số 0
trong S)
Bước 3: Cho i=1 (lưu trữ số 1
trong i)
Bước 4: Kiểm tra nếu i<=n thì
thực hiện bước 5, ngược lại thực
hiện bước 8.
Bước 5: Nhập ai
Bước 6: Cho S=S+ai (lưu trữ giá
trị S + ai trong S)
Bước 7: Tăng i lên 1 đơn vị và
quay lại bước 4.
Bước 8: In S, kết thúc chương
Trang 16www.themegallery.com Company Logo
BIỂU DIỄN MỘT SỐ THUẬT TOÁN
- Bước 1: Nhập số n
- Bước 2: Nhập số thứ nhất a1
- Bước 3: Gán max=a1
- Bước 4: Gán i=2
- Bước 5: Nếu i<=n thì thực
hiện bước 6, ngược lại thực
hiện bước 9
- Bước 6: Nhập ai
- Bước 7: Nếu max < ai thì gán
max=ai.
- Bước 8: Tăng i lên một đơn vị
và quay lại bước 5
- Bước 9: In max - kết thúc
Tı̀m số lớn nhất
Trang 17www.themegallery.com Company Logo
BIỂU DIỄN MỘT SỐ THUẬT TOÁN
- Bước 1: Gán i=1
- Bước 2: Gán j=i+1
- Bước 3: Nếu i <=n-1 thì
thực hiện bước 4, ngược lại
thực hiện bước 8
- Bước 4: Nếu j <=n thì thực
hiện bước 5, ngược lại thì
thực hiện bước 7.
- Bước 5: Nếu ai > aj thì
hoán đổi ai và aj cho nhau
(nếu không thì thôi).
- Bước 6: Tăng j lên một
đơn vị và quay lại bước 4
- Bước 7: Tăng i lên một
đơn vị và quay lại bước 3
Sắp xếp dãy số
Trang 18www.themegallery.com Company Logo
BIỂU DIỄN MỘT SỐ THUẬT TOÁN
Bài tâ ̣p
Bài 1, 2, 3, 4 – Chương 2
Trang 19Ngôn ngữ lâ ̣p trı̀nh C
TIẾP THEO