La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Informatica per l’Ingegneria

Presentazioni simili


Presentazione sul tema: "Informatica per l’Ingegneria"— Transcript della presentazione:

1 Informatica per l’Ingegneria
Funzioni e procedure Informatica per l’Ingegneria

2 Informatica per l’Ingegneria
Indice Necessità di sottoprogrammi(funzioni e procedure) Funzioni Procedure Comunicazione con i sottoprogrammi Tipi di sottoprogrammi Informatica per l’Ingegneria

3 Il concetto di sottoprogramma (1)
I sottoprogrammi implementano operazioni non predefinite sui tipi di dati I sottoprogrammi racchiudono in maniera astratta le righe di codice necessarie ad eseguire un’operazione Se l’operazione deve essere ripetuta più volte l’utilizzo dei sottoprogrammi è ancora più vantaggioso Informatica per l’Ingegneria

4 Il concetto di sottoprogramma (2)
I sottoprogrammi sono lo strumento per realizzare astrazioni sulle operazioni Due tipi (concettualmente): Funzioni: sottoprogrammi descrivibili come vere e proprie funzioni matematiche e possiedono un dominio ed un codominio Procedure: sottoprogrammi che modificano lo stato di alcune variabili di programma L’utilizzo dei sottoprogrammi necessita di: Definizione del sottoprogramma Chiamata del sottoprogramma Informatica per l’Ingegneria

5 Sottoprogrammi: Definizione
Deve contenere almeno il nome del sottoprogramma, la lista degli output e degli input Le variabili di input prendono il nome di parametri formali del sottoprogramma In Matlab: In un file di funzione (estensione .m) che: Tratta tutte le variabili come locali Ha il nome uguale a nome_funzione.m Inizia con la riga di definizione della funzione : function [variabili di output] =nome_funzione(variabili di input) Ammette le seguenti varianti di definizione:     - function variabile_di_output  =nome_funzione(variabili di input)  quando c’è  una sola variabile di output      - function nome_funzione(variabili di input) quando non c’è  alcuna variabile di output (procedura) Informatica per l’Ingegneria

6 Sottoprogrammi: Chiamata
Consentono di utilizzare le operazioni implementate dal sottoprogramma: Struttura della chiamata: Identificatore del sottoprogramma Lista dei parametri attuali, tra parentesi tonde: Sono i valori degli argomenti rispetto ai quali deve essere calcolato Corrispondono in numero e ordine ai parametri formali dichiarati In Matlab: nome_funzione (parametri attuali) Varianti: parametri attuali come varibili, oppure come valori, oppure come vettori Informatica per l’Ingegneria

7 Esecuzione dei sottoprogrammi e passaggio dei parametri
drop.m function [dist, vel] = drop (g, v0,t) vel=g*t+v0; dist= 0.5*g*t^2+v0*t; myscript.m a=9,8; veloc_iniziale=10; tempo=5; [distanza, veloc] = drop (a, veloc_iniziale, tempo) Informatica per l’Ingegneria

8 Esecuzione di funzioni: macchine astratte master e slave
g a veloc_iniziale v0 t tempo dist distanza vel veloc SLAVE: calcola il risultato dopo aver manipolato i parametri formali MASTER: chiama la funzione passando i parametri attuali Informatica per l’Ingegneria

9 Esecuzione di funzioni: macchine astratte master e slave
Le due macchine hanno ciascuna il proprio ambiente di esecuzione: La macchina slave ha un ambiente locale di funzione caratterizzato da: Variabili locali Variabili corrispondenti ai parametri formali Variabile che contengono i valori di output La macchina master ha un ambiente caratterizzato dalle variabili che utilizza il programma chiamante, tra cui quelle passate come parametri attuali Informatica per l’Ingegneria

10 Passaggio di parametri
L’istruzione: [distanza, veloc] = drop (a, veloc_iniziale, tempo) provoca il seguente flusso: La macchina master chiama la macchina slave per il valore di [distanza, veloc] passando i parametri ad essa:il passaggio dei parametri consiste nella copiatura dei parametri attuali nella cella dei parametri formali Il controllo viene ceduto alla macchina slave, che procede con l’esecuzione come un normale programma Il controllo viene restituito alla macchina master con la restituzione del valore di [distanza, veloc] Informatica per l’Ingegneria

11 Informatica per l’Ingegneria
Procedure Sono sottoprogrammi che non restituiscono valori Le procedure non servono a produrre dei valori di un certo tipo ma a modificare lo stato del programma che ne chiede l’esecuzione Informatica per l’Ingegneria

