ورود

View Full Version : برنامه نویسی توابع در پاسکال



moein_sql
پنج شنبه 02 اردیبهشت 1389, 09:35 صبح
با سلام خدمت همه دوستان.

یه سوال>

آیا میشه توی پاسکال توابع تو در تو نوشت؟ یعنی اینکه یک تابع داشت که یکی از پارامتر هاش یه تابع باشه؟ یه چیز شبیه این


function x (i:integer ; function y (s:string):string):integer

Zahed2008
پنج شنبه 02 اردیبهشت 1389, 10:50 صبح
سلام دوست عزیز، راستش بطور دقیق نمی دونم ولی این طوریشو دیدم قبلا:

function x (i:integer; s:string ):integer
begin
...
s := y (s);
...
end;

vcldeveloper
پنج شنبه 02 اردیبهشت 1389, 11:50 صبح
تعریفی به شکل:

function x (i:integer ; function y (s:string):string):integer

معنی نداره؛ چون function y(s: string): string خودش یعنی y: string.

توی پاسکال می تونید توابع تو در تو داشته باشید، یعنی:

function X(a: Integer): string;
function Y: string;
begin
Result := 'Test';
end;
begin
Result := Copy(Y,1,a);
end;

همچنین میشه به جای آرگومان یک تابع، مقدار یک تابع را ارسال کرد:

اگر دو تابع فرضی با تعریف زیر داشته باشیم:

function Y: string;

function X(Str: string, Num: Integer): string;

میشه X را به صورت زیر فراخوانی کرد:

MyStr := X(Y,10);