Tải bản đầy đủ (.pdf) (11 trang)

Ngôn ngữ lập trình pascal 7 chương trình con hàm và thủ tục

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (379.81 KB, 11 trang )

11/7/2016

Ngôn ngữ lập trình Pascal - 7.Chương trình con: Hàm và thủ tục. | Ksec Club
Đăng Nhập hoặc Đăng Ký

Thành viên

Diễn đàn
Tìm trong diễn đàn

Diễn đàn

Recent Posts

Lập Trình

Pascal

Ngôn ngữ lập trình Pascal - 7.Chương trình con: Hàm và thủ tục.
Thảo luận trong 'Pascal' bắt đầu bởi koolkiizz, 31/1/14.

koolkiizz

4

Moderator

Like

60


Ngôn ngữ lập trình Pascal - 7.Chương trình con: Hàm và thủ tục.
(Lượt xem: 9,795)

Chào mừng đến với loạt bài hướng dẫn lập trình Pascal cơ bản của ksec.info. Chúng ta đã lần lượt tìm hiểu các cấu trúc của Pascal như
cấu trúc rẽ nhánh, cấu trúc lặp, hôm nay, chúng ta sẽ tìm hiểu một cấu trúc khác, đó là chương trình con. Để biết nó ra sao, mời các bạn
đọc bài viết dưới đây.

I – Khái niệm
1. Khái niệm về chương trình con:
Turbo Pascal là ngôn ngữ có cấu trúc cao. Do đó, một chương trình lớn có thể chia thành nhiều chương trình con với hai mục đích :
a) Dễ kiểm tra, dề điều khiển từng phần của chương trình.
b) Tránh lặp đi lặp lại những đoạn chương trình dùng nhiều lần. Điều này vừa gây mất thời gian cho người lập trình vừa làm cho chương
trình thêm lôi thôi, mất thẩm mĩ.

2. Thủ tục và hàm:
Trong Pascal có hai loại chương trình con :

_ Procedure ( thủ tục )
_ Function ( hàm )

Sự khác nhau cơ bản và duy nhất của hai loại chương trình con này là :Functiontrả lại cho một giá trị kết quả vô hướng thông qua tên
củaFunctionvà do đó nó được sử dụng trong một biểu thức. CònProcedurekhông trả lại kết quả thông qua tên của nó nên
cácProcedurekhông thể viết trong các biểu thức.

3. Cấu trúc của Procedure và Function:

Code:

o/threads/ngon-ngu-lap-trinh-pascal-7-chuong-trinh-con-ham-va-thu-tuc.34/


1/11


11/7/2016

Ngôn ngữ lập trình Pascal - 7.Chương trình con: Hàm và thủ tục. | Ksec Club

Procedure Ten_thu_tuc ( Khai báo các tham số hình thức ) ;
(* Khai báo : Label, Const, Type, Var, hoặc các Procedure và Function *) ;
Begin
... (* Thân chương trình con *)
End ;
Function Ten_ham ( khai báo các tham số hình thức ) : kieu_du_lieu_cua_ham ;
(* Khai báo : Label, Const, Type, Var, hoặc các Procedure và Function *) ;
Begin
... (* Thân chương trình con *)
End ;

