BIẾN MẢNG VÀ DÃY SỐCú pháp:TYPE = ARRAY chỉ số OF ; VAR :;hoặc khai báo trực tiếp:VAR : ARRAY chỉ số OF ; Ví dụ: TYPEMangnguyen = Array1..100 of Integer;VARA: Mangnguyen;hoặc:VARA: Array1..100 of Integer; Để truy cập đến phần tử thứ k trong mảng một chiều A, ta sử dụng cú pháp: Ak.Bài tập 5.1: Viết chương trình cho phép nhập n số và in ra theo thứ tự ngược lại. Ví dụ nhập 3, 5, 7 thì in ra 7, 5, 3.Mã chương trình:Program mang_1;uses crt;var n, i: integer; M: array1..100 of real;Begin write(Nhap so n: ); readln(n); for i:=1 to n do Begin write(M,i,=); readln(Mi); end; for i:= n downto 1 do write(mi,’ ,’); readlnend.
Trang 1BÀI TẬP TURBO PASCAL LÀM QUEN VỚI TURBO PASCAL
Bài tập 1.1: Viết chương trình tính chu vi và diện tích của hình chữ nhật có chiều dài hai
Bài tập 1.5: Viết chương trình cho phép tính trung bình cộng của bốn số.
Bài tập 1.6: Viết chương trình cho phép tính trung bình cộng của bốn số với điều kiện chỉ
được sử dụng hai biến
Bài tập 1.7: Viết chương trình cho phép tính trung bình nhân của bốn số với điều kiện chỉ
được sử dụng hai biến
Bài tập 1.8: Viết chương trình nhập hai số, đổi giá trị hai số rồi in ra hai số.
Bài tập 1.9: Giải bài tập 1.8 mà chỉ được sử dụng hai biến (Tức không được dùng thêm
biến tạm)
Bài tập 1.10: Viết chương trình cho biết chữ số hàng trăm, hàng chục, hàng đơn vị của
một số có ba chữ số Ví dụ khi nhập số 357 thì máy in ra:
- Chữ số hàng trăm: 3
- Chữ số hàng chục: 5
- Chữ số hàng đơn vị: 7
CÂU LỆNH ĐIỀU KIỆN
Bài tập 2.1:Viết chương trình in ra số lớn hơn trong hai số được nhập từ bàn phím.
Bài tập 2.2:Viết chương trình in ra số lớn nhất trong bốn số nhập từ bàn phím.
Bài tập 2.3:Viết chương trình in ra số lớn nhất trong bốn số nhập từ bàn phím với điều
kiện chỉ được dùng hai biến
Bài tập 2.4: Viết chương trình xét xem một tam giác có là tam giác đều hay không khi biết
ba cạnh của tam giác
Bài tập 2.5: Viết chương trình xét xem một tam giác có là tam giác cân hay không khi biết
ba cạnh của tam giác
Bài tập 2.6:Viết chương trình xét xem một tam giác có là tam giác vuông hay không khi
biết ba cạnh của tam giác
Bài tập 2.7:Viết chương trình giải phương trình ax + b = 0 Các hệ số a, b được nhập từ
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
Bài tập 2.10: Viết chương trình cho phép tính diện tích các hình: Hình vuông; Hình chữ
nhật; Hình tròn; Tam giác; Hình thang Người dùng chọn hình cần tính diện tích từ bảng chọn, sau đó khai báo các thông số liên quan và nhận được diện tích của hình:
Trang 2LẶP VỚI SỐ LẦN BIẾT TRƯỚC
- Đây là vòng lặp căn bản và được sử dụng nhiều nhất trong kiến thức phổ thông Vòng lặpfor dùng để lặp với số lần định trước, có cấu trúc như sau:
for <biến đếm>:= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
- Dạng khác (giảm dần biến đếm của vòng lặp for):
for <biến đếm>:= <giá trị cuối> downto <giá trị đầu> do <câu lệnh>;
VD:
For i:=1 to 10 do x:=x+1;
For i:=10 downto 1 do x:=x+1;
Bài tập 3.1:Viết chương trình in ra các số chẵn nhỏ hơn hoặc bằng n.Với n được nhập Bài tập 3.2:Viết chương trình in ra các số lẻ nhỏ hơn hoặc bằng n Với n được nhập Sao
cho 15 số lẻ được in trên một dòng
Bài tập 3.3:Viết chương trình in ra tổng các số lẻ nhỏ hơn hoặc bằng n Với n được nhập Bài tập 3.4:Viết chương trình in ra tất cả các ước của một số n.Với n được nhập từ bàn
- Biến S có giá trị ban đầu bằng 0
- Cho i chạy từ 1 đến n-1 nếu i là ước của n thì cộng thêm i vào S
- Nếu S = n thì S là số hoàn chỉnh
Bài tập 3.6:Viết chương trình tìm các số hoàn chỉnh nhỏ hơn n Với n được nhập từ bàn
phím
Hướng dẫn: Cho biến i chạy từ 1 đến n Xét i Nếu nó là số hoàn chỉnh thì in ra.
Bài tập 3.7: In bảng cửu chương n.Với n nhập từ bàn phím
Bài tập 3.8: Lần lượt in các bảng cửu chương.
Bài tập 3.10: Viết chương trình in ra tất cả các số nguyên tố bé hơn hoặc bằng n?
Bài tập 3.11: Một phép chia có tổng của số bị chia và số chia bằng 72 Biết rằng thương là
3 và số dư là 8 Tìm số chia và số bị chia
Bài tập 3.12: Một phép chia có thương bằng 82, số dư là 47 Số bị chia nhỏ hơn 4000 Tìm
số chia
Bài tập 3.13: Có bao nhiêu số tự nhiên có 3 chữ số chia hết cho 3.
Bài tập 3.14: Tính xy Với y là số nguyên (Xét trường hợp: y=0, y<0, y>0)
Bài tập 3.15: Tính A=n1+n2+…+nn
Trang 3Bài tập 3.16: Tôi nghĩ 1 số có 3 chữ số Nếu bớt số đó đi 7 thì được số chia hết cho 7 Nếu
bớt số đó đi 8 thì được số chia hết cho 8 Nếu bớt số đó đi 9 thì được số chia hết cho 9 Tìm số đó
Bài tập 3.17: Một người gửi tiết kiệm với số tiền là a triệu, lãi suất mỗi tháng là k% Hãy
cho biết số tiền người đó rút ra được sau thời gian t tháng Biết rằng lãi suất sau mỗi tháng
sẽ được cộng vào gốc
Bài tập 3.18: Viết chương trình tìm các số Py_Ta_Go nhỏ hơn 32000
Bài tập 3.19: Viết chương trình tính biểu thức:
n
x x
x
Bài tập 3.20: Một cụ già đã hơn 100 tuổi, rất yêu môn toán Khi được phỏng vấn về tuổi
của mình, cụ cho biết: “Nếu thêm ngày sinh của tôi vào tổng các bình phương các chữ số tuổi tôi thì được kết quả là chính tuổi tôi” Tính xem cụ bao nhiêu tuổi và ngày sinh của
cụ
Bài tập 3.21: Tìm các số (Amstrong) có 3 chữ số thỏa mãn: abc=a3+b3+c3
Bài tập 3.22: Hai số tự nhiên M và N được gọi là 2 số bạn bè nếu tổng các ước của M
bằng N và ngược lại tổng các ước của N bằng M (Chú ý: Không tính ước là 1 và chính nó) Tìm các số M và N trong phạm vi <100000 vd: 284 và 220 là số bạn bè.
Bài tập 3.23: Nhập số nguyên dương N Tìm số nguyên k nhỏ nhất thỏa mãn điều kiện
3k>N Đưa ra màn hình số k và giá trị 3k
Bài tập 3.24: Nhập một số nguyên dương n bất kỳ và kiểm tra xem n có phải là số chính
phương không
Bài tập 3.25: Số siêu nguyên tố là số nguyên tố mà khi bỏ một số tuỳ ý các chữ số bên
phải của nó thì phần còn lại vẫn tạo thành một số nguyên tố
Ví dụ 7331 là một số siêu nguyên tố có 4 chữ số vì 733, 73, 7 cũng là các số nguyên tố.Nhiệm vụ của bạn là viết chương trình nhập dữ liệu vào là một số nguyên N (0< N <10) vàđưa ra kết quả là một số siêu nguyên tố có N chữ số cùng số lượng của chúng
Ví dụ khi chạy chương trình:
Nhap so N: 4
Cac so sieu nguyen to có 4 chu so la: 2333 2339 2393 2399 2939 3119 3137
3733 3739 3793 3797 5939 7193 7331 7333 7393
Tat ca co 16 so
Trang 4LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
1 Vòng lặp while
- Cú pháp: while <điều kiện> do <câu lệnh>;
- Câu lệnh sẽ được lặp lại nhiều lần cho đến khi nào điều kiện còn đúng (nếu điều kiện sai thì các lệnh này sẽ không thực hiện nữa) Đối với lệnh này điều kiện sẽ được kiểm tra trước khi thực hiện lệnh nên nên điều kiện sai thì không có lệnh nào được thực hiện
until <điều kiện>;
- Câu lệnh giữa repeat và until sẽ được lặp lại nhiều lần khi nào điều kiện sai, nếu điều kiện đúng thì ngưng (ngược với vòng lặp while) Đối với lệnh này điều kiện sẽ được kiểm tra sau khi thực hiện các lệnh giữa repeat và until nên ít nhất các lệnh sẽ được thực hiện trước 1 lần rồi mới kiểm tra điều kiện đúng hay sai (nếu sai thì thực hiện tiếp vòng lặp, đúng thì ngưng)
- Sử dụng kiến thức số lẻ đầu tiên bằng 1 Số lẻ sau bằng số trước cộng với 2
- Cho biến i có giá trị ban đầu bằng 1
- Dùng vòng lặp while do với điều kiện i < n và công việc bên trong là in i và tăng ilên 2
Nhận xét:
Trang 5- Mọi vòng lặp For to do đều có thể thay thế bằng vòng lặp while do.
- Trong vòng lặp while nhất thiết phải có một câu lệnh làm thay đổi điều kiện lặp Ởđây là i:=i+2 Nếu không có sẽ dẫn đến trường hợp lặp vô hạn Chương trình chạy mãi mà không có lối ra (Không thoát ra khỏi vòng lặp được)
Bài tập 4.2: Viết chương trình tính n! với n! được định nghĩa như sau:
- n! = 1 với n = 0
- n! = 1.2.3 n (Tích của n số từ 1 đến n)
Yêu cầu: Sử dụng vòng lặp với số lần chưa biết trước:
Bài tập 4.3: Viết chương trình tính n! với n! được định nghĩa như sau:
- n!! = 1 với n = 0
- n!! = 1.3.5 n với n lẻ
- n!! = 2.4.6 n với n chẵn
Yêu cầu: Sử dụng vòng lặp với số lần chưa biết trước:
Bài tập 4.4: Viết chương trình cho phép tính tổng của nhiều số (Chưa biết bao nhiêu số)
Nhập số 0 để kết thúc quá trình nhập
Bài tập 4.5: Viết chương trình tìm ước chung lớn nhất (UCLN) của hai số với yêu cầu sử
dụng thuật toán Euclid
Thuật toán Euclid: Nếu a chia hết cho b (a chia b dư 0) thì UCLN(a,b) bằng b
Nếu a chia b dư r thì UCLN(a,b) = UCLN(b,r)
Bài tập 4.6: Dãy Fibonacy có hai phần tử đầu là 1, 1 Các phần tử sau bằng tổng hai phần
tử đứng ngay trước nó: 1, 1, 2, 3, 5, 8, 13, 21,
Viết chương trình in ra dãy Fibonacy có phần tử lớn nhất nhỏ hơn n?
Bài tập 4.7: Viết chương trình nhập vào số nguyên dương N, in ra ước số lớn nhất của số
bằng tích của chúng VD: a+b+c = a*b*c
Bài tập 4.11: Viết chương trình nhập vào một 1 số nguyên , kiểm tra xem số nguyên đó
có phải là số đối xứng không?
VD: 12321 là số đối xứng
Bài tập 4.12: Viết chương trình tìm và in ra màn hình tất cả hoán vị của 12345
Bài tập 4.13: Số nguyên n được gọi là số may mắn nếu tổng các chữ số ở vị trí chẵn bằng
tổng các chữ số ở vị trí lẻ Viết chương trình kiểm tra xem n có là số may mắn không VD
1353 là số may mắn
Bài tập 4.14: Một số nguyên dương được gọi là số đẹp nếu tổng các chữ số của nó (trong
hệ thập phân) chia hết cho số chữ số Ví dụ, 15 là một số đẹp vì 1+5 chia hết cho 2
Yêu cầu: Cho số nguyên dương n(n<=10^6) Hãy tìm số đẹp thứ n
Dữ liệu: nhập từ bàn phím nguyên dương
Trang 6BIẾN MẢNG VÀ DÃY SỐ
Cú pháp:
TYPE<Kiểu mảng> = ARRAY [chỉ số] OF <Kiểu dữ liệu>;
VAR <Biến mảng>:<Kiểu mảng>;
hoặc khai báo trực tiếp:
VAR <Biến mảng> : ARRAY [chỉ số] OF <Kiểu dữ liệu>;
Ví dụ:
TYPE Mangnguyen = Array[1 100] of Integer;
hoặc:
VAR A: Array[1 100] of Integer;
- Để truy cập đến phần tử thứ k trong mảng một chiều A, ta sử dụng cú pháp: A[k]
Bài tập 5.1: Viết chương trình cho phép nhập n số và in ra theo thứ tự ngược lại Ví dụ
Trang 7Bài tập 5.3: Viết chương trình nhập n số, xoá số thứ k trong n số vừa nhập In ra n-1 số
Bài tập 5.4: Viết chương trình cho phép nhập nhập một dãy gồm n số nguyên Nhập thêm
một số và chèn thêm vào dãy sau phần tử k
Bài tập 5.5: Viết chương trình cho phép nhập n số và cho biết số nhỏ nhất trong các số
vừa nhập là số thứ mấy
Bài tập 5.6: Viết chương trình cho phép nhập n số sắp xếp và in ra các số đã nhập theo thứ
tự tăng dần
Bài tập 5.7: Viết chương trình in dãy n số fibonacy.
Dãy Fibonacci là dãy vô hạn các số tự nhiên bắt đầu bằng hai phần tử 0 và 1 hoặc 1 và 1, các
phần tử sau đó được thiết lập theo quy tắc mỗi phần tử luôn bằng tổng hai phần tử trước nó
A1=1; a2=1; a3=a1+a2; a4=a2+a3;…
Bài tập 5.8: Viết chương trình nhập vào một mảng A gồm N số nguyên và nhập thêm một
số nguyên X Kiểm tra xem x có thuộc mảng A không?
Bài tập 5.9: Nhập vào mảng A có n phần tử Tìm phần tử xuất hiện nhiều nhất trong mảng Bài tập 5.10: Nhập vào mảng A có n phần tử Hãy xóa các phần tử trùng nhau trong mảng
và in kết quả ra màn hình
Bài tập 5.11: Viết chương trình kiểm tra số chính phương trong mảng N phần tử In các
số đó ra màn hình và chỉ số của nó
Bài tập 5.12: Nhập vào mảng A có n phần tử sắp xếp các số chẵn chia hết cho 3 lên đầu,
sắp xếp các số lẻ chia hết cho 3 xuống cuối dãy và các số còn lại ở giữa in ra màn hình dãy trước và sau khi sắp xếp
Bài tập 5.13: Nhập vào số N (0<n<10) và n phần tử dãy A (1<a[i]<100) Có kiểm tra dữ
liệu khi nhập In ra phần tử là số nguyên tố
Bài tập 5.14: Viết chương trình nhập vào 2 mảng số nguyên A, B đại diện cho 2 tập hợp(không thể có 2 phần tử trùng nhau trong một tập hợp) Trong quá trình nhập, phải kiểmtra: nếu phần tử vừa nhập vào đã có trong mảng thì không bổ sung vào mảng In ra mànhình các phần tử là giao của 2 tập hợp A, B
Bài tập 5.15: Nhập vào một mảng các số nguyên
a/ Xếp lại mảng đó theo thứ tự giảm dần
b/ Nhập vào một số nguyên từ bàn phím Chèn số đó vào mảng sao cho mảng vẫn
có thứ tự giảm dần (không được xếp lại mảng)
Bài tập 5.16: Viết chương trình chuyển đổi số tự nhiên N cho trước sang hệ cơ số 2
Bài tập 5.17: Viết chương trình nhập vào một dãy số nguyên có n phần tử.
a Đưa những phần tử lẻ ra đầu danh sách, những phần tử chẵn về cuối danh sách và in kết quả ra màn hình
b Sắp xếp các phần tử lẻ đầu danh sách theo thứ tứ tăng dần, sắp xếp các phần tử chẵn cuối danh sách theo thứ tự giảm dần In danh sách ra màn hình
Bài tập 5.18: Nhập một số A có n chữ số Tạo ra số B lớn nhất trong n chữ số của A
VD: A =657546565 => B=766655554
Trang 8CHƯƠNG TRÌNH CON
I KHÁI NIỆM VỀ CHƯƠNG TRÌNH CON
- Chương trình con (CTC) là một đoạn chương trình thực hiện trọn vẹn hay một chức năngnào đó Trong Turbo Pascal, có 2 dạng CTC:
- Thủ tục (PROCEDURE): Dùng để thực hiện một hay nhiều nhiệm vụ nào đó
- Hàm (FUNCTION): Trả về một giá trị nào đó (có kiểu vô hướng, kiểu string) Hàm cóthể sử dụng trong các biểu thức
- Ngoài ra, trong Pascal còn cho phép các CTC lồng vào nhau
1 Biến toàn cục (global variable): Còn được gọi là biến chung, là biến được khai báo ở
đầu chương trình, nó được sử dụng bên trong chương trình chính và cả bên trong chương trình con Biến toàn cục sẽ tồn tại trong suốt quá trình thực hiện chương trình
· 2 Biến cục bộ (local variable): Còn được gọi là biến riêng, là biến được khai báo ở đầu
chương trình con, và nó chỉ được sử dụng bên trong thân chương trình con hoặc bên trong thân chương trình con khác nằm bên trong nó (các chương trình con lồng nhau) Biến cục
bộ chỉ tồn tại khi chương trình con đang hoạt động, nghĩa là biến cục bộ sẽ được cấp phát
bộ nhớ khi chương trình con được gọi để thi hành, và nó sẽ được giải phóng ngay sau khi chương trình con kết thúc
· 3 Tham số thực (actual parameter) là một tham số mà nó có thể là một biến toàn cục,
một biểu thức hoặc một giá trị số (cũng có thể biến cục bộ khi sử dụng chương trình con lồng nhau) mà ta dùng chúng khi truyền giá trị cho các tham số hình thức tương ứng của chương trình con
· 4 Tham số hình thức (formal parameter) là các biến được khai báo ngay sau Tên chương trình con, nó dùng để nhận giá trị của các tham số thực truyền đến Tham số hình
thức cũng là một biến cục bộ, ta có thể xem nó như là các đối số của hàm toán học
II LỜI GỌI CHƯƠNG TRÌNH CON
Để chương rrình con được thi hành, ta phải có lời gọi đến chương trình con, lời gọi chươngtrình con thông qua tên chương trình con và danh sách các tham số tương ứng (nếu có) Các qui tắc của lời gọi chương trình con:
· Trong thân chương trình chính hoặc thân chương trình con, ta chỉ có thể gọi tới các chương trình con trực thuộc nó.
· Trong chương trình con, ta có thể gọi các chương trình con ngang cấp đã được thiết lập
trước đó
1 Thủ tục (Procedure):
Thủ tục là một đoạn cấu trúc chương trình được chứa bên trong chương trình Pascal như làmột chương trình con Thủ tục được đặt tên và có thể chứa danh sách tham số hình thức
(formal parameters) Các tham số này phải được đặt trong dấu ngoặc đơn ( ) Ta có thể
truy xuất thủ tục bằng cách gọi tên của thủ tục Chương trình sẽ tự động truy xuất thủ tục
đúng tên đã gọi và thực hiện các lệnh chứa trong thủ tục đó Sau khi thực hiện thủ tục
xong, chương trình sẽ trở lại ngay lập tức sau vị trí câu lệnh gọi thủ tục đó.
Trang 9if a > b then max := a else max := b ;
if c > max then max := c ;
Writeln ( ‘ So lon nhat la ‘, max ) ;
b Cấu trúc của thủ tục có tham số
Khi viết một thủ tục, nếu có các tham số cần thiết, ta phải khai báo nó (kiểu, số lượng, tính
chất, ) Các tham số này gọi là tham số hình thức (formal parameters) Một thủ tục có thể
có 1 hoặc nhiều tham số hình thức Khi các tham số hình thức có cùng một kiểu thì ta viết chúng cách nhau bởi dấu phẩy (,) Trường hợp các kiểu của chúng khác nhau hoặc giữa khai báo tham số truyền bằng tham biến và truyền bằng tham trị (sẽ học ở phần sau ) thì ta phải viết cách nhau bằng dấu chấm phẩy (;)
Ví dụ : Tính giai thừa của một số
Program Tinh_Giai_thua ;
Var n : integer ; gt : real ;
Procedure giaithua (m : integer );
Trang 10Else Writeln( ‘ khong tinh duoc giai thua!‘ ) ;
Readln;
END.
Trong chương trình trên m là các tham số hình thức của thủ tục giaithua Khi gọi thủ tục
giaithua(n) thì tham số thực n được truyền tương ứng cho tham số hình thức m
2 Hàm (Function) :
Hàm là một chương trình con cho ta 1 giá trị kiểu vô hướng Hàm tương tự như thủ tục
nhưng trả về một giá trị thông qua tên hàm và lời gọi hàm tham gia trong biểu thức.
- Tên hàm là tên tự đặt cần tuân thủ theo nguyên tắc đặt tên trong Pascal.
- Kiểu kết quả là một kiểu vô hướng, biểu diễn kết quả giá trị của hàm.
- Một hàm có thể có 1 hay nhiều tham số hình thức, khi có nhiều tham số hình thức cùng một kiểu giá trị thì ta có thể viết chúng cách nhau bằng dấu phẩy (,) Trường hợp các tham
số hình thức khác kiểu thì ta viết chúng cách nhau bằng dấu chấm phẩy (;)
- Trong hàm có thể sử dụng các hằng, kiểu, biến đã được khai báo trong chương trình chính nhưng ta có thể khai báo thêm các hằng, kiểu, biến dùng riêng trong nội bộ hàm
Chú ý là phải có một biến trung gian có cùng kiểu kết quả của hàm để lưu kết quả của hàm
trong quá trình tính toán để cuối cùng ta có 1 lệnh gán giá trị của biến trung gian cho tên hàm
Ví dụ : FUNCTION TINH (x, y : integer ; z : real ) : real ;
Đây là một hàm số có tên là TINH với 3 tham số hình thức x, y, z Kiểu của x và y là kiểu
số nguyên integer còn kiểu của z là kiểu số thực real Hàm TINH sẽ cho kết quả kiểu số thực real
Ví dụ : Bài toán tính giai thừa.
Write (‘ Nhap vao so nguyen duong x = ‘ ); Readln (x) ;
Writeln (‘ Voi x = ‘, x , ‘ thi giai thua se la : x ! = ‘, gt(x))
Trang 11Ví dụ : Procedure Xuat1(hoten : string[25]);
Procedure Xuat2(mang: array[1 10] of integer);
Hai chương trình con Xuat1 và Xuat2 đều bị lỗi ở phần khai báo kiểu dữ liệu cho hai tham
số hình thức là hoten và mang Để khắc phục lỗi này, ta sẽ khai báo gián tiếp một kiểu dữ liệu str25 và M10 thông qua từ khóa TYPE như sau:
TYPE
Str25=string[25]; {Str25 là một kiểu chuỗi có độ dài 25}
M10=Array[1 10] of integer; {M10 là một kiểu dữ kiệu mảng có 10 phần tử nguyên}Tiếp đến, dùng 2 kiểu dữ liệu mới định nghĩa Str25 và M10 để định kiểu cho các tham số hình thức hoten và mang như sau:
Procedure Xuat1(hoten : Str25);
Procedure Xuat2(mang: M10);
III TRUYỀN THAM SỐ CHO CHƯƠNG TRÌNH CON
Khi truyền tham số trong Pascal, đòi hỏi phải có sự tương ứng về tên của kiểu dữ liệu của các tham số hình thức và tham số thực Một số định nghĩa và qui tắc về truyền tham số trong Pascal:
Những tham số hình thức nằm sau từ khóa VAR gọi là tham số biến (variable parameter)
Với tham số biến, các tham số thực bắt buộc phải là biến chứ không được là giá trị Khi
giá trị của tham số biến thay đổi thì nó sẽ làm thay đổi giá trị của tham số thực tương ứng
và khi ra khỏi chương trình con đó, tham số thực vẫn giữ giá trị đã được thay đổi đó
Những tham số hình thức không đứng sau từ khóa VAR gọi là tham số trị (value
parameter), khi đó các tham số thực có thể là một biến, một biểu thức, một hằng, hoặc một giá trị số Các tham số trị nhận giá trị từ tham số thực khi truyền như là giá trị ban đầu, khi
giá trị của tham số trị thay đổi thì nó sẽ không làm thay đổi giá trị của tham số thực, nghĩa
là giá trị của tham số thực sau khi thoát khỏi chương trình con vẫn luôn bằng với giá trị
của tham số thực trước khi truyền đến chương trình con đó Do vậy một tham trị không ao giờ là kết quả tính toán của chương trình con.
Ví dụ: Viết chương trình tính lập phương.
PROGRAM Parameter1;
VAR num: integer; {num là biến toàn cục}
PROCEDURE LapPhuong(var a:integer); {a là một tham số biến}
VAR a, b : integer ; {biến toàn cục }
PROCEDURE thamso (x : integer ; VAR y : integer ) ;
{ x: là tham số trị , còn y là tham số biến}