• Non ci sono risultati.

Ripetizioni di segmenti di codice•Spesso è necessario ripetere più volteuno stesso segmento dell'algoritmo(e.g. I/O, elaborazioni dati)•Esistono due possibilità:

N/A
N/A
Protected

Academic year: 2021

Condividi "Ripetizioni di segmenti di codice•Spesso è necessario ripetere più volteuno stesso segmento dell'algoritmo(e.g. I/O, elaborazioni dati)•Esistono due possibilità:"

Copied!
2
0
0

Testo completo

(1)

1

Elementi di Informatica 1

Ripetizioni di segmenti di codice

• Spesso è necessario ripetere più volte uno stesso segmento dell'algoritmo (e.g. I/O, elaborazioni dati)

• Esistono due possibilità:

– Macro – Procedure

Elementi di Informatica 2

Le macro

• Una macro è definita come un insieme di istruzioni (o blocco)

• Queste vengono sostituite all'interno del codice

• Servono per rendere più leggibile il codice e per facilitarne la modifica coerente

• #define MAX(a,b) (a>b ? a : b)

Elementi di Informatica 3

Le procedure

• Una procedura è definita come un insieme di istruzioni (o blocco)

• Il controllo del flusso passa alla

procedura ogni volta che viene invocata

• E' necessario un meccanismo per ritornare al punto chiamante

• Utilizzo dello stack (Stack Pointer)

Elementi di Informatica 4

Procedure e funzioni

• La ripetizione di un segmento di codice può avere due obiettivi:

– ripetere la stessa sequenza di operazioni – calcolare diversi valori, partendo da

parametri diversi

• La differenza principale è:

– la procedura non ritorna nessun valore – la funzione ritorna un valore (ad es void)

Elementi di Informatica 5

Passaggio dei parametri

• Ogni procedura/funzione generalmente richiede un insieme di dati

• I dati devono essere accessibili:

– in variabili globali

– oppure sotto forma di parametri

• I parametri sono dati che vengono utilizzati dalla procedura; ad ogni chiamata possono assumere valori diversi

Elementi di Informatica 6

Passaggio dei parametri

• I parametri possono essere passati in modi diversi:

– per valore

vengono effettuate delle copie dei valori;

le copie sono usate dalla procedura che può anche modificarne il valore – per riferimento

si passa il puntatore alle variabili; i valori possono essere modificati dalla procedura

(2)

2

Elementi di Informatica 7

Side effects

• Se il passaggio dei parametri avviene per valore, l'effetto della procedura è limitato al valore che ritorna

• Se i parametri sono passati per riferimento, la procedura può avere effetti collaterali (side effects)

– è un modo per far in modo che la procedura ritorni più di un valore

Elementi di Informatica 8

Le procedure

• Annidamento:

in una procedura può essere contenuta un'altra chiamata a procedura

• Limite sulla dimensione dello stack

Elementi di Informatica 9

Le procedure

• Ricorsione:

all'interno di una procedura avviene una chiamata alla procedura stessa

• Limite sulla dimensione dello stack

• Molti algoritmi sono basati sulla ricorsione

Elementi di Informatica 10

La ricorsione

• Esempi:

– somma di N dati – calcolo del fattoriale

– calcolo dei primi N numeri primi – visita di un albero

Riferimenti

Documenti correlati

Dati due segmenti : AB e CD costruire la loro somma comporta trasportare i due Dati due segmenti : AB e CD costruire la loro somma comporta trasportare i due. segmenti su una

Dal punto di vista informatico si tratta di utilizzare una variabile (nell’esempio potrebbe essere rappresentata dal totalizzatore di cassa) che viene aggiornata

Nelle liste richieste occorre elencare le sigle delle regole nell’ordine che corrisponde alla se- quenza di applicazione: la prima (a sinistra) della lista deve essere la sigla

La lista associata a un (ben preciso) procedimento si costruisce quindi per passi successivi a partire dal primo elemento che è la sigla della prima regola da applicare; ad ogni

La lista associata a un (ben preciso) procedimento si costruisce quindi per passi successivi a partire dal primo elemento che è la sigla della prima regola da applicare; ad ogni

Nelle liste richieste occorre elencare le sigle delle regole nell’ordine che corrisponde alla se- quenza di applicazione: la prima (a sinistra) della lista deve essere la sigla

La lista associata a un (ben preciso) procedimento si costruisce quindi per passi successivi a partire dal primo elemento che è la sigla della prima regola da applicare; ad ogni

Nelle liste richieste le sigle delle regole sono elencate nell’ordine che corrisponde alla sequenza di applicazione: la prima (a sinistra) della lista deve essere la sigla