Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.
-
Upload
fausto-lorusso -
Category
Documents
-
view
212 -
download
0
Transcript of Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.
Le funzioniLe funzioniUD. 8 – L’organizzazione dei programmi
p. 309
LS Tron 4TC 06/07
Che cos’è una FUNZIONEChe cos’è una FUNZIONE E’ un modulo SW interno al programma
Ha una struttura simile alle procedure:Riceve dal main i valori assegnati ai parametri formali
MA si comporta diversamente:
RESTITUISCE UN VALORE
Come si dichiara ?Come si dichiara ? Function funz(parametri:tipo):TIPO;
Begin ……
End;Come si nota, SI DEVE INDICARE
OBBLIGATORIAMENTE QUAL E’ IL TIPO (integer, real, boolean…) DEL VALORE CHE VIENE RESTITUITO AL MAIN
Come restituisce il valore ?Come restituisce il valore ? Function funz(parametri:tipo):TIPO;
Begin ……
funz:= … ……End;
All’interno della funzione COMPARIRA’ OBBLIGATORIAMENTE un’istruzione di assegnazione contenente a sinistra il NOME DELLA FUNCTION
EsempioEsempio
Es.
Function Somma(A,B:INTEGER):integer;begin
Somma:=a+b; end;
Il ritorno (nel main)Il ritorno (nel main)
Le funzioni vengono usate nel Main COME SE FOSSERO Variabili o espressioni:
Nell’es. di prima si potrebbe pensare a: ... Totale:=somma(x,y)*2;
… Writeln(somma(3,5):10);… IF somma(C,D)>100 THEN…
Funzioni predefinite (built in)Funzioni predefinite (built in)
Es. Abs(x)restituisce il valore assoluto
Se non esistesse, il programmatore potrebbe crearla
Funzioni es. 1Funzioni es. 1Program ValoreAssoluto;VAR y:Real;Function Abs(x:real):real;BEGIN
if x<0 then Abs:=-x else Abs:=x;END;Begin readln(y); writeln(Abs(y):10:2);End.
Funzioni es. 2 (al posto di Odd(x))Funzioni es. 2 (al posto di Odd(x))
Program PariDispari;VAR y:Integer;Function Pari(x:integer):BOOLEAN;BEGIN
if x MOD 2 =0 then pari:=TRUE else pari:=FALSE;END;Begin readln(y); IF pari(y) = true (oppure IF pari(y)) then writeln(‘Pari’) else writeln(‘Dispari’);End.
Funzioni Built in di Gestione stringhe in Pascal
Funzioni Built in di Gestione stringhe in Pascal
(Ringrazio il Prof. Catena per il file da cui sono stati presi gli esempi)
Si suppone che: var S,S1:string; { S:=’INFORMATICA’;} N,K:integer;
OperazioneFunction Length(S:string):integerDescrizioneFunzione: restituisce la lunghezza della stringa (numero di caratteri)Esempio di usoN:=Length(S); {11}Owriteln(Length(S));
Si suppone che: var S,S1:string; { S:=’INFORMATICA’;} N,K:integer;
OperazioneFunction Copy(S:string;N,K:integer): stringDescrizioneFunzione: restituisce da S la sottostringa formata
da K caratteri a partire dal carattere di posto N
Esempio di usoS1:= copy(S,3,5); {FORMA}owriteln(copy(S,3,5));
Si suppone che: var S,S1:string; { S:=’INFORMATICA’;} N,K:integer;
OperazioneFunction UpperCase(S:string): stringDescrizioneFunzione: restistuisce la stringa S in caratteri maiuscoliEsempio di usoS:= UpperCase(S); owriteln(UpperCase(S));
OperazioneFunction UpCase(CH:char): charDescrizioneFunzione: restituisce il carattere CH in maiuscoloEsempio di usoCH:= UpCase(CH); {se CH=’a’ , CH=’A’} owriteln(UpCase(CH));
OperazioneFunction Ord(CH:char): integerDescrizioneFunzione: restituisce la posizione del carattere nel codice ASCIIEsempio di usoN:= Ord(CH); {se CH=’A’ , N=65} owriteln(Ord(CH));
OperazioneFunction Chr(N:integer): charDescrizioneFunzione: restituisce il carattere che occupa la posizione N nel
codice ASCIIEsempio di usoCH:= Chr(N); {se N=65, CH=’A’ } owriteln(Chr(N));
OperazioneFunction Succ(CH:char): charDescrizioneFunzione: restituisce il carattere successivo nel codice ASCIIEsempio di usoCH:= Succ(CH); {se CH=’A’ , CH=’B’} owriteln(Succ(CH));
OperazioneFunction Pred(CH:char): charDescrizioneFunzione: restituisce il carattere precedente nel codice ASCIIEsempio di usoCH:= Pred(CH); {se CH=’A’ , CH=’@’}owriteln(Pred(CH));