Unterprogramme

Prozeduren und Funktionen 

 PROCEDURE mit Werteparametern

Die Übergabe  von Werten von einem übergeordneten an einen untergeordneten Algorithmus geschieht mithilfe von Parametern. Die zu übergebenden Parametern heißen lokale Parameter, die zur Aufnahme vorgesehenen Variablen des Unteralgorithmus nennt man formale Parameter.

Beim Aufruf einer Prozedur sind die aktuellen Parameter (ohne Typangabe) in Klammern hinter dem Prozedurnamen aufzuzählen. Ihre Typen müssen mit denen der zugeordneten formalen Parametern  verträglich sein. Bei mehreren Parametern entscheidet die Reihenfolge der Aufzählung über die Zuordnung der Werte beim Aufruf.

Beispiel  

Quelltext

program dreieck_2;           {+++prüft, ob eine Dreick möglich ist+++}
                             {+++nach Dreiecksungleichung+++}
                             {+++ermittelt die größte Seite+++}
                             {***mit Procedure und Werteparametr***}
uses crt;
var max, d, e, f: integer;
var ist_dreieck :boolean;
procedure bildschirm;
var i,j   :  integer;
begin
     clrscr;
     for i:=1 to 80 do
         begin
           for j:=1 to 24 do
           gotoxy(j,i);textbackground(white); write('');
         end;
     textcolor(black);gotoxy(1,1);
end;
procedure maximum(a, b, c :integer);
begin
     max:=a;
     if b>max then max := b;
     if c>max then max := c;
end;
procedure dreieck (a, b, c  :integer);
begin
     ist_dreieck := false;
     if (a+b>c) and (a+c>b) and (b+c>a) then
     ist_dreieck := true;
end;

begin
     bildschirm;
     gotoxy(20,3); write('Dreieck aus 3 Seiten');
     gotoxy(16,5); write('Prüft, ob ein Dreieck möglich ist');
     gotoxy(16,7); write('und gibt die größte Seite aus');
     gotoxy(12,10); write('Die 1. Seite :  ');readln(d);
     gotoxy(12,12); write('Die 2. Seite :  ');readln(e);
     gotoxy(12,14); write('Die 3. Seite :  ');readln(f);
     dreieck(d,e,f); if ist_dreieck = true then
                     begin
                     gotoxy(14,16);textcolor(green);writeln('ES IST EIN DREIECK');
                     end
     else begin
          gotoxy(14,16); textcolor(red);writeln('KEIN DREICK  !');
          end;
     if ist_dreieck = true then
     begin
     maximum(d,e,f);
     gotoxy(16,18); textcolor(green); Write('und die größte Seite ist   ',max);
     end;

readln;

end.
Bemerkung: a, b, c und max können auch Gleitkommazahlen sein, dann müsste die Variablenvereinbarung geändert werden.
	a, b, c, max : real;