baigiang05 thuattoan(1s 1p)
TRANSCRIPT
![Page 1: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/1.jpg)
THUẬT TOÁN &
NGÔN NGỮ LẬP TRÌNH
![Page 2: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/2.jpg)
Thuật toán
• Thuật toán (algorithm)
– Thuật toán/giải thuật: thủ thuật giải quyết một bài toán
– Thuật toán là một dãy có trình tự các công việc cần thực hiện
– Tính chất cơ bản của thuật toán • Tính hữu hạn: kết thúc sau một số bước
• Tính hiệu quả: thuật toán đơn giản, tối ưu về mặt sử dụng bộ nhớ, thời gian
• Tính tổng quát: giải quyết một cách tổng quát
• Tính xác định: kết quả chỉ phụ thuộc vào dữ liệu của bài toán
![Page 3: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/3.jpg)
Thuật toán
• Thuật toán
–Hai phương tiện đơn giản mô tả
thuật toán
• Giả mã: dùng ngôn ngữ tự nhiên
• Sơ đồ khối: dùng các kí hiệu đồ
họa
![Page 4: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/4.jpg)
Thuật toán
• Giả mã
– Ví dụ 2 : xây dựng thuật toán tính tổng
s = 1 + 2 + … n
• Bước 1: Nhập giá trị n
• Bước 2: Cho s = 0, i = 0 (i là biến đếm)
• Bước 3: Trong khi i còn nhỏ hơn n thì thực hiện
– Bước 3.1: tăng i lên một đơn vị (i = i + 1)
– Bước 3.2: cộng i vào s (s = s + i)
– Bước 3.3: lặp lại bước 3
• Bước 4: Xuất ra giá trị của s
![Page 5: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/5.jpg)
Thuật toán
• Giả mã
– Bài tập: xây dựng thuật toán tính giai thừa
p = n! = 1.2.3…n
• Bước 1: Nhập giá trị n
• Bước 2: Cho p = 1, i = 1 (i là biến đếm)
• Bước 3: Trong khi i còn nhỏ hơn n thì thực hiện
– Bước 3.1: tăng i lên một đơn vị (i = i + 1)
– Bước 3.2: nhân i vào p (p = p * i)
– Bước 3.2: lặp lại bước 3
• Bước 4: Xuất ra giá trị của p
![Page 6: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/6.jpg)
Thuật toán
• Sơ đồ khối gồm các kí hiệu sau:
begin
Bắt đầu
end
Kết thúc Nhập/xuất dữ liệu
Thực hiện công việc
điều kiện
Kiểm tra rẽ nhánh
đúng sai
![Page 7: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/7.jpg)
Các cấu trúc điều khiển
• Cấu trúc điều kiện
Nếu nhiệt độ thấp hơn 15 độ
In ra “Cần phải mặt áo ấm”
Ngược lại
In ra “Không cần mặt áo ấm”
Điều
kiện
Công việc A Công việc
B
Đúng Sai
![Page 8: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/8.jpg)
Các cấu trúc điều khiển
• Cấu trúc lặp
Gán đếm = 1
Trong khi (đếm <= giới hạn) thì
. . .
Gán đếm = đếm + 1
. . .
Điều
kiện
Công việc A
Đúng
Sai
![Page 9: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/9.jpg)
Thuật toán
• Ví dụ: vẽ sơ đồ khối tính n!
p = 1.2.3 … n
i = 1
p = 1
begin
Nhap n
i < n
i = i + 1
p = p * i
In ra p
![Page 10: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/10.jpg)
Thuật toán
• Bài tập:
–Vẽ sơ đồ khối tính tổng: s = 1 + 2 + … n
–Xây dựng thuật toán giải phương trình bậc hai
ax2 + bx + c = 0
• Dùng giả mã
• Dùng sơ đồ khối
![Page 11: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/11.jpg)
Ngôn ngữ lập trình
• Ngôn ngữ lập trình (programming
language)
–Gồm bộ từ vựng (vocabulary) và
các quy tắc cú pháp (rules) áp dụng
lên bộ từ vựng đó
–Dùng để viết chương trình chạy
trên máy tính
![Page 12: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/12.jpg)
Ngôn ngữ lập trình
• Ngôn ngữ lập trình
– Phân loại ngôn ngữ lập trình
• Ngôn ngữ máy: là các chuỗi nhị phân
được xử lí trực tiếp bởi bộ vi xủ lí
• Ngôn ngữ bậc thấp: sử dụng một số từ dễ
nhớ thay cho ngôn ngữ máy, như ngôn
ngữ Assembly
• Ngôn ngữ bậc cao: gần gũi với ngôn ngữ
tự nhiên, dễ sử dụng, như C, Pascal, …
![Page 13: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/13.jpg)
Ngôn ngữ lập trình
• Chương trình dịch (compiler)
– Máy tính chỉ hiểu được ngôn ngữ máy (các bit
0 và 1)
– Chương trình dịch dịch chương trình viết
bằng ngôn ngữ bậc cao ra ngôn ngữ máy
– Có hai loại chương trình dịch
• Thông dịch: dịch và thực hiện từng lệnh một
• Biên dịch: dịch toàn bộ chương trình rồi mới thực
thi
![Page 14: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/14.jpg)
Biên dịch
Chương
trình bằng
ngôn ngữ
bậc cao
Chương
trình bằng
mã máy
Biên
dịch
Input Output
![Page 15: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/15.jpg)
![Page 16: Baigiang05 thuattoan(1s 1p)](https://reader036.vdocuments.pub/reader036/viewer/2022081519/55806ca3d8b42a925c8b48c4/html5/thumbnails/16.jpg)