CHI SIAMO

CONTATTI

SEZIONI
INTRODUZIONE
LE FASI
LE STRUTTURE
GLI OGGETTI

Coding

Che cos'è il coding?

Il coding (dall'inglese:"codifica") è la fase della programmazione che consente al programmatore di codificare il linguaggio comune degli algoritmi in linguaggio di programmazione.

Qual è l'importanza del coding?

Il coding consente all'uomo di risolvere problemi molto complessi in modo più semplice e in chiave algoritmica. Quindi ci permette di automatizzare una qualsivoglia azione della nostra vita; dal più banale esempio di somma tra due numeri alla programmazione dei nostri smartphone ormai divenuti indispensabili con i quali è possibile fare qualsiasi azione. Programmare inoltre è sinonimo anche di divertimento, basti pensare ai moderni giochi che sono il vero fiore all’ occhiello della codifica.

Storia del coding

Agli inizi degli anni '40 non vi era modo di programmare calcolatori con linguaggi diversi da quelli macchina, ovvero il linguaggio binario. Solo agli inizi del 1950 nascono i primi linguaggi di programmazione che partivano da semplici azioni procedurali per poi arrivare a strutture di controllo (sequenza, selezione e iterazione), programmazione strutturata e programmazione ad oggetti con linguaggi che si avvicinano sempre più a quello umano.

Fondamento del coding

Il coding si basa su una struttura logica fondamentale definita algoritmo. L’algoritmo è un insieme finito e ordinato di istruzioni che ci consentono di risolvere un problema. Esso si basa sull’interazione fra dati forniti dall’utente (input) ed operazioni che consentono di giungere a risultati finali (output).

Fasi della programmazione

La programmazione può essere suddivisa in quattro fasi fondamentali:
analisi, descrizione del problema ed individuazione dei dati di input ed output e delle relazioni esistenti tra questi;
progettazione, stesura dell’algoritmo risolutivo;
programmazione, implementazione dell’algoritmo in linguaggio di programmazione;
test, prove di esecuzione del programma e rimozione di eventuali errori.

Linguaggi

I linguaggi di codifica consentono al programmatore di scrivere parti di codice in un linguaggio artificiale simile a quello umano per poi renderlo eseguibile alla macchina grazie ad una traduzione automatica in linguaggio binario. Nella programmazione possiamo distinguere due tipi di linguaggio:
• di alto livello, facilmente comprensibili dagli esseri umani e generalmente comprendenti comandi (istruzioni) in lingua inglese che sono tradotti automaticamente in linguaggio macchina (binario);
• di basso livello, meno comprensibili dagli esseri umani, con comandi elementari facilmente traducibili in linguaggio macchina (binario) ed eseguibili dal processore.
I linguaggi si distinguono in:
• linguaggi di programmazione, che consente di eseguire delle azioni di controllo tramite le strutture di controllo come ad esempio il C++;
• linguaggi di formattazione, utile per definire la struttura grafica di un documento ipermediale come ad esempio l’Html.

Programmazione Strutturata

La programmazione strutturata si basa sulle tre strutture di controllo. Queste sono dei costrutti fondamentali che ci permettono di far eseguire il nostro codice, creando istruzioni più complesse mediante l’associazione di istruzioni più semplici. Si dividono in: sequenza, selezione, iterazione.

SEQUENZA

La sequenza è il costrutto fondamentale di ogni linguaggio di programmazione che consente di scegliere l’ordine con il quale si vogliono eseguire le diverse istruzione all’interno dell’algoritmo. Viene esplicitata nel seguente modo:

istruzione 1
istruzione 2
istruzione 3
ecc…

Qui di seguito è mostrato l'esempio di una sequenza di istruzioni (come in una ricetta):

Mescolate elettrica le uova con lo zucchero.
Aggiungete il latte, l'olio.
Unite la farina.
ecc…

SELEZIONE

La selezione consente alla macchina di far eseguire una determinata istruzione solo al presentarsi di specifiche condizioni. Tra le più semplici forme di alternativa trovi la cosiddetta if-then-else specificata nella seguente forma:

if (condizione) then
   istruzione 1
else
   istruzione 2

Qui di seguto è mostrato l'esempio di una selezione (controllo età di un maggiorenne)

se(età > 18) allora
   il ragazzo è maggiorenne
altrimenti
   il ragazzo è minorenne

ITERAZIONE

La struttura di iterazione, anche definita ciclo, consente ad un’azione o ad un blocco di istruzioni di essere ripetute più volte. Abbiamo tre tipi di cicli fondamentali : precondizionale, postcondizionale e ciclo enumerativo.

CICLI PRE/POST CONDIZIONALE

Ciclo con il quale vengono ripetute determinate azioni solo al verificarsi di condizioni stabilite dal programmatore. Ne abbiamo due tipi: il pre e il post condizionale. Il primo noto come while con la condizione in testa, viene eseguito solo al verificarsi della condizione iniziale; mentre il secondo detto anche do-while con la condizione in coda, viene eseguito almeno una volta prima di effettuare il controllo.

WHILE

while (condizione) do {
   istruzione
}

DO WHILE

do{
   istruzione
}while(condizione)

Qui di seguito è mestrato l'esempio per il controllo password prima con un ciclo PRE e poi POST CONDIZIONALE

mentre(valore = password){
   benvenuto nel tuo profilo!
}

esegui{
   inserisci password
mentre (valore != password)}

NOTA! Il simbolo != indica "diverso".

CICLO FOR

Ciclo mediante il quale è possibile ripetere delle azioni per un numero finito di volte grazie all’integrazione nello stesso di un contatore.

for(i=val. iniz. a val. fin., step) esegui{
   istruzione
}

Qui di seguito è mostrato l'esempio per il calcolo della media di n numeri

per (i=1 a i= n ,i+1)esegui{
   inserisci numero
   somma=numero+somma
}
media=somma/n

Programmazione ad oggetti

La programmazione a oggetti (OOP, Object Oriented Programming), che nasce verso la fine degli anni ’80 come superamento della programmazione procedurale, ha portato ad una vera e propria rivoluzione informatica ed è basata sull’interazione di oggetti. Ente fondamentale di questo nuovo modo di programmare è la classe, che non è altro che lo schema di base dal quale si possono creare i singoli oggetti. Gli oggetti infatti sono delle istanze di una classe e sono identificati da caratteristiche (attributi) e funzionalità (metodi). Le tre caratteristiche fondamentali di questo paradigma di programmazione sono:
• incapsulamento,
• ereditarietà,
• polimorfismo.
L’incapsulamento (information hiding) è la proprietà che consente di nascondere l’implementazione del codice di un oggetto e rendere disponibili all’utente solo le funzionalità. Una sorta di scatola nera di cui se ne conoscono le funzioni ma non si sa come sono state svolte.
L’ereditarietà è quella caratteristica che consente di creare una gerarchia di classi partendo da classi base preesistenti per poi specializzarne il contenuto in classi derivate.
Il polimorfismo è la possibilità di un metodo di agire su oggetti diversi definendo il suo comportamento a seconda dell’oggetto su cui agisce. Questi strumenti ci permettono di realizzare programmi modulari di buona qualità, di dimensioni ridotte, riutilizzabili e di facile manutenzione.
Una classe viene definita nel seguente modo:

nome classe{
attributo 1
attributo 2
metodo1()
metodo 2()}

Qui di seguito è mostrato l'esempio di una classe "automobile"

auto{
modello
cilindrata
colore
avvia()
spegni()
cambia marcia()}