RISOLUZIONE DEI PROBLEMI

Per risolvere un problema si deve fare in modo che siano specificati almeno 3 elementi:

INPUT: i dati conosciuti

OUTPUT: i risultati che si vogliono ottenere

ALGORITMO: processo risolutivo

Se il problema risulta molto complesso risulta necessario ridurlo in sotto problemi.

Il computer può essere visto come un sistema che riceve in ingresso i dati del problema e mediante una serie di operazione, fornisce in uscita i risultati voluti.

GLI ALGORITMI

Se ad esempio vogliamo vedere un film usando il nostro videoregistratore, dovremo compiere alcune azioni elementari:

– ACCENDERE IL TELEVISORE 

– INSERIRE LA CASSETTA NEL VIDEO REGISTRATORE  

– SINTONIZZARE IL TELEVISORE SUL CANALE DEL VIDEOREGISTRATORE 

– PREMERE IL PULSANTE “PLAY” DEL VIDEOREGISTRATORE

Diamo quindi una prima definizione di algoritmo: una sequenza di passi che devono essere eseguiti secondo secondo un ordine prefissato per raggiungere il risultato voluto. Altri esempi di risoluzioni possono essere le istruzioni di un videogioco. 

Per costruire in modo corretto un algoritmo è importante avere ben chiaro qual è l’obbiettivo da raggiungere, cioè il risultato da ottenere (dati di output) e quali sono le informazioni di partenza, cioè i dati del problema.

Solo quando è chiaro l’ obbiettivo da raggiungere (dati di output) e sono a disposizione tutte le informazioni di partenza (dati di input) è possibile definire un algoritmo.

Ma la strategia di risoluzione cambia in funzione dei dati che prendiamo in considerazione ( cioè in funzione dei dati di input), perciò sono possibili diversi algoritmi che risolvono lo stesso problema.

Per essere ben costruito, un algoritmo deve essere:

  • finito: l’algoritmo deve essere composto da un numero finito di passi e devono essere eseguiti un numero finito di volte;
  • deterministico: l’algoritmo a seguito degli stessi input deve sempre produrre gli stessi output;
  • non ambiguo: i singoli passi dell’ algoritmo devono essere interpretabili in modo univoco da ogni esecutore;
  • Generale: l’algoritmo deve fornire una soluzione per tutti i problemi appartenenti a una certa classe.

Quindi un algoritmo può essere visto come un insieme finito passi elementari che permettono di risolvere tutti i problemi di una determinata classe. Inoltre le componenti di un algoritmo sono i dati, e le istruzioni da eseguire.