Press "Enter" to skip to content

Pseudocodice e codice: qual’è la differenza e quale usare?

Che cos’è esattamente lo pseudocodice? E perché dovrebbe interessarmi?

Lo pseudocodice è un modo di scrivere programmi per computer utilizzando il linguaggio umano invece di linguaggi di programmazione come C++ o Java. L’idea alla base è quella di consentire ai programmatori di scrivere il proprio codice in un linguaggio semplice, che lo renda più veloce da scrivere e più facile da leggere e capire.

Lo pseudocodice è un ottimo strumento per i principianti che vogliono iniziare ad entrare nel campo della programmazione senza dover passare ore ad imparare un nuovo linguaggio di programmazione. Una volta imparate le basi, possono passare al passaggio successivo ovvero iniziare a creare applicazioni reali.

Cos’è lo pseudocodice?

Come abbiamo accennato nell’introduzione lo pseudocodice è un modo usato solitamente per descrivere programmi informatici, ma applicabile anche ad altri tipi di algoritmi, attraverso l’uso di un linguaggio umano.

Un programma scritto in pseudocodice non è effettivamente eseguibile da alcun sistema informatico. Viene semplicemente utilizzato per descrivere i passaggi necessari per risolvere un problema. Questo aiuta a visualizzare velocemente la soluzione prima di codificarla.

Scrivere uno pseudocodice ci consente di pensare alle nostre idee in modo più chiaro e logico. Quando cerchiamo di risolvere un problema, spesso ci troviamo alle prese con la sintassi di un particolare linguaggio di programmazione. In questo caso, liberarci dai vincoli delle regole di sintassi ci aiuta a vedere le cose da una prospettiva diversa.

Definizione di algoritmo

Un algoritmo, termine di cui abbiamo già parlato a fondo nella pagina dedicata, è un insieme di istruzioni che indicano come eseguire un’attività. Il primo passaggio nella soluzione di un problema in informatica è spesso quello di individuare un procedimento che riesca a risolverlo. Lo pseudocodice è spesso il modo più veloce per procedere durante la fase di analisi e definizione della struttura dell’algoritmo. 

Perché dovrei usare lo pseudocodice?

Ci sono molte ragioni per cui potresti voler utilizzare uno pseudolinguaggio per aiutarti a progettare la tua applicazione. Come accennato in precedenza, uno di questi è essere in grado di visualizzare facilmente la soluzione a un determinato problema. Un altro motivo è assicurarsi di aver compreso ogni aspetto del problema prima di andare avanti. Utilizzando qualcosa di simile ad un listato di codice ma senza i vincoli imposti da un linguaggio di programmazione, sarà infatti più semplice individuare quali sono le operazioni da fare, gli input necessari e le condizioni di esecuzione dell’algoritmo.

Ogni istruzione in questo caso sarà scritta in un linguaggio più vicino alla lingua comune, e questo farà si che l’algoritmo sia più facile da interpretare e modificare rispetto ad un codice di programmazione reale. 

Quando dovrei usare lo pseudocodice rispetto al codice?

Se hai appena iniziato a programmare, puoi scegliere di utilizzare lo pseudocodice finché non ti senti abbastanza sicuro da creare il tuo codice o finché non avrai acquisito la giusta conoscenza della sintassi del linguaggio che hai scelto.

Puoi anche usare lo pseudocodice se stai lavorando ad un progetto in cui devi comunicare con altre persone. Ad esempio, quando stai sviluppando un algoritmo per risolvere un problema, potresti preferire spiegare a qualcuno il concetto in maniera più astratta piuttosto che mostrargli il codice.

D’altra parte, se stai lavorando su qualcosa di molto complesso, utilizzare uno pseudolinguaggio può aiutare a scomporre tutto in istruzioni elementari.

Un’alternativa utilizzabile in una fase preliminare dell’attività di programmazione è quella di utilizzare i diagrammi di flusso. Questi diagrammi rappresentano una visione ancora più astratta dal vero codice di programmazione, ma spesso sono una buona alternativa per avere una rappresentazione visuale dell’algoritmo. Rappresentare un programma con un diagramma di flusso può essere un’ottima soluzione in caso di scrittura di algoritmi particolarmente densi di condizioni, cicli ed altre strutture che potrebbero essere poco chiare con una rappresentazione meramente testuale.

Come creiamo lo pseudocodice?