Thân của chương trình con được đặt giữa hai chữ Begin và End với End kết thúc bằng dấu chấm phẩy (
(.) như của chương trình chính.

chứ không phải dấu chấm

4. Ví dụ về thủ tục và hàm:

Code:

Program Vidu ;
Uses Crt ; (* Crt là một Unit chứa các chương trình con về màn hình, bàn hình... *)
Var A, B, C, D : Integer ;

Z : Real ;
(* ---------------------------------------------------------------------- *)
Procedure Tieu_de ;
Begin
Writeln (' **************************************** ') ;
Writeln (' * MINH HOA CHUONG TRINH CON * ') ;
Writeln (' **************************************** ') ;
End ;
(* ------------------------------------------------------------------- *)
Procedure Enter (Var X, Y : Integer ) ;
Var OK : Char ;
Begin
Repeat
Write (' Tu so = ') ; Readln (X) ;

Chương trình này sẽ đọc từng cặp số nguyên A, B và C, D, sau đó đọc tỉ số của 2 số đó qua Function Chia và cuối cùng là tính tích của
2 tỉ số đó rồi báo ra kết quả. Như vậy, nhìn vào thân chương trình chính ta thấy công việc được hình dung ra một cách rất sáng sủa.
Đầu tiên, chương trình con (CTC) Tieu_de có nhiệm vụ in ra vài dòng tiêu đề, CTC này không cần tham số.
Procedure Entercó nhiệm vụ là vào dữ liệu X, Y, là hai tham số hình thức, cũng đồng thời là kết quả của Procedure. Hai tham số này
sẽ được thay thế bằng hai tham số thực sự được khai báo ở chương trình chính là A và B khi ta gọi Procedure bằng câu lệnhEnter (A,
B), tức là A sẽ tương ứng với X và B sẽ tương ứng với Y. Lời gọi Enter (A, B)được hiểu là đọc vào hai tham số A và B. Tương tự như
vậy, lần gọi thứ haiEnter (C, D)sẽ đọc hai giá trị của hai tham số thực sự là C và D.
o/threads/ngon-ngu-lap-trinh-pascal-7-chuong-trinh-con-ham-va-thu-tuc.34/

2/11


11/7/2016

Ngôn ngữ lập trình Pascal - 7.Chương trình con: Hàm và thủ tục. | Ksec Club


Trong CTC, ta cũng có thể có phần khai báo riêng của nó. Trong ví dụ trên, biến OK là biến riêng hay còn thường được gọi là biến địa
phương củaProcedure Enterđể phân biệt với các biến toàn cục được mô tả ở chương trình chính là A, B, Z...
Function Chiacó hai tham số hình thức là X và Y. Ta có thể viết lời gọi Function trong biểu thức như việc tính Z ở ví dụ trên. Lời gọi của
Procedure không làm đươc như vậy vì tên của Procedure không có giá trị. Khi khai báo Function, ta còn phải khai báo thêm kiểu dữ liệu
của Function. Trong ví dụ trên,Function Chiacó kiểu là Real, đó cũng là sự khác nhau giữa hai loại CTC.

Giả sử, để tính giá trị của Z = (A / B) / (C / D), ta có thể viết :

Code:

Z := Chia (Chia(A, B), Chia(C, D)) ;

II – Chuyển tham số cho chương trình con
Chương trình con có thể được khai báo mà không dùng tham số khi các CTC tính toán trực tiếp với các biến toàn cục hoặc CTC
không dùng đến bất cứ biến hay hằng nào như thủ tục Tieu_de mà ta đã xét ở bài trước.
Việc chuyển tham số cho CTC là một cơ cấu thay thế tương ứng, nó cho phép một quá trình được lặp đi lặp lại nhiều lần với các "toán
hạng" khác nhau. Thí dụ Enter (A, B) sẽ thay thế A vào vị trí của X, B vào vị trí của Y. Tương tự với Enter (C, D).
Chuyển tham số bằng biến : tham số hình thức trong phần tiêu đề của CTC sẽ được đặt sau từ khóaVar. Với tham biến, các tham số
thực sự sẽ phải là biến chứ không được là giá trị. Thí dụ lời gọi Enter (3, 7) sẽ không được chấp nhận vì 3 và 7 là hai giá trị chứ không
phải là biến. Các tham số thực sự là các tham biến có thể được thay đổi trong CTC và khi ra khỏi CTC nó vẫn giữ các giá trị đã thay
đổi đó. Khi khai báo các tham số mà không có từ khóa Var trong một nhóm tham số hình thức thì các tham số của nhóm này là các
tham số giá trị (tham trị). Khi đó các tham số thực sự phải là một biểu thức. Tham số hình thức tương ứng sẽ được coi như một biến
địa phương của CTC, nó nhận giá trị của tham số thực như là giá trị ban đầu ở vào thời điểm thay vào CTC. Chương trình con sau đó
có thể thay đổi giá trị của các tham trị này ở bên trong CTC bằng các phép gán. Song trong mọi trường hợp điều đó không làm thay đổi
giá trị của tham số thực. Do vậy, một tham trị không bao giờ là kết quả tính toán của CTC.

Sự khác nhau giữa hai loại tham số này được minh họa bằng ví dụ sau :

Code:


o/threads/ngon-ngu-lap-trinh-pascal-7-chuong-trinh-con-ham-va-thu-tuc.34/

3/11


11/7/2016

Ngôn ngữ lập trình Pascal - 7.Chương trình con: Hàm và thủ tục. | Ksec Club

Program Tham_so ;
Var A, B : Integer ;
(* ----------------------------------------------------------- *)
Procedure Thidu_Thamso (X : Integer ; Var Y : Integer) ;
Begin
X := X + 1 ;
Y := Y + 1 ;
Writeln (X : 6, Y : 6) ;
End ;
(* ----------------------------------------------------------- *)
BEGIN
A := 0 ;
B := 3 ;
Thidu_Thamso (A, B) ;
Writeln (A : 6, B : 6) ;
END.

Kết quả cho ra :

14

04

Trong thí dụ trên, thủ tục Thidu_Thamso có hai loại tham số :tham trị Xvàtham biến Y. Trước khi gọi thủ tục này với hai tham số thực
sự là A và B tương ứng thì A = 0 và B = 3. Trong thủ tục ta có hai lệnh làm thay đổi giá trị của A và B bằng cách tăng thêm 1. Lệnh
Writeln (X, Y)cho ra kết quả là 1 và 4 tương ứng. Tuy nhiên sau khi ra khỏi CTC, lệnh Writeln (X, Y) báo cho ta giá trị của B đã bị thay
đổi trong CTC vì B là tham biến, còn A vẫn giữ nguyên giá trị trước khi gọi thủ tục, tức A vẫn bằng 0, vì A chỉ là tham trị.
Như vậy, khi chuyển một tham số cho CTC, nếu ta muốn bảo vệ giá trị của tham số đó khỏi bị CTC "vô tình phá" thì tham số đó phải
được dùng như là tham trị. Còn một tham số nếu muốn dùng để lấy kết quả do CTC đem lại thì tham số đó phải là tham biến.
III – Biến toàn cục và biến địa phương
Xét ví dụ sau đây :

Code:

o/threads/ngon-ngu-lap-trinh-pascal-7-chuong-trinh-con-ham-va-thu-tuc.34/

4/11


11/7/2016

Ngôn ngữ lập trình Pascal - 7.Chương trình con: Hàm và thủ tục. | Ksec Club
PROGRAM VI_DU
VAR
X : Integer ;
(* ----------------------------------------- *)
Procedure A ;
Var Y : Integer ;
Procedure AA ;
Var M,N : Integer ;
Begin


End ;
Procedure AB ;
Var M,N : Integer ;
Begin
...
End ;
Begin

Như ta đã biết, các biến được khai báo trong chương trình chính được gọi là biến toàn cục. Các biến này có thể được dùng ở mọi
nơi trong chương trình. Các biến được khai báo trong một CTC được gọi là các biến địa phương và nó chỉ có tác dụng trong
phạm vi CTC đó hay trong Bloc đó. Khi CTC kết thúc thì các biến này cũng mất tác dụng theo. Để diễn tả tầm tác dụng của các
biến, của các khai báo, người ta đưa ra khái niệm mức : chương trình chính có mức 0, các chương trình tiếp theo có mức là 1,2,
… tùy theo vị trí khai báo. Trong hình 2, chương trình con A và B có mức là 1, chương trình con AA, AB, BA có mức là 2.

Sau đây là một số quy tắc sử dụng :
+ Tầm tác dụng của 1 tên (biến, hằng, kiểu…) được xác định bằng mức Bloc trong đó tên được khai báo và bằng các mức Bloc
khác có mức cao hơn và nằm trong Bloc chứa khai báo.
Trong ví dụ vừa rồi, biến Y được khai báo trong CTC A (có mức là 1). Như vậy biến Y có thể được sử dụng ở trong CTC AA và AB
(là 2 CTC có mức cao hơn và nằm trong CTC A). Ngoài ra Y không thể sử dụng ở CTC B, BA, BB vì chúng không phải là CTC
của A.
+ Tầm quan trọng của các biến khai báo ở mức 0 (chương trình chính)là toàn bộ chương trình.
+ Ở các mức khác nhau của các CTC, ta có thể khai báo 1 biến có cùng tên với biến ở mức khác. Tên biến này không phải là một
biến duy nhất mà là hai biến khác nhau với tầm quan trọng khác nhau. Ví dụ trong hình 2, CTC B có biến địa phương X và trong
chương trình chính có biến toàn cụa cũng có là X. Khi đó trong CTc thì biến X địa phương có tác dụng, còn khi CTC kết thúc thì
biến toàn cục lại lấy lại tác dụng của nó. Hãy xét ví dụ cụ thể như sau :
Code:

o/threads/ngon-ngu-lap-trinh-pascal-7-chuong-trinh-con-ham-va-thu-tuc.34/


5/11


11/7/2016

Ngôn ngữ lập trình Pascal - 7.Chương trình con: Hàm và thủ tục. | Ksec Club
Program Tam_Tac_Dung) ;
Var I : Integer ; (* Biến I toàn cục *)
(* ------------------------------------------------- *)
Procedure Dia_Phuong ;
Var I : Integer ; (* Biến I địa phương *)
Begin
I := 7 ;
Writeln (I : 6) ;
End ;
(* ------------------------------------------------ *)
BEGIN
I :=5 ;
Writeln(I : 6) ;
Dia_Phuong ;
Writeln(I : 6) ;
END.

