PDA

View Full Version : Hàm và Thủ Tục



trankientrung
23-12-2007, 09:25
Mình không hiểu lắm về phần Hàm và Thủ Tục trong Pacal.
Mong các bạn có thể giải thích ý nghĩa va công dụng của Hàm và Thủ Tục trong Pacal dùm.
Nếu có thể mình mong các bạn chó thể cho ví dụ cụ thể và giải thích công dụng của Hàm (hoặc Thủ Tục đó ).
Xin cám ơn.
Thân !

mr_invincible
23-12-2007, 09:30
Theo ý kiến của tôi, hàm và thủ tục trong Pascal thường được dùng trong trường hợp:
- Có một đoạn chương trình lặp đi lặp lại, khi đó, để cho gọn ta viết chúng thành một thủ tục, bao giờ cần đoạn chương trình chính cần dùng đến thì gọi ra
- Chương trình phức tạp, khi đó, để tiện cho việc kiểm soát chương trình và phân chia công việc thành từng phần, cần dùng hàm và thủ tục

trankientrung
23-12-2007, 09:44
Vậy bạn có thể cho 1 ví dụ đơn giản về hàm và thủ tục được không.
Nếu có thể bạn giải tích ý nghĩa của nó luôn dùm.

mr_invincible
23-12-2007, 11:08
vD: hàm kiểm tra nguyên tố của một số nguyên
Function nt(n:integer):boolean; {Khai báo tên hàm và các tham biến}
Var i:integer;
Begin
For i:=2 to round(sqrt(n)) do
If n mod i=0 then begin nt:=false; exit; end; {Số đó không nguyên tố, gán giá trị cho hàm và thoát}
nt:=n>1; {Lệnh gán giá trị cho hàm nếu n>1 thì hàm nguyên tố nhận giá trị true}
End;
Trong chương trình chính, khi muốn biết số n có là số nguyên tố không, ta có thể viết như sau:
If nt(n) then Writeln('n là số nguyên tố)
else WRiteln('n không là số nguyên tố');

lee_huynh306
23-12-2007, 14:06
Hàm và thủ tục là những module của chương trình. Để tránh phải lập đi những đoạn code giống nhau người ta đã đặt ra 2 đứa này.
Hàm khác thủ tục ở chỗ hàm trả về giá trị còn thủ tục thì không.
Ví dụ hàm:


function Add(a,b:byte):word;
tmp: word;
begin
tmp:= a+b;
Add:= tmp;{Không nên gán trực tiếp function cho 1 phép tính}
end;

Ví dụ về thủ tục:


Program example;
var
tmp: word
Procedure add(x,y:byte);
Begin
tmp := x+y;
end;
Begin
{ ...}
end.

trankientrung
23-12-2007, 21:08
Cám ơn các bạn nhiều nha !
Thank all you very much !

doremon_No1
23-12-2007, 22:27
Sau này học pascal toàn viết bằng hàm và thủ tục thôi.