– 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)