Kết quả cho ra :

5 (* giá trị của I toàn cục *)
7 (* giá trị của I địa phương *)
5 (* giá trị của I toàn cục *)

Tên biến I được dùng cho cả biến toàn cục và biến địa phương. Đầu tiên biến I toàn cục nhận giá trị bằng 5. Sau đó thủ

tụcDia_Phuongđược gọi, vì thủ tục này cũng có biến là I (biến địa phương) nên biến I toàn cục được xem như tạm bị treo không
dùng đến. Biến địa phương lấy giá trị bằng 7. Sau khi kết thúc chương trình con, biến I địa phương bị mất và biến I toàn cục lại
được khôi phục lại tác dụng. Tất nhiên nó vẫn giữ giá trị bằng 5 là giá trị có được trước khi gọi thủ tụcDia_phuong.
Trong trường hợp trong thủ tụcDia_phuong, ta muốn chiếu đến biến I toàn cục, ta vẫn có thể dùng nó bằng cách chỉ rõ tên
chương trình ngoài tên biến :Tam_tac_dung.i. Cách tham chiếu như trên cũng tương tự như khi ta chỉ ra đường dẫn trực tiếp trên
DOS.
IV – Tính đệ quy của chương trình con
TrongProcedurevàFunctioncó thể có lời gọi của chính nó. Tính chất này dược gọi là tính đệ qui.
Thí dụ tính giai thừa qua định nghĩa :

