Pascal – Alt Programlar

– Procedure Alt Programlar

Alt programlar genellikle tekrar edilen işlemleri kolaylıkla yapabilmek için yazılırlar.Bilgisayar dillerinin tamamında bulunan alt program yapısı PASCAL Programlama dilinde PROCEDURE ve FUNCTION türü alt programlar olmak üzere iki ayrı türdedir.

Procedure Alt Programlar

Bir pascal programında Procedure alt programlara erişim ve procedure alt programın program içindeki yeri aşağıdaki genel gösterim şeklinde verilmiştir.

program ad_;

procedure altprogram1;

begin

işlem blokları; end;

procedure altprogram2;

begin

işlem blokları; end;

begin (* ana program*)

işlemler;

altprogram1;

altprogram2;

işlemler;

altprogram1 ;

end.

– Function Alt Programlar

Örnek 4:Elemanları sıra ile 1-100 arasında olan dizi değer aldıkça altprograma değer transfer etmekte ve alt programda bu dizinin değerleri random komutu ile rastgele sayılardan oluşan yeni bir diziye aktarılmakta ve ana programa geri dönmektedir.

uses crt;

type dizitipi=array[1..100] of integer;

var

dizgi:dizitipi;k:word;

yenidizi1,yenidizi:dizitipi;

procedure ornekleme(pardizi:dizitipi;var yenidizi:dizitipi);

begin

yenidizi[k]:=random(pardizi[k]);end;

begin

for k:=1 to 100 do begin

dizgi[k]:=k;ornekleme(dizgi,yenidizi1);

writeln(dizgi[k],’ ‘,yenidizi1[k]);end;

while not keypressed do;end. Programın Çıktısı

Function Alt Programları

Pascal’da altprogramlar başlığı altındaki yapısal modüllerden bir diğeri de fonksiyonlardır (function). Function ve Procedure arasındaki farkı anlayabilmek için procedure ve function olarak ayrı ayrı yazılmış bir uygulama üzerinde duralım.

PROCEDURE Toplam(X,Y:integer; var Z:integer);

begin

Z:=X+Y;

end; örneğin açıklaması ileriki sayfada verilmiştir.

– Özyinelemeli Alt Programlar

Özyinelemeli Altprogramlar: Kendi kendini çağıran altprogramlara özyinelemeli altprogramlar denir. Çözümü güç olan bazı problemler özyinelemeli altprogramlar kullanılarak daha kolay çözülebilir.

Örnek 8:

uses crt;

var

n:integer;

function f(k:integer):real;

begin

if k=0 then

f:=1  else

f:=k*f (k-1); writeln(k);end;

begin

readln(n);writeln(f(n));end. Programın Çıktısı

1’den 5′ kadar tamsayıların toplamını bulan özyinelemeli fonksiyonun yazılması.
Toplam5=5 + Toplam4
Toplam4=4 + Toplam3
Toplam3=3 + Toplam2
Toplam2=2 + Toplam1
Toplam1=1

Yukarıda görüldüğü gibi Toplam5!i bulmak için Toplam4’ü, Toplam4’ü bulabilmek için Toplam3’ü,… bulmamız gerekmektedir. Yukarıdaki ifadeleri if deyimi kullanarak aşağıdaki şekilde yazabiliriz:
if N=1 then Toplam:=1
else Toplam:= N + Toplam(N-1)

Yorum Bırak

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir