Professional Documents
Culture Documents
Ngôn ngữ lập trình và các mức khác nhau của ngôn ngữ
lập trình
Quá trình thực hiện chương trình trên ngôn ngữ bậc cao
m n
m<n
15 21
m>n
15 6
9 6 m>n
3 6 m<n
3 3 m=n
USCLN(15,21) = 3
Dùng sơ đồ khối
Ví dụ
Thuật toán giải PT bậc nhất: ax + b = 0
(a, b là các số thực).
Khối vào ra
Nhập/Xuất dữ liệu.
Đường đi
Chỉ hướng thao tác tiếp theo.
Sử dụng lưu đồ - sơ đồ khối
Bắt đầu
Đọc a,b
Đ S
a=0
Đ S Tính
b=0
x = -b/a
Xuất Xuất
Xuất x
“VSN” “VN”
Kết thúc
Sử dụng mã giả
Vay mượn ngôn ngữ nào đó (ví dụ Pascal) để biểu diễn
thuật toán.
void main()
{
int a, b;
printf(“Nhap a, b: ”);
scanf(“%d%d”, &a, &b);
if (a == 0)
if (b == 0)
printf(“Phương trình VSN”);
else
printf(“Phương trình VN”);
else
printf(“x = %.2f”, -float(b)/a);
}
Sơ lược về đánh giá giải thuật
Với mỗi bài toán có thể có nhiều thuật toán khác nhau. Tuy nhiên
hiệu quả của chúng có thể rất khác nhau.
Trong tin học người ta quan tâm nhiều đến độ phức tạp về thời gian:
giải bài toán đó cần bao nhiêu thời gian, vấn đề này được quy về số
phép tính cơ bản cần được thực hiện
Vấn đề hiệu quả thời gian là vấn đề được nghiên cứu nhiều hơn cả.
Người ta muốn các ngôn ngữ chỉ diễn tả thuật toán mà thôi, không liên quan
đến các hệ lệnh đặc thù của máy tính cụ thể. Các ngôn ngữ này gọi là ngôn
ngữ bậc cao (high level language) hay còn gọi là ngôn ngữ thuật toán
(algorithmic language)
Ngôn ngữ thuật toán có hình thức giống với ngôn ngữ tự nhiên hoặc ngôn
ngữ toán học nên dễ diễn đạt hơn nhiều so với ngôn ngữ máy hoặc hợp ngữ
Kết quả
Chương trình Các mô đun Chương trình xử lý
nguồn đối tượng chạy được
1985: với sự xuất hiện bộ phát triển Turbo Pascal đã hình thành một khuynh
hướng mới về việc tạo ra các môi trường phát triển tích hợp IDE (Intergated
Development Environment) -> toàn bộ các quá trình soạn thảo, dịch, liên kết ,
thi hành và gỡ lỗi được thực hiện trong cùng một mối trường liên hệ chặt chẽ
bước phát triển tiếp của IDE là việc phát triển hướng đối tượng, phát triển theo
mẫu, lập trình hướng tới thành phần (liên kết động các thành phần có sẵn trong
mã nhị phân) làm việc sinh mã chương trình trở nên hiệu quả hơn rất nhiều.
Các hệ CASE (Computer Aided Software Engineering) còn cho phép phát sinh
mã trên nền thiết kế là một bước tiến theo một khuynh hướng khác.
Đánh giá hiệu quả của các thuật toán khác nhau cùng giải
quyết một bài toán.
Phân tích ưu, nhược điểm của từng phương pháp biểu diễn
giải thuật?