Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.

14
Le funzioni UD. 8 – L’organizzazione dei programmi p. 309 LS Tron 4TC 06/07

Transcript of Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.

Page 1: 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

Page 2: Le funzioni UD. 8 – Lorganizzazione 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

Page 3: Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.

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

Page 4: Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.

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

Page 5: Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.

EsempioEsempio

Es.

Function Somma(A,B:INTEGER):integer;begin

Somma:=a+b; end;

Page 6: Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.

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…

Page 7: Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.

Funzioni predefinite (built in)Funzioni predefinite (built in)

Es. Abs(x)restituisce il valore assoluto

Se non esistesse, il programmatore potrebbe crearla

Page 8: Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.

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.

Page 9: Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.

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.

Page 10: Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.

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));

Page 11: Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.

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));

Page 12: Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.

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));

Page 13: Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.

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));

Page 14: Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.

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));