تارا فایل

پاورپوینت تابع و رویه 1


1
تابع و رویه 1

2
مروری بر مطالب
تاکنون یک برنامه به دستورات پاسکال شکسته می شود.
طراحی برنامه دشوار است زیرا کوچکترین واحد دستوری، دستورات پاسکال است.
اگر برنامه را بتوانیم به ساختاری اجرایی با هدف مشخص بشکنیم، طراحی و پیاده سازی راحت تر خواهد شد.
طراحی مدولار ، طراحی از بالا به پایین است.

3
مثال : نمایش عدد زوج به صورت جمع دو عدد اول
Var
I , n : Word
found : boolean;
Begin
Readln (n);
found := false;
for I := 2 to n do
If ( Prime ( I ) ) and ( Prime ( n-I ) ) then
begin
Write(I, n-I); found := true; break;
end;
if not found then write (‘Not found’);
End.

4
مثال : نمایش عدد…
کافی است prime را یکبار بنویسیم و چندین بار استفاده کنیم.
مجموعه ای از دستورات را نام prime فراخوانی می کنیم.
ورودی (پارامتر) را به صورت آرگمان دریافت می کند.
کد برنامه ساده تر و قابل فهم تر می شود

5
تعریف تابع
Function نام تابع ( متغیر : نوع ; … ) : نوع خروجی ;
Var
تعریف متغیرها ;
متغیر کمکی : نوع خروجی ;
Begin
. . .
انجام محاسبات با متغیر کمکی ;
. . .
نام تابع := متغیر کمکی ;
End;

6
رویه
رویه خروجی ندارد!
Procedure نام رویه ( متغیر : نوع ; … ) ;
Var
تعریف متغیرها ;
Begin
چند دستور ;
End;

7
فرق تابع و رویه
تابع دارای خروجی است. حال آنکه رویه خروجی ندارد.
عملیاتهای محاسباتی، انتساب (مقداردهی)، مقایسه ای و چاپ در خروجی، فقط برای توابع معتبرند و برای رویه معنا ندارند.
به عنوان مثال اگر F تابعی با ورودی Real و خروجی Integer و a هم متغیری Integer باشد، عملیاتهای زیر معتبرند :
a := F (2.5) + 3;
Write ( F (1.7) );
If F ( 1.3 ) > F ( 7.4 ) Then a := F (5.4);

8
پیاده سازی تابع prime
Function Prime ( m : Word ) : Boolean;
Var
b : Boolean;
I : Integer;
Begin
b := True;
for i := 2 to Trunc ( sqrt (m) ) Do
If n mod I = 0 Then b := false;
Prime := b;
End;
نوع ورودی
نوع خروجی
متغیر داخلی

9
نگاشت متغیرها
هنگامی که نام آرگمان m باشد:

فضای حافظه Heap

10
انواع متغیرها
متغیر جهانی (global)
متغیرهایی هستند که در برنامه اصلی تعریف می شوند. در سرتاسر برنامه از جمله بدنه تابع ها و رویه ها قابل دسترسی هستند.
متغیر محلی (local)
متغیرهایی هستند که در رویه ها و تابع ها تعریف می شوند و فقط در بدنه آن تابع یا رویه قابل استفاده هستند.
در صورت وجود هم نامی بین متغیرهای محلی و جهانی ، تابع یا رویه به متغیرهای محلی رجوع می کند.

11
انواع متغیرها (ادامه)
var
x : integer;
y : boolean;
function test : boolean;
var x,y:Integer;
begin
x := 100;
if y than writeln(x);
test := true;
end;
begin
x:= 200;
test;
writeln(x);
end.

12
انواع متغیرها (ادامه)
آرگمان متغیر محلی محسوب می شود:
هنگامی که نام آرگمان n باشد:
فضای حافظه Heap

13
مثال : محاسبه توان
Function Power ( x : Real ; n : Integer ) : Real;
Var
p : Real;
I : Integer;
Begin
p := 1;
For i := 1 To abs (n) Do
p := p * x ;
if n <0 then
p := 1/p;
Power := p;
End;
Var
a : Real ; b : Integer;
Begin
Readln (a , b);
Writeln ( Power (a , b) );
End.

14
مثال :کرم
Begin
EOG := true ;
LEVEL:=1 ;
EOG := true ;
While EOG do
Begin
INIT_Wall(Level);
INIT_foods ;
INIT_putworm;
If Game then LEVEL:=LEVEL+1
else EOG := false;
End ;

15
مثال :کرم (ادامه)
Procedure INIT_Wall(l:Integer);
x,y : integer;
dir : byte; …
Begin
x := random(79)+1;
y := random(24)+1;
for i:= 1 to l*10 do
begin
d := random(3);
case d of
0 : y:=y-1;
….
if y=0 then y:=25
else if y:=26 then y:=1 ;
ground[x][y]:=true ;
end;
End;

16
مثال :کرم (ادامه)
چناچه ملاحظه می شود برنامه به صورت مدولار از بالا به پایین طراحی می شود:
Program
INIT_Wall
INIT_foods
Game
INIT_foods

17
مثال :کرم (ادامه)
Function Game:boolean;
Var

Begin
gameover:= false;
while not gameover do
begin
Move(get_dir);
if food[wx,wy] >0 then grow(food[wx,wy]);
else …
end;
Game := gameover;
End.


تعداد صفحات : 17 | فرمت فایل : .ppt

بلافاصله بعد از پرداخت لینک دانلود فعال می شود