[Impariamo a programmare] I sottoprogrammi, l’astrazione funzionale e l’astrazione procedurale.

Salve ragazzi, oggi parleremo, in linea teorica, di concetti fondamentali per quanto riguarda la programmazione.

linguaggioC

 

Gli argomenti che tratteremo oggi sono:

  • Sottoprogrammi
  • Astrazione funzionale
  • Astrazione procedurale

Sono concetti che vengono usati nella programmazione, e sono molto importanti, ma che cosa si intende per sottoprogrammi?

Tutti i linguaggi di programmazione oggi esistenti forniscono dei costrutti per creare questi sottoprogrammi dando loro un nome, definiamo questi sottoprogrammi, essi sono un insieme di istruzioni che svolgono delle attività ed a questo insieme di istruzioni è dato un nome, quando si vuole all’interno del linguaggio di programmazione richiamare questo insieme di istruzioni basta richiamare il nome che il programmatore a scelto per identificare questo gruppo di istruzioni.

Un esempio può essere un programma che inserisce  dati di clienti tipo nome, cognome data di nascita ecc… e poi esiste un sottoprogramma che ci calcola il codice fiscale e restituisce il codice fiscale calcolato, sicuramente per il calcolo  del codice fiscale esisteranno una serie di istruzioni che cercheranno di calcolarlo,questa serie di istruzioni a un nome, quando vogliamo che venga eseguito basta richiamare il nome ( per esempio codicefiscale ) che il programmatore a scelto per identificare il sottoprogramma.

I linguaggi di programmazione forniscono dei costrutti per creare questi sottoprogrammi ed inoltre permettono di attivare questi sottoprogrammi con una modalità di comunicazione tra il chiamante (programma principale) ed il chiamato (sottoprogramma).

Vediamo allora il concetto di astrazione funzionale e procedurale:

Per astrazione funzionale si intende che, mediante il sottoprogramma è possibile ampliare sia operatori che istruzioni, possiamo creare anche altri operatori che possono servire in operazioni tra dati o permettere di ampliare le istruzioni volendo.

I sottoprogrammi sono di 2 tipi, dette funzioni o procedure.

Nelle funzioni il programma principale nell’esempio dato sopra ci permette di inserire nome cognome data di nascita ecc… e poi abbiamo il sottoprogramma che ci restituisce il risultato sulla base dei dati da noi inseriti.

Nelle procedure a differenza delle funzioni ci permette di salvare i dati inseriti, all’interno di un file o di un database.

l’astrazione funzionale descrive allora le attività relative al problema (in generale appunto un sottoproblema) come fossero una funzione, inteso nella sua accezione matematica, infatti una funzione fa corrispondere ad uno o più dati di input un insieme ben definito di valori di output, restituendo uno ed un solo valore appartenente a tale insieme.

Un esempio in una funzione chiamata f questa funzione prende in input un valore che lo identifichiamo con x e calcola il quadrato di questo valore restituendo appunto un risultato. Un sottoprogramma di tipo funzione ci consente di costruire una funzione matematica:

Prendendo sempre come esempio il nostro programmino principale, per calcolare il sottoprogramma codice fiscale fa uso di un algoritmo ben noto, il risultato viene restituito al programma principale, e un po quello che accade in matematica noi forniamo un valore preso in un certo insieme ad una funzione che si denota generalmente con il simbolo f  poniamo un dato che nel nostro caso x è questa funzione f ci calcola il quadrato di questo valore x e ci restituisce un risultato, e quindi la funzione matematica associa ad uno o più valori del dominio d di input un valore del dominio del risultato cioè il codominio che lo chiamiamo c.

Nell’esempio, f chiamata funzione radice quadrata, dobbiamo dare un  input, in questo caso un valore preso da un insieme di numeri reali che costituisce il dominio della funzione, e questa funzione f calcolerà la radice quadrata di questo numero e ci restituirà un valore presente all’interno dell’insieme dei numeri reali, questo insieme viene chiamato codominio.

dominio

L’astrazione procedurale invece definisce, tramite una specifica,  un’operazione complessa su dati generici (o parametri), in pratica è un sottoprogramma che fa delle operazioni, come ad esempio lo scambio di valori di due variabili, l’ordinamento di un vettore (parleremo di vettori nelle prossime lezioni) o la rimozione di duplicati all’interno di un vettore,

una procedura si differenzia dalla funzione perché non restituisce obbligatoriamente un valore scalare (cioè un risultato), può in genere avere diverse implementazioni, che rispettino la specifica,

quando si parla di astrazione funzionale e astrazione procedurale si parla di specifica, che è la descrizione di “che cosa” esegue il sottoprogramma indipendentemente dal “come” questo sottoprogramma viene eseguito (per esempio come una specie di documentazione quando si scrivono una procedura o una funzione),in pratica la specifica di una funzione o procedura consente di ignorare l’algoritmo “incapsulato” nel sottoprogramma stesso,

sia la funzione che la procedura comunicano con il programma principale oppure possono comunicare con altre procedure o con altre funzioni, proprio mediante parametri (dati che sono necessari affinché  se si parla di funzioni appunto sono quei dati di input che vengono forniti al nome della funzione per fare dei calcoli ed ottenere alla fine un risultato di output, nel nostro caso i parametri formali erano i dati (nome, cognome, data di nascita, ecc…) che vengono forniti alla funzione codicefiscale, mentre i parametri attuali sono quelli che vengono usati nella funzione per il vero e proprio calcolo del codice fiscale.

Quando si programma generalmente si scrivono anche dei sottoprogrammi rispetto al programma principale, questi sottoprogrammi generalmente ampliano l’insieme degli operatori e delle istruzioni.

Spero di aver spiegato gli argomenti nel modo più semplice possibile, voglio rendere accessibile a tutti le basi della programmazione cercando di non usare termini troppo complicati e snervanti per chi, come me, è alle prime armi, per oggi è tutto ragazzi, alla prossima.

(Visited 289 times, 1 visits today)

Lascia un commento

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