Thpt Nguyễn Trãi Tin Học 11
CHƯƠNG I: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH
VÀ NGƠN NGỮ LẬP TRÌNH
BÀI 1: KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH
I. KHÁI NIỆM LẬP TRÌNH & CHƯƠNG TRÌNH DỊCH
1. Khái niệm lập trình
Lập trình là sử dụng cấu trúc dữ liệu và các câu lệnh của ngơn ngữ lập trình
cụ thể để mơ tả dữ liệu và diễn đạt các thao tác của thuật tốn.
2. Khái niệm chương trình dịch
Chương trình dịch là chương trình đặc biệt, có chức năng chuyển đổi
chương trình được viết trên ngơn ngữ lập trình bậc cao thành chương trình
được thực hiện trên máy tính.
3. Ngun tắc thực hiện của chương trình dịch
Chương trình dịch thực hiện hai giai đoạn:
• Phân tích: phân tích chương trình nguồn về từ vựng và cú pháp.
• Tổng hợp: nhằm tạo ra chương trình đích, gồm các bước.
o Chuyển chương trình nguồn về chương trình trung gian
o Chỉnh sửa tối ưu mã trung gian
o Tạo chương trình đích từ chương trình trung gian đã tối ưu.
II. KHÁI NIỆM THƠNG DỊCH VÀ BIÊN DỊCH
1. Khái niệm về thơng dịch:
Thơng dịch được thực hiện bằng cách lặp lại các bước sau
Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong chương trình nguồn
Chuyển đổi câu lệnh đó thành một hay nhiều câu lệnh thương ứng
trong ngơn ngữ máy
Thực hiện câu lệnh vừa chuyển đổi được
Q trình dịch và thực hiện là q trình ln phiên,
Thơng dịch phù hợp cho mơi trường đối thoại giữa người và máy
Thơng dịch khơng có chương trình đích để lưu dữ
2. Khái niệm về biên dịch:
Biên dịch thực hiện qua hai bước:
Mọi đối tượng trong chương trình điều phải được đặt tên.
Turbo pascal, tên khơng q 127 kí tự bao gồm chữ số, chữ cái hoặc dấu
gạch dưới và bắt đầu bằng chữ cái hoặc dấu gạch dưới.
Khơng bắt đầu bằng số, khơng chứa khoảng trống hoặc kí tự đặc biệt.
Trong Free Pascal, tên có thể có độ dài đến 255 kí tự
Ví dụ:
o tên đúng: D
_P
o tên sai: DA B
6p5
G#
Pascal phân biệt ba loại tên:
• Tên dành riêng (từ khóa): do ngơn ngữ lập trình qui định, được
dùng với ý nghĩa riêng, khơng được dùng với ý nghĩa khác.
o Từ khóa chung: PROGRAM, BEGIN, END, PROCEDURE, FUNCTION
o Từ khóa để khai báo: CONST, VAR, LABEL,TYPE, ARRAY, STRING,
RECORD, SET, FILE OF
o Từ khóa cấu trúc lặp:FOR…TO…DO; WHILE…DO…;REPEAT…UNTIL…;
FOR…DOWNTO…DO
o Từ khóa cấu trúc rẽ nhánh: IF…THEN; IF…THEN…ELSE.
o Từ khóa cấu trúc lựa chọn: CASE…OF
Trang 2 Lê Tôn Hiệp
Thpt Nguyễn Trãi Tin Học 11
o Từ khóa điều khiển: WITH, GOTO
o Từ khóa tốn tử: AND, OR, NOT, IN, DIV, MOD, XOR
o Từ khóa rỗng: NULL
• Tên chuẩn: tên dùng với ý nghĩa nhất định. Người lập trình có thể
khai báo và dùng chùng với ý nghĩa khác.
o BOOLEAN, CHAR, INTEGER, BYTE, TEXT, REAL, BREAK, EXTENDED…
o FALSE, TRUE….
x:=4;
y:=2;
x:=x+y;
y:=y+x;
writeln(x,y);
end.
3. Chú thích
Ví dụ:
Lê Tôn Hiệp Trang 3
Tin Học 11 Thpt Nguyễn Trãi
program bien;
uses crt;
var x,y:integer;
begin
clrscr;
x:=4; (* gan gia tri 4 cho bien x*)
y:=2;
x:=x+y; {lay x+y roi gan gia tri nay cho x}
y:=y+x;
writeln(x,y);
end.
• Bài tập
Trang 4 Lê Tôn Hiệp
Thpt Nguyễn Trãi Tin Học 11
CHƯƠNG II: CHƯƠNG TRÌNH ĐƠN GIẢN
BÀI 3: CẤU TRÚC CHƯƠNG TRÌNH
I. CẤU TRÚC CHUNG
o chương trình được viết bằng một ngôn ngữ lập trình bậc cao thường gồm
phần khai báo
phần thân.
Ví dụ :
program duongtron;
uses crt;
const pi=3.1419;
var bkinh : integer;
dtich : real;
begin
clrscr;
bkinh:=2;
dtich:=2*pi*bkinh;
Lê Tôn Hiệp Trang 5
Begin
[<Dãy lệnh >]
End.
Tin Học 11 Thpt Nguyễn Trãi
writeln('dien tich hinh tron: ',dtich:5:3);
readln;
end.
d) khai báo biến
Tất cả các biến dùng trong chương trình đều phải đặt tên và khai báo cho chương
trình dòch biết để lưu trữ và xử lý .
Biến của một chương trình là tên của một ô nhớ.
Biến chỉ nhận một giá trò tại mỗi thời điểm thực hiện chương trình gọi là biến đơn
Khai báo biến:
Var <danh_sach_bien> : <kiểu của biến>;
Có thể khai báo nhiều kiểu biến sau từ khóa var
Trong danh sách biến các biến cách nhau bởi dấu phấy (,)
e) Khai báo chương trình con:
Thường bắt đầu bằng từ khóa Function hay Procedure
2 phần thân chương trình
Real
6 byte 2.9*10
-39
…1.7*10
38
Single
4 byte 1.5*10
-45
…3.4*10
38
Double
8 byte 5.0*10
-324
…1.7*10
-308
extended
10 byte 3.4*10
-4932
…1*10
4932
3. Kiểu kí tự
kiểu
Bộ nhớ lưu trữ
một giá trò
Phạm vi giá trò
char
1 byte 256 kí tự trong bộ mã ASCII
4. Kiểu lôgic
Kiểu
Bộ nhớ lưu trữ
C : char;
I, J : byte;
N : word;
Một số chú ý khi khai báo biến:
• Cần đặt tên biến sao cho gợi nhớ đến ý nghóa của biến đó. Điều này rất có lợi cho việc đọc
hiểu và sửa đổi chương trình khi cần thiết .
• Không nên đặt tên biến quá ngắn hay quá dài, dễ mắc lỗi khi viết nhiều lần tên biến.
o Ví dụ: không nên dùng d1,d2 hay diemmontoan, diemmontin cho điểm toán, điểm tin của
học sinh.
• Khi khai báo biến cần đặt biệt lưu ý đến phạm vi giá trò của nó.
o Ví dụ: khi khai báo biến biễu diễn:
số học sinh của một lớp có thể sử dụng kiểu byte
số học sinh của tòan trường thì phải thuộc kiểu Word.
• Bài tập
Trang 8 Lê Tôn Hiệp
Thpt Nguyễn Trãi Tin Học 11
Bài 6: PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN
1. Phép toán
Phép toán Trong toán học Trong Pascal
số nguyên
+ (cộng); - (trừ);x (nhân)
div (chia nguyên),
mod (lấy phần dư)
+ ; - ; *
div
mod
số thực
+ (cộng); - (trừ);x (nhân)
: (chia)
+ ; - ; *
• Viết lần lượt từ trái sang phải;
• Không được bỏ qua dấu nhân (*) trong tích.
Các phép toán được thực hiện theo thứ tự :
• Thực hiện các phép toán trong ngoặc trước;
• Trong dãy các phép toán không chưá ngoặc thì thực hiện từ trái sang phải, theo
thứ tự các phép toán nhưng (*), chia (/), chia nguyên (div), lấy phần dư (mod)
thực hiện trước và các phép toán cộng (+), trừ (-) thực hiện sau.
Ví dụ:
Biểu thức trong toán học Biểu thức trong Pascal
5a+6b 5*a + 6*b
xy
z
x*y/z
Ax
2
+ Bx +C A*x*x + B*x + C
1
2
x y
x
+
−
-
x z
xy
−
(x + y)/ (x-1/2) – (x-z)/(x*y)
Chú ý:
Lê Tôn Hiệp Trang 9
Tin Học 11 Thpt Nguyễn Trãi
e
x
exp(x) Thực Thực
Sin sinx sin(x) Thực Thực
Cos cosx cos(x) Thực Thực
4. biểu thức quan hệ
Hai biểu thức cùng kiểu liên kết với nhau bởi phép tốn quan hệ cho ta một
biểu thức quan hệ .
Biểu thức quan hệ có dạng :
<biểu thức 1> <phép tốn quan hệ> <biểu thức 2>
Trong đó, biểu thức 1 và biểu thức 2 cùng là xâu hoặc cùng là biểu thức số
học .
• Ví dụ x < 5
i+1 >= 2
j
Biểu thức quan hệ được thực hiện theo trình tự :
• Tính giá trị các biểu thức .
• Thực hiện phép tốn quan hệ .
• Ví dụ : Điều kiện để điểm M ( x,y) thuộc hình tròn tâm I (a,b) , bán
kính R là :
sqrt ( ( x-a )
(x-a) + (y-b)
(y-b) ) <= R
hoặc
sqr ( x-a ) + sqr ( y-b ) <= R
• Nhóm thủ tục chuẩn
Thủ tục Chức năng
Inc (x) Tăng giá trị của biến x một đơn vị.
Dec (x) Giảm giá trị của biến x một đơn vị.
Inc (x,y) Đặt cho biến x giá trị mới bằng giá trị cũ cộng với giá trị của biến y.
Dec (x,y) Đặt cho biến x giá trị mới bằng giá trị cũ trừ với giá trị của biến y.
• Nhóm hàm chuẩn
Hàm Chức năng
Pred (x) Cho giá trị bằng x -1 .
Succ (x) Chi giá trị bằng x + 1.
Random (N) Hàm có biểu thức N kiểu word và cho giá trị là một số ngun
ngẫu nhiên trong phạm vi từ 0 đến N – 1. khi dùng hàm này
ta phải gọi thủ tục randomize.
9. Nhóm hàm chuẩn đối với các biến kiểu thực
Hàm Chức năng
ArcTan (x)
Cho giá trị là số đo của cung thuộc khoảng (-
2
π
,
2
π
)
có tang bằng giá trị của biến x hay số thực x.
Pi Cho giá trị của số
π
(3.1415…).
Int (x)
Cho giá trị bằng phần ngun nhưng có kiểu số thực
của giá trị biến x hoặc số thực x (phần ngun của
Cho giá trị của biến x là kí tự đừng ngay trước kí tự ứng với
giá trị hiện thời của x trong bộ mã ASCII.
b.Nhóm hàm chuẩn
Hàm Chức năng
Chr(x)
Cho giá trị là kí tự có mã ASCII thập phân bằng (giá trị của biểu thức) x có
giá rị ngun từ 0 đến 255.
Ord(ch) Cho giá trị mã ASCII thập phân của kí tự ch.
Pred(ch) Cho kí tự đứng ngay trước kí tự ch trong bộ mã ASCII.
Succ(ch) Cho kí tự đứng ngay sau kí tự ch trong bộ mã ASCII.
Upcase(ch)
Nếu ch là chữ cái tiếng Anh, hàm cho giá trị bằng chữ cái hoa tương ứng,
ngược lại, hàm cho giá trị bằng giá trị của ch.
• Bài tập
Trang 12 Lê Tôn Hiệp
Thpt Nguyễn Trãi Tin Học 11
Bài 7: CÁC THỦ TỤC CHUẨN VÀO RA ĐƠN GIẢN
1.Nhập dữ liệu vào từ bàn phím
Việc nhập dữ liệu vào từ bàn phím được thực hiện bằng các thủ tục chuẩn:
• Danh sách biến vào là một hoặc nhiều tên biến đơn (trừ biến kiểu boolean).
• Trong trường hợp nhiều biến thì các tên biến được viết cách nhau bởi dấu
phẩy
vd: read(N);
readln(a,b,c);
2.Đưa dữ liệu ra màn hình:
Việc đưa dữ liệu ra màn hình được thực hiện bằng các thủ tục chuẩn:
• Danh sách kết quả ra có thể là tên biến đơn, biểu thức hoặc hằng.
• Các thành phần của kết quả được viết cách nhau bởi dấu phẩy
• Thủ tục write sau khi đưa các kết quả ra màn hình con trỏ khơng chuyển
xuống dòng tiếp theo.
hoặc
writeln(<tên biến>: < độ rộng > );
---36-24.00
425--56--23.200
Tin Học 11 Thpt Nguyễn Trãi
• độ rộng và số chữ số thập phân là các hằng ngun dương,
Ví dụ
Writeln ( N:5 , X:6:2);
Write ( I :3 , j :4,a+b :8:3) ;
3.một số hàm và thủ tục trình bày màn hình trong pascal: (tham khảo)
Các hàm này trong thư viện CRT.
o ClrScr: xóa tồn bộ màn hình đưa con trỏ về dòng 1
o whereX cho biết con trỏ ở cột nào.
o whereY cho biết con trỏ ở dòng nào.
o Window(x1, y1, x2, y2): thiết lập cửa sổ hoạt động trên màn hình.(free
pascal)
Hồnh độ mới = hồnh độ cũ –x1 +1
Tung độ mới = tung độ cũ –y1 +1
• Bài tập
Trang 14 Lê Tôn Hiệp
Thpt Nguyễn Trãi Tin Học 11
Bài 8: SOẠN THẢO, DỊCH, THỰC HIỆN VÀ HIỆU CHỈNH
CHƯƠNG TRÌNH
1. Một số giao diện của các chương trình dịch2. Màn hình làm việc của Pascal
3. Một số menu thơng dụng: (tham khảo)
a. Menu File
Lê Tôn Hiệp Trang 15
e. Menu Compile
f. Menu Debug
g. Menu Tool
Lê Tôn Hiệp Trang 17
Run:thực hiện chương trình đang soạn thảo
Step over: thực hiện theo từng dòng lệnh
Trace into: thực hiện lần theo vết
Goto Cursor:thực hiện đấn chỗ con trỏ thì dừng lại
Compiler: dịch chương trình trong cửa sổ hoạt động
Make:dịch lại các thư viện mà chương trình sử dụng nếu
có sự thay đổi
Build:dịch lại tất cả các thư viện mà chương trình sử dụng
Out put: mở cửa sổ xem kết quả
User screen: hiện màn hình kết quả
Add watch: thêm cửa sổ theo dõi giá trị biến trong q
trình thực hiện chương trình.
Watches:mở cửa sổ theo dõi giá trị của biến
Breakpoint: tạo điểm dừng.
Calculator:máy tính
Ascii table: bảng ascii
Tin Học 11 Thpt Nguyễn Trãi
h. Menu Options
i. Menu Window
Trang 18 Lê Tôn Hiệp
Tile: xếp các cửa sổ liên nhau theo chiều thẳng đứng.
Cascade: xếp các cửa sổ chồng lên nhau
Close all: đóng tất cả các chương trình
Zoom: phóng to cửa số
Next: chuyển sang cửa sổ tiếp theo
Previous: về cửa số trước đó