• Non ci sono risultati.

procedure e funzioni Informatica

N/A
N/A
Protected

Academic year: 2021

Condividi "procedure e funzioni Informatica"

Copied!
20
0
0

Testo completo

(1)

A. Ferrari

Informatica

procedure e funzioni

(2)

A. Ferrari

procedure

o dichiarazione e definizione

o definizione del comportamento della funzione o utilizzo di parametri formali

o prototipo (solo dichiarazione)

o esecuzione

o esecuzione della funzione (chiamata) o utilizzo di parametri attuali

Alberto Ferrari – Informatica

(3)

A. Ferrari

procedure in C

o in linguaggio C / C++ non esistono procedure ma solo funzioni (funzioni void)

o la dichiarazione di una procedura deve essere inserita prima della sua esecuzione

o utilizzando i prototipi è possibile definire le procedure dopo il programma principale

o l’esecuzione di una procedura termina quando si raggiunge la sua ultima istruzione o si incontra l’istruzione return

Alberto Ferrari – Informatica

(4)

A. Ferrari

Esempio in linguaggio C

Alberto Ferrari – Informatica

(5)

A. Ferrari

Esempio con prototipo

Alberto Ferrari – Informatica

(6)

A. Ferrari

esecuzione del codice

o la chiamata di una funzione provoca

o l’interruzione momentanea dell’esecuzione del codice o l’esecuzione del codice della funzione

o al termine dell’esecuzione di questa, la ripresa del codice inizialmente sospeso

Alberto Ferrari – Informatica

(7)

A. Ferrari

variabili globali

Alberto Ferrari – Informatica

(8)

A. Ferrari

variabili globali e locali

Alberto Ferrari – Informatica

(9)

A. Ferrari

funzioni

o la funzione ha un tipo (il tipo dl valore restituito) e una

terminazione esplicita (return seguito da una espressione che rappresenta il valore della funzione)

o la funzione opera formalmente su variabili (parametri formali) che vengono associate a valori specifici al momento della

chiamata (parametri attuali)

Alberto Ferrari – Informatica

(10)

A. Ferrari

esempio

Alberto Ferrari – Informatica

(11)

A. Ferrari

passaggio per valore

Alberto Ferrari – Informatica

(12)

A. Ferrari

passaggio per valore

Alberto Ferrari – Informatica

o al momento dell’esecuzione della funzione il valore del parametro attuale viene copiato nella variabile che

rappresenta il parametro formale

o Il passaggio per valore non permette però di

“ricordare” le modifiche apportate ai parametri da parte della funzione

o La memoria locale della funzione (che contiene i

parametri formali) scompare nel momento in cui la

funzione termina la sua esecuzione.

(13)

A. Ferrari

esempio

Alberto Ferrari – Informatica

(14)

A. Ferrari

passaggio per indirizzo

Alberto Ferrari – Informatica

o al momento dell’esecuzione della funzione l’indirizzo

del parametro attuale (&) viene copiato nel puntatore

(*) che rappresenta il parametro formale

(15)

A. Ferrari

array come parametro

o è necessario passare anche il numero di elementi

dell’array

(16)

A. Ferrari

gli array sono sempre

passati per riferimento

(17)

A. Ferrari

procedure e funzioni perché?

o evitare duplicazioni del codice

o con le procedure si evita di duplicare parti del codice sorgente, quando si chiama o invoca una procedura si esegue il codice corrispondente

o a ogni nuova chiamata il suo codice è eseguito nuovamente o la duplicazione pone due tipi di problemi:

o aumento della lunghezza del codice e quindi minore leggibilità

o difficoltà nell’apportare modifiche che devono essere effettuate in tutte le copie del codice

o … ma questa non è la motivazione più importante

Alberto Ferrari – Informatica

(18)

A. Ferrari

progettazione modulare

o per affrontare problemi complessi si ricorre alla tecnica dei raffinamenti successivi che suggerisce di scomporre il problema in problemi più semplici (sottoproblemi)

o … e di applicare anche a questi sottoproblemi la stessa tecnica fino ad ottenere problemi facilmente risolvibili

o questa tecnica è definita top-down:

o si parte da una visione globale del problema (alto livello di astrazione) [top]

o poi si scende nel dettaglio dei sottoproblemi diminuendo il livello di astrazione [down]

o viene fornita inizialmente una soluzione del problema che non si basa però su operazioni elementari, ma sulla soluzione di

sottoproblemi

Alberto Ferrari – Informatica

(19)

A. Ferrari

metodologia top down

o se il sottoproblema è semplice allora viene risolto, viene cioè scritto l’algoritmo di risoluzione

o se il sottoproblema è complesso viene riapplicato lo stesso procedimento scomponendolo in sottoproblemi più semplici o diminuisce il livello di astrazione

(si affrontano problemi sempre più concreti) o diminuisce il livello di complessità

(i sottoproblemi devono essere più semplici del problema che li ha originati)

o fino ad arrivare alla stesura di tutti gli algoritmi necessari

Alberto Ferrari – Informatica

(20)

A. Ferrari

top down e bottom up

o i modelli top-down e bottom-up (dall'alto verso il basso e dal basso verso l'alto) sono strategie di elaborazione

dell'informazione e di gestione delle conoscenze, riguardanti principalmente il software …

o nel modello top-down è formulata una visione generale del sistema senza scendere nel dettaglio di alcuna delle sue parti

o ogni parte del sistema è successivamente rifinita aggiungendo maggiori dettagli dalla progettazione

o nella progettazione bottom-up parti individuali del sistema sono specificate in dettaglio

o queste parti vengono poi connesse tra loro in modo da formare componenti più grandi, che vengono a loro volta interconnessi fino a realizzare un

sistema completo

Wikipedia

Alberto Ferrari – Informatica

Riferimenti

Documenti correlati

[r]

Il parametro formale acquisisce il valore del parametro attuale il parametro attuale può essere un’espressione senza indirizzo può essere di tipo diverso compatibile =⇒

Definizione di ordine di infinito/infinitesimo di una funzione rispetto ad una funzione campione g in

[r]

19.16 Considerata una popolazione in cui la variabile di interesse ha varianza  2 nota, per ottenere l’intervallo di confidenza di  occorre correggere  2 utilizzando il

di Poisson di

14.. sono punti di discontinuit`a eliminabile. a)La funzione f ha due punti angolosi in x = ±1, come si vede facilmente anche disegnandone il grafico... Si pu`o quindi applicare

- Si passa un puntatore anziché il suo valore - questo viene copiato nel parametro formale - si può modifcare il valore nella cella puntata Esempio!. void foo(int *a)