: procediments - funcions - units
introducció
paràmetres
exercicis
exemples procediments
exemple 4.1
Program procediments1;
var resposta:char; lg:integer; {variables globals}
Procedure Pinta_simbol(longitud :integer); {pas paràmetre per valor}
var x:byte; {variable local}
begin
for x:=1 to longitud do Write('$');
end;
begin{--- Començament bloc principal del programa ---}
repeat
clrscr;
Write(‘quants simbols vols pintar?’);
Readln(lg);
Pinta_simbol(lg); {crida del procediment}
write(‘vols continuar’);resposta:=readkey;
until upcase(resposta)=’N’;
end.
exemple 4.2
Program procediments2;
var a,b:Integer; {variables globals}
procedure canvi(Var x,y: Integer); {pas paràmetre per referència}
Var aux: integer; {variable local}
begin
aux:=x;
x:=y;
y:=aux;
end;
Begin
readln(a,b);
canvi(a,b);
writeln('els valors intercanviats ara són ', a,b);
end.
exemple 4.3
Program operacions_basiques;
uses crt;
var
numero1,numero2, rsuma: integer;
op:char;
procedure legir(var n1,n2:integer); {pas paràmetre per referència}
begin
clrscr;
write('Numero 1: ');readln(n1);
write('Numero 2: ');readln(n2);
end;
procedure suma(n1,n2:integer; var rs :integer); {pas paràmetre per valor i referència}
begin
rs:=n1+n2;
end;
begin (* --------------programa principal -------------- *)
repeat
llegir(num1,num2);
write( prem 1...suma, 2...resta, 3....producte, 4....divisió);
op:=readkey;
case op of
‘1’: suma(num1,num2,ClrScr;
End;
write(‘vols continuar’);resposta:=readkey;
until upcase(resposta)=’N’;
end.
exemples funcions
function promig(a,b:real):real;
var {no hi ha variables locals}
begin
promig:=(a+b)/2;
end
x:=5.89;
y:=9.23;
z:=promig(x,y)
write(z);
write(promig(x,y); {una altra forma d’invocar i visualitzar el resultat de la funció }
x:=5.89;
y:=9.23
writeln('el promig de',x,' i ',y,'és:',promig(x,y);