|
|
Realizzare la funzione QUADRATO(x) function QUADRATO(X: Real): Real; begin QUADRATO:=X*X; end; Adesso, per calcolare lo spostamento in un moto uniformemente accelerato, possiamo scrivere s:=1/2*a*t*t; oppure s:=1/2*a*Sqr(t); oppure s:=1/2*a*QUADRATO(t);
Realizzare una funzione che restituisce la media aritmetica tra due real function MEDIA2(X, Y: Real): Real; begin Media2:=(X+Y)/2; end;
Realizzare la funzione TANGENTE(x) function TANGENTE(X: Real): Real; Var C: Real; begin C:=cos(X); if(C = 0) then Halt(1); TANGENTE:=sin(X)/C; end; Compare la "trappola" if(C = 0) then Halt(1); per l’operazione di divisione per zero.
Realizzare una funzione che decide se un ANNO è bisestile function IS_BISESTILE(ANNO: Integer): Boolean;
begin
IS_BISESTILE:=(ANNO Mod 4 = 0) And (ANNO Mod 100 <> 0) Or
(ANNO Mod 400 = 0);
end;
Quando una funzione è di tipo logico si può utilizzare l’espressione risolutiva direttamente nell’assegnamento della risposta...
Realizzare una funzione che restituisce un intero casuale con una sola cifra function RAND_CIFRA: Integer; begin Randomize; RAND_CIFRA:=Random(10); end; Possiamo definire funzioni senza argomenti (operazioni senza operandi...).
Realizzare una funzione che restituisce una lettera alfabetica casuale function RAND_ALFA: Char;
Var
RAND_DIST: Integer;
begin
Randomize;
RAND_DIST:=Random(26);
case Random(2) of
0: RAND_ALFA:=Char(Ord(‘A’)+RAND_DIST);
1: RAND_ALFA:=Char(Ord(‘a’)+RAND_DIST);
end;
end;
Se utilizziamo delle funzioni analoghe per le coordinate sullo schermo, per sporcare lo schermo con lettere casuali possiamo scrivere GotoXY(RAND_X, RAND_Y); write(RAND_ALFA);
Realizzare una funzione che restituisce la misura dell’ipotenusa, date quelle dei cateti, di un triangolo rettangolo function IPOTENUSA(X, Y: Real): Real; begin IPOTENUSA:=Sqrt(Sqr(X)+Sqr(Y)); end; Finalmente abbiamo realizzato un’operazione binaria anche se in notazione funzionale. Il perimetro di un triangolo rettangolo, dati i cateti, diventa P:=X+Y+IPOTENUSA(X,Y);
Realizzare una funzione che restituisce il massimo tra due real. function MAX2(X, Y: Real): Real;
begin
if(X >= Y) then
Max2:=X
else
Max2:=Y;
end;
Realizzare una funzione che restituisce il massimo tra tre real function MAX3(X, Y, Z: Real): Real; begin Max3:=Max2(Max2(X, Y), Z); end; Le funzioni possono essere riutilizzate! |
|