N! = 1 x 2 x... x ( N - 1 ) x N

hoặc định nghĩa :
N! = 1 khi N = 0
hoặc
N! = N x ( N - 1 )! khi N >= 1

Khi đó, hàmGiai_thuađược định nghĩa như sau :
o/threads/ngon-ngu-lap-trinh-pascal-7-chuong-trinh-con-ham-va-thu-tuc.34/

6/11


11/7/2016

Ngôn ngữ lập trình Pascal - 7.Chương trình con: Hàm và thủ tục. | Ksec Club

Function Giai_thua( N : Integer ) : Integer ;

Code:


Begin
If N = 0 Then Giai_thua := 1 ;
Else Giai_thua := N * Giai_thua( N-1 ) ;
End ;

Một điều cần lưu ý là ta phải hết sức thận trọng lường trước việc kết thúc của quá trình đệ qui này. Trong thí dụ trên, lệnh gán :

Code:

K := Giai_thua( -1 ) ;

sẽ khởi động một quá tình đệ qui rất dài về mặt lý thuyết vì tham số âm bị xử lý sai.

Ở thí dụ trên, ta đã khai báo giai_thua là Integer nên sẽ bị một hạn chế : chỉ có thể tính với N < 8 vì nếu N >= 8,Giai_thuasẽ mang
giá trị lớn hơn 32767 là giới hạn trên của số nguyên. Một trong các biện pháp khắc phục là ta khai báoGiai_thualà Real.
Code:

