Bài giảng Nhập môn điện toán - Chương 6: Lập trình

Chương 6. LẬP TRÌNH  
6.1. Ngôn ngữ lập trình  
6.2. Xử lý ngôn ngữ  
6.3. Thiết kế chương trình  
6.4. Kiểm tra và g
6.5. Lập tài liệu  
Nhꢀp môn Điꢁn Toán - Chương 6  
Slide 1  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
6.1. Ngôn ngữ lập trình  
• Ngôn ngữ máy:  
– Là tập hợp gồm nhiều lệnh máy  
• Lệnh máy  
– Là một chuỗi các bit 0 và 1  
– Chỉ thực hiện một số tác vụ đơn giản như các phép tính số học và  
các ho
ạ
t
độ
ng
– Một lệnh máy bao gồm 2 phần: mã lệnh và toán hạng  
– Chỉ có hai cấu trúc điều khiển cơ bản để thực hiện các lệnh: tuần  
tự và nhảy  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 2  
• Ngôn ngữ lập trình:  
– Chương trình (program): Một đoạn mã lệnh yêu cầu  
máy tính thực hiện một công việc cụ thể nào đó  
– Lập trình (programming): Viết chương trình, bằng cách  
sử dụng một ngôn ngữ lập trình  
–
Ngôn ng
ữ
l
ậ
n ng
ữ
giúp con  
người biểu diễn ý tưởng của mình dưới dạng chương  
trình, nhờ đó máy tính có thể thực hiện được ý tưởng  
này  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 3  
Ví dụ  
1010 0001 0000 0000 0000 0001 0000 0101  
0000 0101 0000 0000 1010 0011 0000  
0000…..  
(64 kí số 0, 1)  
⇒
Ngôn ng
ữ
m
không th
ể đọ
c  
hiểu được (rất khó viết và hầu như không thể đọc)  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 4  
Ngôn ngữ lập trình cấp thấp và cấp cao  
• Ngôn ngữ lập trình mức thấp nhất: ngôn ngữ máy.  
• Ngôn ngữ lập trình cấp cao: ngôn ngữ nhiều kiểu  
diễu dữ liệu và nhiều cấu trúc điều khiển hơn so  
với những gì được cung cấp bởi ngôn ngữ máy;  
đồ
ng th
ờ
i các
ể
u c
ũ
ng g
ầ
n  
với ngôn ngữ tự nhiên hơn  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 5  
Một số dạng ngôn ngữ lập trình cấp cao  
• Đa mục đích: Basic, C (C++, C#), Java, Fortran, Pascal  
• Lập trình đệ quy  
• Lập trình khai báo và lập trình thủ tục  
– Khai báo: C, Pascal  
– Thủ tục: Prolog, Lisp  
• Lập trình logic  
• Ngôn ngữ lập trình hàm  
• Lập trình hướng đối tượng  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 6  
Ví dụ  
1010 0001 0000 0000 0000 0001 0000 0101 0000 0101 0000  
0000 1010 0011 0000 0000…..  
(64 kí số 0, 1)  
⇒Ngôn ngữ máy, con người hầu như không thể đọc hiểu được (rất  
khó viết và hầu như không thể đọc)  
Mov ax, [100]  
Add ax, 5  
Mov [100], ax  
⇒Hợp ngữ, con người có thể đọc được, nhưng chỉ bao gồm các cấu  
trúc tuần tự và nhảy của ngôn ngữ máy ⇒ khó biểu diễn ý tưởng  
(khó đọc và khó viết)  
⇒a := a + 5 (a chứa tại địa chỉ [100])  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 7  
Ví dụ (tt)  
a := 3 +1;  
For i:=1 to 3 do read(a);  
⇒ Ngôn ngữ Pascal: cung cấp nhiều cấu trúc dữ liệu hơn,  
có thể biểu diễn ý tưởng tốt hơn, tuy nhiên vẫn tương đối  
khó đọc so với ngôn ngữ tự nhiên (dễ viết và tương đối dễ  
đọ
c)  
Select ID from Table Where ID > 5  
⇒ Ngôn ngữ SQL: rất gần với ngôn ngữ tự nhiên, tuy nhiên  
không cung cấp nhiều cấu trúc điều khiển (dễ đọc, khó  
viết)  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 8  
Cơ chế thực hiện chương trình  
• Cơ chế tuần tự  
• Cơ chế nhảy  
=> Lặp và rẽ nhánh  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 9  
Cấu trúc điều khiển  
• Cấu trúc điều khiển: Một cấu trúc ngôn ngữ quy  
định thứ tự thực hiện các lệnh  
• Ngôn ngữ máy: Tuần tự và nhảy  
• Ngôn ngữ cấp cao  
–
R
ẽ
nhánh  
– Lặp  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 10  
Cấu trúc tuần tự và nhảy  
A = 1;  
Goto Lable1;  
A = A*2;  
Label1:  
A = A + 3  
A=?  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 11  
Cấu trúc rẽ nhánh  
• if (x < y) {  
printf ("x is smaller");  
}
else {  
printf ("x is greater")  
}
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 12  
Cấu trúc lặp  
• i = 1  
while (i < 5) do {  
printf(i);  
i = i + 1;  
}
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 13  
Cấu trúc khối  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 14  
Hàm và chương trình con  
• Các phần chương trình nhỏ, có tên và có thể được  
gọi bởi tên ở các phần khác của chương trình  
• Thực hiện một công việc chuyên nhiệm  
• Cho phép chương trình được thiết kế thành nhiều  
thành ph
ầ
n nh
• Có thể định nghĩa biến cục bộ riêng  
• Hàm trả về kết quả khi được gọi  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 15  
Ví dụ  
• int max(int a, int b) {  
if (a < b)  
return a;  
else  
return b;  
}
• void main() {  
int a;  
a = max(1,2)  
}
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 16  
Các thế hệ ngôn ngữ lập trình  
• Thế hệ thứ nhất:  
– Xuất hiện vào thập niên 60  
– Tập lệnh gần giống như tập lệnh máy (machine code)  
– Đại diện tiêu biểu: Fortran  
• Thế hệ thứ hai  
– Phát triển các cấu trúc dữ liệu từ thế hệ thứ nhất  
– Xuất hiện cấu trúc khối (block structure), các cấu trúc điều khiển  
(control structures) và các dạng cú pháp linh hoạt hơn  
– Chương trình đã có thể được thiết kế (design)  
– Đại diện tiêu biểu: Algol-60  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 17  
Các thế hệ ngôn ngữ lập trình (tt)  
• Thế hệ thứ ba:  
– Xuất hiện các kiểu dữ liệu do người sử dụng định nghĩa  
(user-defined data types)  
– Các dạng cấu trúc điều khiển tiếp tục được bổ sung hiệu  
quả hơn  
– Ngôn ngữ độc lập hơn với kiến trúc máy tính  
– Đại diện tiêu biểu: Pascal  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 18  
Các thế hệ ngôn ngữ lập trình (tt)  
• Thế hệ thứ tư: (Fourth Generation Languages – 4GL)  
– Dễ sử dụng hơn, đặc biệt dành cho những người không phải là chuyên  
gia  
– Cho phép đưa ra những giải pháp nhanh để xử lý dữ liệu  
– Xúc tích hơn  
– Gần với ngôn ngữ tự nhiên  
–
G
ầ
n g
ũ
i v
ớ
i ng
ư
– Không có dạng thủ tục (non-procedural)  
– Đại diện tiêu biểu: Structured Query Language (SQL)  
• Thế hệ thứ năm:  
– Các ngôn ngữ được chuyên dụng hoá, độc lập với kiến trúc máy tính,  
phục vụ các nhu cầu lập trình đặc trưng  
– Hỗ trợ nhiều cấu trúc điều khiển và có các dạng cú pháp tương đối dễ  
đọc  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 19  
6.2. Xử lý ngôn ngữ  
Đꢀnh nghĩa cꢁa ngôn ngꢂ máy tính  
• Máy tính chỉ có thể hiểu và thực thi được một chương  
trình khi các lệnh của chương trình được viết một cách  
tuyệt đối chính xác và rõ ràng về ngữ nghĩa  
• Để viết được mgôn ngữ lập  
trình cũng phải được định nghĩa theo một hình thức rõ  
ràng và chính xác  
• Ngôn ngữ dùng để định nghĩa ngôn ngữ lập trình là siêu  
ngôn ngữ (meta-language)  
Nhꢀp môn Điꢁn Toán - Chương 6  
Khoa KH & KT Máy Tính, ĐẠI HỌC BÁCH KHOA TP.HCM  
Slide 20  
Tải về để xem bản đầy đủ
pdf 48 trang yennguyen 28800 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn điện toán - Chương 6: Lập trình", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_nhap_mon_dien_toan_chuong_6_lap_trinh.pdf