martedì 21 settembre 2010

Informatica-Esecutori e algoritmi

L'informatica, cioè l'informazione automatica, è lo studio di algoritmi che descrivono e trasformano l'informazione.
Gli algoritmi sono un insieme di istruzioni necessarie a risolvere un problema.
Un algoritmo deve essere eseguito da un esecutore, cioè da colui che segue le istruzioni di un dato algoritmo.
Un esecutore, quindi, non sa fare altro che eseguire le istruzioni date dal programmatore.
Dato un problema non è detto che ci sia una sola soluzione, sta a noi stabilire quella migliore, a seconda del numero di istruzioni e delle risorse disponibili.
Un esempio pratico, al di fuori dell'ambito informatico, è la cottura della pasta; un esecutore dotato di intelligenza saprebbe eseguire l'operazione senza la necessità di ulteriori istruzioni, ma un esecutore ideale (che imiti il comportamento di un calcolatore) ha bisogno di seguire un algoritmo e di avere alcune informazioni.
Le informazioni necessarie potrebbero essere:
  • Quantità di acqua necessaria alla cottura
  • Quantità di sale 
  • Quantità di pasta da cuocere
  • Tempo di cottura
Un possibile algoritmo è il seguente:
  1. Prendi una pentola
  2. Metti 1 litro di acqua nella pentola
  3. Metti 5 g di sale nell'acqua
  4. Accendi il fornello
  5. Metti la pentola sul fornello
  6. Attendi che l'acqua abbia raggiunto i 100°
  7. Metti 500 g di pasta nell'acqua
  8. Attendi 10 minuti
  9. Spegni il fornello
  10. Scolare l'acqua di cottura
Questo algoritmo potrebbe non essere il miglior metodo di risoluzione del problema, ma è certamente un metodo funzionante, perché le istruzioni rispettano le 4 proprietà fondamentali degli algoritmi:
  1. Le istruzioni devono essere finite
  2. Le istruzioni devono essere eseguibili
  3. Le istruzioni devono portare ad un risultato
  4. Le istruzioni non devono essere ambigue
Ci sono inoltre 2 errori da non compiere, perché il nostro algoritmo porti al risultato desiderato: gli errori di sintassi, e gli errori di semantica.
L'errore di sintassi si verifica quando sbagliamo la forma dell'istruzione, cioè non rispettiamo la sintassi stabilita dal linguaggio in uso; nel nostro caso abbiamo usato l'italiano e un errore di sintassi consisterebbe in un errore grammaticale, per cui l'algoritmo non verrebbe eseguito.
ES. egni il fornello  Questa istruzione è incomprensibile perché non corretta grammaticalmente

L'errore di  semantica è più difficile da individuare, perché si verifica quando è sbagliato il significato dell'istruzione, che resta eseguibile, ma non porta al risultato desiderato.
ES. 
  1. Prendi una pentola
  2. Metti 1 litro di acqua nella pentola
  3. Metti 5 g di sale nell'acqua
  4. Spegni il fornello      Questa operazione è eseguibile, ma l'algoritmo non porterà al risultato
  5. Metti la pentola sul fornello
  6. Attendi che l'acqua abbia raggiunto i 100°
  7. Metti 500 g di pasta nell'acqua
  8. Attendi 10 minuti
  9. Spegni il fornello
  10. Scolare l'acqua di cottura

Nessun commento:

Posta un commento