Esistono molti modi per creare uno pseudocodice. Puoi digitarlo manualmente in un editor, disegnarlo su carta o scriverlo su una lavagna. In ogni caso la via migliore è quella di scrivere ogni istruzione in linguaggio umano, senza curarci dei dettagli legati alla sintassi di un linguaggio di programmazione specifico. Se l’obiettivo è quello di trasformare quello che stiamo scrivendo in un programma, può essere d’aiuto utilizzare alcune delle convenzioni di programmazione come l’indentazione e l’uso delle parentesi (solitamente graffe) per racchiudere un blocco o una porzione di codice. Queste convenzioni ci aiuteranno ad incrementare la leggibilità del programma e la successiva traduzione in codice.

Non trattandosi di un vero programma, non avremo vincoli, potremo decidere di descrivere l’algoritmo ad alto livello, omettendo i particolari, oppure di andare a fondo e descrivere tutto in maniera molto simile al codice effettivo che andremo a scrivere. Potremo anche fare un mix di queste due strategie, e scrivere alcune sezioni di pseudocodice in maniera più dettagliata ed altre in maniera meno dettagliata magari omettendo di approfondire un’istruzione di cui conosciamo i dettagli implementativi.

Ricordiamoci in ogni caso che, se qualcuno dovrà leggere ciò che stiamo scrivendo, dovremo scrivere in maniera facilmente comprensibile a tutti e non solamente a noi.

Disegnare i diagrammi di flusso prima dello pseudocodice?

Se l’algoritmo che ci accingiamo a scrivere è particolarmente complesso possiamo seguire l’intero processo a partire dalla definizione di un diagramma di flusso che ci dia una visuale d’insieme.

Il diagramma di flusso semplifica infatti la progettazione iniziale, rendendo più intuitivi da vedere ad esempio costrutti come i loop o le istruzioni condizionali. Da questo diagramma è spesso anche più facile individuare quali sono gli input e le risposte dell’algoritmo.

A partire dal diagramma si può poi passare alla codifica in pseudocodice, che ci permetterà di avvicinarci al risultato finale ma mantenendo comunque un linguaggio umano. In alcuni casi potrebbe essere necessario scrivere solamente alcune porzioni di codice più complesse, che si vuole approfondire maggiormente, e lasciare il resto descritto solamente dai diagrammi di flusso.

Da questo punto potremo poi procedere a codificare ogni sequenza di passaggi nel codice effettivo del nostro programma.

Esempi di algoritmo in pseudocodice

Vediamo qualche esempio:

Contare in una lista

Come primo esempio possiamo pensare ad un algoritmo che, a partire da una lista di voti di un esame universitario, conti il numero di promossi e il numero di bocciati. Possiamo descrivere il procedimento ad un livello abbastanza alto:

per ogni elemento della lista{
  se elemento<18 incrementa bocciati
  altrimenti incrementa promossi
}
mostra bocciati
mostra promossi

Come si può facilmente notare, in questo frammento non abbiamo utilizzato quasi nessun dettaglio implementativo o di sintassi, abbiamo semplicemente descritto quali sono i passi da eseguire a grandi linee.

Lo stesso procedimento può essere riscritto utilizzando uno pseudolinguaggio un po’ più vicino ad un linguaggio di programmazione:

for each elemento in lista{
  if(elemento<18) bocciati++
  else promossi++
}
print(bocciati)
print(promossi)

In questo caso abbiamo introdotto alcuni comandi di programmazione un po’ più specifici, ma comunque senza legarci alla sintassi di un linguaggio specifico.

Abbiamo ad esempio descritto il loop in maniera piuttosto generica, e utilizzato l’istruzione if nella sua forma più comune nella maggior parte dei linguaggi.

Da questo punto sarà abbastanza semplice adattare ciò che abbiamo prodotto ad uno specifico linguaggio.

Rappresentazione in java dello pseudocodice visto nell'esempio
Rappresentazione in java dello pseudocodice visto nell’esempio

Ricerca di una stringa in una lista

Possiamo provare a dare una rappresentazione in pseudocodice del problema che abbiamo visto come esempio nella pagina dedicata alla definizione di algoritmo. Si trattava di cercare una stringa ricevuta in input all’interno di una lista di stringhe.

input: lista, parola
for each elemento in lista{
  if(elemento è uguale a parola) ritorna vero
}
ritorna falso

In questo caso abbiamo fondamentalmente creato una funzione scritta in pseudocodice che poi potremo facilmente convertire in un pezzo di codice da inserire all’interno di un programma più grande.

Rappresentazione java della funzione definita nell'esempio
Rappresentazione java della funzione definita nell’esempio

Conclusioni

In conclusione, lo pseudocodice è un ottimo strumento per scrivere idee in modo rapido e semplice. Offre infatti un modo di rappresentare un algoritmo in maniera personalizzata e flessibile. Il codice è lo strumento da utilizzare quando è necessario implementare effettivamente tali idee.

Lascia un commento

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