dijous, 14 d’abril del 2011

procediments i funcions

procediments i funcions

índex: procediments - funcions - units

introducció

Variables locals i globals

Les variables locals només poden ser utilitzades dins del mòdul on estan declarades. Les variables globals poden ser utilitzades en qualsevol part del programa.

És possible donar el mateix nom a una variable local i a una global en el mateix programa, però el procediment no podrà utilitzar la variable global ja que dona preferència a les locals.

paràmetres

Els paràmetres serveixen per passar informació entre el programa i els mòduls i viceversa. Els paràmetres en pascal poden ser: 1. Valor : equivalent al paràmetre d'entrada en pseudocodi. Identificador, ...: :tipus2. Referència: equivalent al paràmetre d'entrada/sortida en pseudocodi. var identificador, ...: :tipus

exercicis

4.1 Proveu els exemples de procediments i funcions que teniu tot seguit.

4.2 Realitzeu un programa modular, utilitzant procediments que simuli una calculadora.

4.3 Realitzeu un programa modular, utilitzant funcions que simuli una calculadora.

4.4 Realitza un programa modular que passi un número natural de base 10 a base 2.

exemples procediments

Un procediment és un grup d'instruccions que realitzen una tasca concreta i que actuarà com una instrucció més del Pascal.

Una procediment en Pascal pot cridar un altre procediment sempre que aquest s'hagi declarat abans de ser utilitzat.


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

Les funcions són al igual que els procediments, un conjunt d'instruccions que poden ser utilitzades en qualsevol lloc del programa, la diferència entre les funcions i els procediments és que les funcions sempre retornen un valor.

exemple 4.4 definneix una funció que retorna el promig de 2 numeros reals.

function promig(a,b:real):real;
var {no hi ha variables locals}
begin
promig:=(a+b)/2;
end

Com les funcions retornen un valor específic la forma més usual d'utilitzar-les és mitjançant una assignació d'una variable a la funció

exemple 4.5 mostra l'ús de la funció de l'exemple anterior.

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ó }


també es podria presentar el resultat directament per pantalla tal com es mostra a continuació

exemple 4.6

x:=5.89;
y:=9.23
writeln('el promig de',x,' i ',y,'és:',promig(x,y);

Cap comentari:

Publica un comentari a l'entrada