Function Giai_thua( N : Integer ) : Real ;

Khi sử dụngGiai_thualà Real, ta phải chú ý sử lý thêm một ít. Ví dụ, để viết giá trị củaGiai_thualà số thực sang số nguyên, ta phải
sử dụng cách viết có quy cách với phần thập phân bị cắt :
Code:

Writeln ( Giai_thua(12) : 0 : 0 ) ;

Thí dụ tính giai thừa ở trên về phương diện ví dụ nó rất đơn giản và dể hiểu. Song về phương diện kĩ thuật lập trình thì đấy là một thí
dụ không đẹp lắm vì người ta có thể tính giai thừa một cách tiết kiệm hơn bằng chương trình sau khi sử dụng lệnh lặp While :
Code:


o/threads/ngon-ngu-lap-trinh-pascal-7-chuong-trinh-con-ham-va-thu-tuc.34/

7/11


11/7/2016

Ngôn ngữ lập trình Pascal - 7.Chương trình con: Hàm và thủ tục. | Ksec Club
Function Giai_thua( N : Integer ) : Integer ;
Var I, K :Integer ;
Begin
I := 0 ;
K := 1 ; (* Phải dùng biến địa phươn K để chứa kết quả trung gia *)
While I < N Do
Begin
I := I + 1 ;
K := K * I ;
End ;
Giai_thua := K ; (* Gán kết quả từ biến trung gian K vào tên hàm*)
End ;

Trong cách dùng sau, ta chỉ mất hai ô nhớ địa phương tương ứng với hai biến I và K. Còn trong cách dùng trước, mỗi lần
dùngGiai_thua(N), máy lại phải bố trí thêm một ô nhớ chứa kết quảGiai_thuatrung gian.
Nói chung nên tránh dùng đệ qui khi mà ta có thể dùng phép lặp để tính toán.
V – Forward (Tham khảo trước)
Các CTC còn có thể được gọi ra trước khi có định nghĩa chúng nếu như trước đó có lời khai báo kiểuForward. Cách thức viết được
thể hiện qua ví dụ dưới đây. Lưu ý là danh sách các tham số hình thức cần liệt kê ra trong lời khai báo trước (Forward) còn trong lời
khai báo chi tiết thì không có.

Code:


Program Vi_du_Forward ;
Var Alpha : Integer ;
(* Khai báo trước Procedure Test2 với từ Forward *)
Procedure Test2 ( Var A : Integer ) ; Forward ;
(* -------------------------------------------------------- *)
Procedure Test1 ( Var A : Integer ) ;
Begin
A := A - 1 ;
(* Dùng Test2 trước khi khai báo chi tiết *)
If A > 0 Then Test2(A) ;
End ;
(* -------------------------------------------------------- *)
Procedure Test2 ;
Begin
A := A Div 2 ;
If A > 0 Then Test1(A) ;
End ;

Ta thấy thủ tụcTest1dùng thủ tụcTest2, còn thủ tụcTest2lại dùng thủ tụcTest1. Do đó ta thấy ngay trong trường hợp này không thể
định nghĩa thủ tụcTest1vàTest2một cách bình thường được mà phải dùng đếnForward.
VI – Đơn vị chương trình
o/threads/ngon-ngu-lap-trinh-pascal-7-chuong-trinh-con-ham-va-thu-tuc.34/

8/11


11/7/2016

