[Impariamo a programmare] Le funzioni e le procedure

Buonpomeriggio ragazzi, ribadiamo quando detto fin’ora allora, sia le funzioni che le procedure sono dei sottoprogrammi, ma vediamo come usarli nel linguaggio e di programmazione C.

linguaggioC

Questi sottoprogrammi sono costituiti da un insieme di istruzioni, ma la differenza fra le funzioni e le procedure e che mentre nella funzione dopo aver eseguito le istruzioni restituisce un valore al programma chiamante nelle procedure non restituisce alcun valore, ma vediamo come si traduce questo nel linguaggio di programmazione, abbiamo detto che sia nella procedura che nella funzione bisogna assegnare un nome simbolico scegliamo per esempio ‘calcolo’.

calcolo

Vediamo un esempio con il sottoprogramma che fa la somma di 2 numeri, questo sottoprogramma dovrà in qualche modo comunicare con il programma chiamante, usando i parametri attuali ed i parametri formali. I parametri si scrivono tra le 2 parentesi tonde, sono dei metodi per comunicare con il programma chiamante, effettivamente per poter realizzare il programma e per fare la somma di 2 numeri  abbiamo bisogno appunto di 2 numeri, ma attualmente non conosciamo i numeri sui quali fare la somma quindi siccome non li conosciamo, possiamo dire che accetterà 2 numeri interi, li chiameremo a e b, quindi tra le parentesi tonde scriveremo:

int

All’interno delle parentesi graffe dichiareremo una variabile somma inizializzandola a zero, poi scriveremo che somma è uguale ad a + b, a somma verrà assegnato il valore che a assumerà quando il programma chiamante gli passerà il numero vero è proprio più il valore di b che conterrà un numero quando il programma chiamante passerà un altro numero vero e proprio, nelle funzioni si utilizza la parole chiave return che serve per far capire al compilatore quale sia il risultato che vogliamo far restituire  nel nostro caso la variabile somma, o per meglio dire il contenuto della variabile somma.

content

Passiamo adesso al programma principale lasciando stare un attimo il sottoprogramma al momento. la parola chiave return zero; sarà il valore che la funzione main deve restituire al programma chiamante, nel linguaggio di programmazione C la parola chiave main è standard, e serve per far capire al compilatore che quando deve iniziare l’esecuzione di un programma deve partire esattamente da questa funzione, inoltre nel linguaggio di programmazione C tutti i sottoprogrammi sono di tipo funzione, nel senso che non esistono sottoprogrammi di tipo procedurale, anche se esisterebbe un modo per simulare una procedura facendo capire al compilatore che il nome simbolico che conterrà appunto delle istruzioni non restituirà niente al programma chiamante, la parole chiave che si usa anziché scrivere int si scrive void, void indica al compilatore che il nome simbolico calcolo che verrà chiamato nel programma chiamante non restituirà niente, solo in questo caso si può simulare una procedura, nella funzione possiamo scrivere chiamando il programma principale cosi:

calc

quando il compilatore eseguirà l’istruzione calcolo, passa al sottoprogramma i parametri attuali (i numeri veri e propri per fare la somma di a e b) questa istruzione produrrà un valore,questo valore bisogna assegnarlo ad un altra variabile, scriviamo: int c = 0; e scriviamo: c = calcolo(1,2); a c deve assegnare il valore calcolato dal sottoprogramma.

calco

Prima di poter eseguire il programma quando il compilatore inizia la sua esecuzione partirà dalla funzione main, ma per tutti i sottoprogrammi che andremo a scrivere non conosce quali siano giustamente i sottoprogrammi che sono stati scritti dal programmatore, quindi andrà in errore, non sa l’esistenza del sottoprogramma calcolo, è necessario che tutti i sottoprogrammi vengano scritti prima della funzione main.

inverte

Si può fare anche in un altro modo, torniamo a come avevamo scritto prima, ma prima della funzione main possiamo scrivere il prototipo di funzione o di procedura.

calcoli

Posso dire al compilatore, prima che inizi l’esecuzione,  quali sottoprogrammi devi definire, in questo caso int restituisce un valore intero che si chiama calcolo ed accetta due numeri interi. Abbiamo detto che il comando return serve a restituire un valore, in questo caso zero, alla funzione main, questo programma comunica con il sistema operativo, restituire un valore zero alla funzione main significa che l’esecuzione del programma viene terminata con successo. Le procedure sono esattamente uguali alle funzioni, soltanto che a differenza delle funzioni utilizza un altro tipo di dato, il void.

void

Queste istruzioni composte da una serie di istruzioni non restituirà nulla al programma chiamante, naturalmente non è necessario che il nome  della funzione procedura debba prendere in input dei valori, e possibile o cancellarli o scrivere void all’interno delle parentesi tonde:

return

Bisogna cambiare pure il prototipo calcolo in:

voiddd

in questo caso non ha più senso nemmeno assegnare una variabile per l’istruzione calcolo non contenendo alcun valore, cancelliamo anche la dichiarazione della variabile e tutte le altre istruzioni connesse ad esse.

 

void

 

Possiamo anche fare in modo che la funzione principale chiamata main non debba restituire un valore intero al sistema operativo, e possiamo scrivere anche qui void e togliere anche return o;

 

voidd

 

abbiamo simulato due procedure con il linguaggio di programmazione C naturalmente queste due operazioni non hanno alcun senso in questo contesto. Nelle prossime lezioni vedremo di utilizzare meglio tali istruzioni.

Per oggi è tutto ragazzi alla prossima.

(Visited 264 times, 1 visits today)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *