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