Ngôn ngữ lập trình Pascal - 7.Chương trình con: Hàm và thủ tục. | Ksec Club


1. Unit:
Trong Pascal, người ta đã chia nhỏ thư viện CTC thành các thư viện nhỏ hơn, mỗi thư viện nhỏ đó được gọi là mộtUnit(đơn vị chương
trình) như :

CRT là Unit chứa các CTC xử lý màn hình ( như lệnh Gotoxy, ClrScr... ), bàn phím ( như Readkey... ).
PRINTER là Unit chứa các CTC và dữ liệu về thủ tục in như Writeln ( Lst,... ).
DOS là Unit chứa các CTC và dữ liệu khai thác các hàm của Dos.
SYSTEM là Unit chứa các CTC và dữ liệu hệ thống.
( Lưu ý rằng các Unit trên được để trong file TURBO.TPL ( TPL : Turbo Pascal Library ).
GRAPH là một Unit về đồ họa, được để trong một file riêng có tên làGRAPH.TPU. Đây là một Unit chứa tất cả các CTC về đồ họa. Vì vậy
khi bạn dùng đồ họa, nhớ phải copy fileGRAPH.TPU.
STRING chỉ có trong Turbo 7.0 để sử dụng kiểu xâu kí tự kệt thúc bằng kí tự có mã #0 ( kí tự Null ).
TURBO3 là Unit tạo sự tương thích với các chương trình đã viế bằng Turbo Pascal 3.0, được chứa trong file TURBO3.TPU.
GRAPH3 thực hiện các CTC vẽ theo kiểu con rùa có ở trong Turbo 3.0, chứa trong fileGRAPH3.TPU

Tuy nhiên, hai Unit cuối có lẽ bạn sẽ không phải dùng đến, bởi vì phiên bản Turbo 3.0 và các chương trình viết bằng phiên bản này đã
cũ và "cổ lỗ" lắm rồi, bạn có muốn tìm cũng không ra !
Việc chia nhỏ thư viện này giúp cho chương trình dịch chạy nhanh hơn vì không phải đọc lại tất cả các CTC nếu như không có nhu cầu.
Mặt khác, chương trình dịch ra cũng gọn hơn vì không phải chứa những cái không dùng đến
Người ta có thể nhóm một số dữ liệu và các CTC liên quan lại thành các Unit ( đơn vị chương trình ). Các Unit này một khi đã được
dịch hoàn chỉnh nếu không có sự sửa đổi thì ta có thể dùng ngay, không cần dịch lại và thậm chí chúng còn có thể được dùng chung
cho nhiều chương trình khác nhau. Trong trương hợp có sự thay đổi trong một Unit nào đó thì chỉ có các Unit có liên quan mới bị dịch
lại.

2. Cách thức của một Unit:
Một Unit do bạn tạo ra sẽ đươc chứa trong một file với một tên nào đó, thí dụ KHOI1.PAS. Cách thức của một Unit như sau :
Unit Khoi1 ; (* Tên Unit thường nên đặt trùng với tên file *)
Uses Ten_cac_Unit_khac_can_dung ;
Interface

(* Khai báo tên các thủ tục và hàm được viết đầy đủ trong phần Implementation dưới đây. Tên của các thủ tục và hàm khai báo trong phần
này là tên các CTC mà các Unit khác cần dùng đến *)

Code:

o/threads/ngon-ngu-lap-trinh-pascal-7-chuong-trinh-con-ham-va-thu-tuc.34/

9/11


11/7/2016

Ngôn ngữ lập trình Pascal - 7.Chương trình con: Hàm và thủ tục. | Ksec Club

Procedure Thidu1 ( Var X, Y : Real ) ;
Function TenF ( I, J : Integer ) : Real ;
Implementation
(* Khai báo các kiểu dữ liệu, các biến... cùng đầy đủ các thủ tục và hàm của Unit này *)
Const PP = 3.5 ;
Var X, Y : Real ; (* Khai báo các biến cho Unit này *)
(* ------------------------------------------------------------------------- *)
Procedure Thi_du1 ( Var X, Y : Real ) ;
Begin
...
End ;
(* ------------------------------------------------------------------------- *)
Function TenF ( I, J : Integer ) : Real ;
Begin
...
End ;

END.

(* Kết thúc Unit bằng END có dấu chấm. Lưu ý ở phía trên sẽ không có chữ BEGIN tương ứng với chữ END kết thúc Unit này *)
Khi dịch tệp trên bằng cách ấn Alt _ F9, Turbo Pascal sẽ tạo ra file KHOI1.TPU ( TPU : Turbo Pascal Unit ). Bạn nhớ rằng để dịch đúng
một Unit bạn đang soạn thảo, bạn phải ấn Alt _ F9 chứ không phải Ctrl _ F9.

3. Cách gọi các Unit:
Trong chương trình chính hay trong một Unit, nếu ta cần dùng đến một Unit khác, thì ở phần đầu chương trình ta phải viết dòng :
Uses Unit1, Unit2,..., UnitN ;
Các thủ tục ClrScr, Readkey... là các thủ tục đã được dịch sẵn và để trong Unit có tên là CRT. Vì vậy, muốn dùng nó, ta phải viết :

Code:

Program SD_Unit ;
Uses Crt ;
Type
...
BEGIN
Clrscr ;
END.

hoặc một chương trình khác trong đó dùng nhiều Unit khác nhau :

Code:

o/threads/ngon-ngu-lap-trinh-pascal-7-chuong-trinh-con-ham-va-thu-tuc.34/

10/11



11/7/2016

Ngôn ngữ lập trình Pascal - 7.Chương trình con: Hàm và thủ tục. | Ksec Club

Program Vidu_Unit ;
Uses Crt, Dos, Graph, Printer ;

Các bài viết khác
Chuyển nhà trọn gói Hà Nội 0437 733 733

05/11/2016

Đăng ký tài khoản cá độ 138 Sun Games và nhận ngay 1.000.000 VND
Hướng Dẫn Đăng Ký Win2888 ______▂ ▃ ▄ ▅ ▆

04/11/2016

04/11/2016

Lô Đề Online Hoa Hồng Khuyến Mãi Lớn 1000$ Win2888 ▂ ▃ ▄ ▅ ▆

04/11/2016

Đăng ký tài khoản cá độ 138 Sun Games và nhận ngay 1.000.000 VND

17/10/2016

chuyển nhà

09/10/2016


chuyển nhà 1

09/10/2016

chuyển nhà thành hưng 3
chuyển nhà 5

09/10/2016

08/10/2016

Chuyển nhà thành hưng 001

08/10/2016

Last edited: 3/3/14
koolkiizz, 31/1/14

#1

(You must log in or sign up to reply here.)

6 Comments

Sort by Oldest

Add a comment...

Lê Quý Thọ

Hay quá
Like · Reply · Apr 19, 2015 7:30am

Vợ Cần Bao Nhiêu
giúp ích cho mọi người
Like · Reply · Nov 3, 2015 4:32pm

Thùy Dương
nếu em sử dụng if liên tục ko có else cho dến hết chương trình thì dc ko ạ
Like · Reply · Dec 24, 2015 11:46am

Bui Hai · Hải Phòng
đc bạn
Like · Reply · Mar 16, 2016 8:25am

Đam'n King'â
hay quá
Like · Reply · Jan 29, 2016 7:37pm

Load 2 more comments

Facebook Comments Plugin

Tags: pascal, lập trình pascal, chương trình con, hàm và thủ tục, function, procedure

Share This Page
Tw eet

Diễn đàn


4

Lập Trình

Like 60 people like this. Be the first of your friends.

Pascal
XenForo Add-ons by Brivium ™ © 2012-2013 Brivium LLC.

Vietnamese

Liên hệ với Chúng tôi Giúp đỡ Trang chủ Top
Forum softw are by XenForo™ ©2011 XenForo Ltd.

o/threads/ngon-ngu-lap-trinh-pascal-7-chuong-trinh-con-ham-va-thu-tuc.34/

Điều khoản & Quy định

11/11



×