12 Informatica per l’Ingegneria
Procedure : esempio sortandprint.m function sortandprint(V) N=length(V) for i=1:N k=i; for j=i+1:N if V(k) >V(j) k=j; end if k~=i lavoro = V(i); V(i) = V(k); V(k)= lavoro; disp(V); myscript.m I= [8, 15, 1, 4, 87] sortandprint (I); Informatica per l’Ingegneria

13 Esecuzione delle procedure
Ambiente globale V I N k j Ambiente locale di mioscript.m i lavoro Ambiente di sortandprint.m Informatica per l’Ingegneria

14 Passaggio parametri per indirizzo
Parametri attuali Parametri formali Passaggio per valore 243 243 Ind(x) = 2034 y A Passaggio per indirizzo 413 1004 Ind(y) = 1004 Informatica per l’Ingegneria

15 Visibilità delle variabili
variabili locali: i loro valori sono visibili solo all’interno della funzione che le definiscono e non nell’area di lavoro principale variabili globali: i loro valori sono visibili all’interno dell’area principale di lavoro e nelle funzioni che dichiarano tali variabili come globali: sintassi: global A X Y nelle funzioni Informatica per l’Ingegneria

16 Informatica per l’Ingegneria
Handle di Funzioni etichette utilizzabili per fare riferimento alle funzioni Esempio: definire un handle d per la funzione drop function [dist, vel] = drop (g, v0,t) Utilità: definire funzioni di funzioni Esempio x0) è una funzione che calcola lo zero di una ad una sola variabile, se X0 è ipotizzato come valore dello 0. Informatica per l’Ingegneria

17 Categorie di Sottoprogrammi
Built in: automaticamente forniti dal linguaggio matematiche, logiche, ecc User defined: definiti dall’utente come visto finora Informatica per l’Ingegneria

18 Tipi di sottoprogrammi user-defined in Matlab
Funzione primaria: prima funzione in un file .m, unica chiamabile nel prompt con il nome del file che la contiene o con il comando Run Funzioni anonime: non richiedono la creazione di file.m Sottofunzioni: definite in un file .m a seguito della funzione primaria Funzioni annidate: definite all’interno di altre funzioni, non visibili al di fuori di esse Funzioni overloaded: rispondono in maniera diversa a seconda degli argomenti di input Funzioni private: chiamabili soltanto dalle funzioni di file.m che si trovano nella directory parent Informatica per l’Ingegneria

19 Esempio funzione principale-sottofunzione
I = [82, 3, 4, 7, 1, 89, 43]; sort(I); function sort(V) N=length(V) for i=1:N k=i; for j=i+1:N if V(k) >V(j) k=j; end if k~=i lavoro = V(i); V(i) = V(k); V(k)= lavoro; disp(V); Funzione Principale Sottofunzione Informatica per l’Ingegneria

20 Informatica per l’Ingegneria
Esercizio 1 Progettare tramite flowchart struttrato un programma che acquisisca un vettore di interi e consenta la scelta ripetuta tra le seguenti opzioni: visualizzazione del massimo e minimo nel vettore visualizzazione della media nel vettore visualizzazione del vettore ordinato in ordine crescente ricerca binaria di un elemento K nel vettore. Codificare in Matlab il progetto, realizzando un sottoprogramma per ognuna delle opzioni precedenti Informatica per l’Ingegneria

21 Esercizio 1 : funzione primaria
Informatica per l’Ingegneria

22 Esercizio 1 : ricerca del massimo e del minimo
Informatica per l’Ingegneria

23 Esercizio 1 : calcolo della media
Informatica per l’Ingegneria

24 Esercizio 1 : ordinamento
Informatica per l’Ingegneria

25 Informatica per l’Ingegneria
Esercizio 1 : ricerca Informatica per l’Ingegneria

26 Informatica per l’Ingegneria
Esercizio 2 Progettare tramite flowchart struttrato un programma che acquisisca un vettore di stringhe e consenta la scelta ripetuta tra le seguenti opzioni: visualizzazione del vettore ordinato in ordine alfabetico ricerca binaria di un elemento K nel vettore. Codificare in Matlab il progetto, realizzando un sottoprogramma per ognuna delle opzioni precedenti Informatica per l’Ingegneria

27 Esercizio 2: funzione primaria
Informatica per l’Ingegneria

28 Esercizio 2: Inserimento nel vettore
Informatica per l’Ingegneria

29 Esercizio 2: confronto alfabetico
Informatica per l’Ingegneria

30 Esercizio 2: Ordinamento alfabetico
Informatica per l’Ingegneria

31 Esercizio 2: ricerca binaria
Informatica per l’Ingegneria


Scaricare ppt "Informatica per l’Ingegneria"

Presentazioni simili


Annunci Google