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
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;