ThÝch hîp cho nh÷ng nhµ lËp tr×nh chuyªn nghiÖp.. Ng«n ng÷ vÉn cßn phøc t¹p.[r]
Trang 1Kiểm tra bài cũ
Cho N và dãy số a1, …, aN, Hãy cho biết có bao nhiêu số hạng trong dãy có giá trị bằng 0.
Input: N và dãy số a1, …, aN
Trang 2Đ S
Đ S
Nhập N và a 1 ,…,a N
i 1; Dem 0
i > N
a i =0
Dem Dem+1
i i + 1
Đ a ra Dem, kết thúc
B1: Nhập N và dãy a 1 ,…,a,a N ;
B2: i 1; Dem 0;
B3: Nếu i > N thì đ a ra số Dem rồi kết thúc;
B4 : 4.1: Nếu a i >0 thì DemDem+1; 4.2: i i + 1 rồi quay lại B3.
Cách 2: Sơ đồ khối
Trang 3§ S
§ S
NhËp N vµ a 1 ,…,a N
i 1; Dem 0
i > N
a i = 0
Dem Dem+1
i i + 1
§ a ra Dem, kÕt thóc
1
Dem
i
A 0 1 0 0 -6
Víi N = 5
N=5 ; A [ 0 1 0 0 -6 ]
i 1; Dem 0
1 > 5
0 = 0
Dem 0+1
i 1 + 1
2
2 > 5
1 = 0
i 2+1
3 > 5
0 = 0
Dem 1+1
i 3+1
3 4
4 > 5
0 = 0
Dem 2+1
i 4+1
5
5 > 5 -6 = 0
i 5+1
6
S
§ S
§
M« pháng thuËt to¸n
S
S
Trang 4Bài 5 Ngôn ngữ lập trình
Làm thế nào để máy tính hiểu và thực hiện
đ ợc thuật toán?
Cần diễn tả thuật toán bằng một ngôn ngữ mà
máy tính hiểu và thực hiện đ ợc Ngôn ngữ đó gọi
ời và máy tính.
Trang 51 Ngôn ngữ máy ( machine language )
Vì vậy ngôn ngữ này không thích hợp với số đông
ng ời lập trình.
ch ơng trình mà MT trực tiếp hiểu và thực hiện đ ợc.
Các lệnh đ ợc viết bằng ngôn ngữ máy ở dạng mã nhị phân hoặc ở dạng mã hecxa
Là ngôn ngữ duy nhất máy tính
có thể trực tiếp hiểu và thực
hiện, cho phép khai thác triệt để
các đặc điểm phần cứng của
máy.
Ngôn ngữ phức tạp, phụ thuộc nhiều vào phần cứng, ch ơng trình viết mất nhiều công sức, cồng kềnh và khó hiệu chỉnh.
Phõn tớch ưu nhược, điểm của ngụn ngữ mỏy ?
Trang 62 Hợp ngữ ( assembly language )
- Là ngôn ngữ kết hợp ngôn ngữ máy với ngôn ngữ tự nhiên của con ng ời (tiếng Anh) để thể hiện các lệnh.
Không còn phụ thuộc nhiều vào
phần cứng của máy tính Ngôn
ngữ đã gần hơn với tự nhiên.
Thích hợp cho những nhà lập
trình chuyên nghiệp.
Ngôn ngữ vẫn còn phức tạp
Vẫn ch a phù hợp với phần
đông những ng ời lập trình.
MT không thể hiểu, thực hiện trực tiếp CT.
- Hợp ngữ bao gồm tên các câu lệnh và các quy tắc viết các câu lệnh để máy tính hiểu đ ợc
- Gồm hai phần:
+ phần đầu: là tên mã lệnh chỉ phép toán cần thực hiện + phần sau: là phần địa chỉ cho biết địa chỉ chứa toán hạng của phép toán đó.
- Ví dụ: Input a; Load a; Print e; Add d;
Phõn tớch ưu nhược, điểm của
hợp ngữ ?
Trang 7Ví dụ: Ch ơng trình tính e = (a+b)*(c+d)
input a;
input b;
input c;
input d;
load a;
add b;
move e;
load c;
add d;
mult e;
move e;
print e;
halt;
a;
b;
c;
d;
e;
- Dịch ch ơng trình hợp ngữ
sang ngôn ngữ máy
- Thực hiện ch ơng trình đã dịch
-Ví dụ:
Load a; 0000 00100000 a: ; 00100000
b: ; 00100010
ngữ thực hiện đ ợc trên máy tính,
nó cần đ ợc dịch ra ngôn ngữ máy bằng ch ơng trình hợp dịch.
ngữ thực hiện đ ợc trên máy tính,
nó cần đ ợc dịch ra ngôn ngữ máy bằng ch ơng trình hợp dịch.
Trang 83 Ng«n ng÷ bËc cao (High level language)
- Lµ ng«n ng÷ ® îc t¹o ra vµ ph¸t triÓn nh»m ph¶n ¸nh c¸ch thøc ng êi lËp tr×nh nghÜ vµ lµm Ng«n ng÷ bËc cao rÊt gÇn víi ng«n ng÷ con ng êi (T.Anh), nh ng chÝnh x¸c nh ng«n ng÷ To¸n häc.
- Lµ ng«n ng÷ Ýt phô thuéc vµo lo¹i m¸y, ch ¬ng tr×nh viÕt ng¾n gän, dÔ hiÓu, dÔ n©ng cÊp.
Mét sè ng«n ng÷ bËc cao:
+ Fortran (FORmular TRANslator): của hãng IBM, ra đời năm 1954
+ COBOL(1959), Algol(1960), Basic
+ Turbo Pascal, Visual Basic, Java, Delphi, C, C ++
tr×nh.
Vì sao ngôn ngữ lập trình bậc cao
ra đời?
- §Ó m¸y tÝnh cã thÓ thùc hiÖn ® îc ch ¬ng tr×nh viÕt b»ng ng«n ng÷ lËp tr×nh bËc cao th× còng cÇn mét ch ¬ng tr×nh chuyÓn tõ ng«n ng÷ lËp tr×nh bËc cao sang ng«n ng÷
m¸y, nã ® îc gäi lµ ch ¬ng tr×nh dÞch.
Trang 9Ví dụ: Viết và đ a ra màn hình 10 chữ số từ 1
đến 10, mỗi số 1 nằm trên 1 dòng.
Trang 10Cõu hỏi thảo luận:
Cõu 1: Em hiểu ngụn ngữ lập trỡnh là gỡ ?
Cõu 2: Hợp dịch và chương trỡnh dịch dựng
để làm gỡ ?
Cõu 3: Vỡ sao phải phỏt triển cỏc ngụn ngữ lập trỡnh bậc cao ?
Đó chính là ph ơng thức để con ng ời diễn đạt
thuật toán cho máy tính hiểu và thực hiện đ ợc.
Hợp dịch và ch ơng trình dịch dùng để dịch ch ơng trình
đ ợc viết bằng hợp ngữ, NNLT bậc cao thành
ch ơng trình có thể thực hiện đ ợc trên máy.
NNLT bậc cao đ ợc phát triển nhằm thoả mãn nhu cầu của phần đông đa số những ng ời dùng máy tính
đều có thể lập trình đ ợc.