Algoritmi e diagrammi di flusso - ENEAGRID ·  · 2016-10-06Microsoft Word - Algoritmi e diagrammi...

5

Click here to load reader

Transcript of Algoritmi e diagrammi di flusso - ENEAGRID ·  · 2016-10-06Microsoft Word - Algoritmi e diagrammi...

Page 1: Algoritmi e diagrammi di flusso - ENEAGRID ·  · 2016-10-06Microsoft Word - Algoritmi e diagrammi di flusso.docx Created Date: 2/28/2014 10:11:17 PM ...

  1  

Algoritmi  e  diagrammi  di  flusso    Un  algoritmo  può  essere  descritto  come  una  sequenza  finita  ed  ordinata  di  operazioni  che  descrivono  la  soluzione  di  un  problema.    Per  sequenza  finita  si  intende  che  un  algoritmo  ha  sempre   un   inizio   ed   una   fine,   dunque   non   ci   sono   infinite   operazioni   da   compiere.   Per  sequenza   ordinata   si   intende   che   l’ordine   con   il   quale   si   eseguono   le   operazioni   è  importante.    In  realtà,  abbiamo  a  che  fare  con  degli  algoritmi  non  soltanto  nel  campo  dell’informatica,  ma  anche  nella  vita  di   tutti   i  giorni:   lavarsi   i  denti,  preparare  una   torta,  preparare   il   caffè,   sono  tutte   attività   che   richiedono   una   sequenza   finita   ed   ordinata   di   operazioni,   e   quindi   un  algoritmo.    

   Ad  esempio,  consideriamo  l’algoritmo  per  lavarsi  i  denti:    

1. Prendi  lo  spazzolino.  2. Prendi  il  dentifricio.  3. Metti  il  dentifricio  sullo  spazzolino.  4. Posa  il  dentifricio.  5. Apri  l’acqua.  6. Bagna  lo  spazzolino.  7. Chiudi  l’acqua.  8. Porta  lo  spazzolino  alla  bocca.  9. Spazzolare.  10. Controlla  se  i  denti  sono  puliti.  

a. Se  i  denti  non  sono  ancora  puliti,  ritorna  all’operazione  9.  b. Se  i  denti  sono  puliti  vai  all’operazione  11.  

11. Posa  lo  spazzolino.  12. Apri  l’acqua.  13. Sciacqua  la  bocca.  14. Chiudi  l’acqua.  

 Da   quanto   possiamo   notare   sono   verificate   le   due   caratteristiche   degli   algoritmi,   ossia  l’algoritmo  è  una  sequenza  finita  ed  ordinata  di  operazioni:    

• L’algoritmo  è  finito:  inizia  con  l’operazione  1  e  termina  con  l’operazione  14.  • L’algoritmo  è    ordinato:  se  cambiassi  l’ordine  di  alcune  operazioni,  potrei  ottenere:  

 1. Posa  il  dentifricio.  

Page 2: Algoritmi e diagrammi di flusso - ENEAGRID ·  · 2016-10-06Microsoft Word - Algoritmi e diagrammi di flusso.docx Created Date: 2/28/2014 10:11:17 PM ...

  2  

2. Spazzolare.  3. Chiudi  l’acqua.  4. Posa  lo  spazzolino.  5. Prendi  il  dentifricio.  6. Metti  il  dentifricio  sullo  spazzolino.  7. Apri  l’acqua.  8. Bagna  lo  spazzolino.  9. Chiudi  l’acqua.  10. Porta  lo  spazzolino  alla  bocca.  11. Controlla  se  i  denti  sono  puliti.  12. Prendi  lo  spazzolino.  

a. Se  i  denti  non  sono  ancora  puliti,  ritorna  all’operazione  11.  b. Se  i  denti  sono  puliti  vai  all’operazione  13.  

13. Apri  l’acqua.  14. Sciacqua  la  bocca.  

 Da  come  possiamo  osservare,  le  operazioni  restano  le  stesse,  benché  l’ordine  sia  variato,  ma  sicuramente  con  questo  algoritmo  non  potremmo  dire  di  aver  lavato  i  denti  correttamente.    In  informatica  le  operazioni  vengono  dette  istruzioni,  che  possono  essere  di  vario  tipo  :    

• Azioni:  “calcola  il  valore  x”.  • Controllo:  “se  si  verifica  A  allora  calcola  x…  altrimenti  calcola  y”.  • Comunicazione:  “leggi  il  valore  x”;  “stampa  il  valore  y”.  • *Salto:  “se  si  verifica  A  allora  prosegui…  altrimenti  salta  ad  un’altra  istruzione”.  • …  

 I   software   (programmi)   che   noi   utilizziamo   tutti   i   giorni   non   sono   nient’altro   che  l’implementazione   (la   realizzazione)  degli   algoritmi  mediante   linguaggi  di  programmazione.  Anche  con  Excel  (che  è  un  programma)  è  possibile  scrivere  altri  programmi  (mediante  i  fogli  di   calcolo)   che   altro   non   sono   che   l’implementazione   di   determinati   algoritmi   (ad   esempio  l’algoritmo  per  stabilire  se  un  numero  è  pari  o  dispari).    Gli  algoritmi,  però,  possono  anche  essere  rappresentati  graficamente,  mediante   i  diagrammi  di   flusso   (flow   diagrams),   prima   di   essere   realizzati   sul   calcolatore,   al   fine   di   avere   una  migliore   visione   di   tutte   le   istruzioni   necessarie   per   l’implementazione   dell’algoritmo.   Tali  diagrammi   utilizzano   forme   geometriche   diverse   per   rappresentare   istruzioni   di   tipo  differente;  la  sequenzialità  delle  istruzioni  viene  rappresentata  con  delle  frecce  che  collegano  nell’ordine  la  varie  istruzioni  tra  loro:      

Forma  utilizzata   Descrizione     Rappresenta  l’inizio  dell’algoritmo.  

Inizio

Page 3: Algoritmi e diagrammi di flusso - ENEAGRID ·  · 2016-10-06Microsoft Word - Algoritmi e diagrammi di flusso.docx Created Date: 2/28/2014 10:11:17 PM ...

  3  

  Rappresenta  la  fine  dell’algoritmo.  

  Rappresenta   un’istruzione   di   comunicazione.   Ad  esempio  la  lettura  di  un  dato.  

  Rappresenta   un’istruzione   di   comunicazione.   Ad  esempio  la  scrittura  di  un  dato.  

  Rappresenta   un’azione.   Ad   esempio   il   calcolo   di  una   determinata   funzione   che   restituisce   un  risultato,  come  la  somma  di  N  numeri.  

  Rappresenta   un’istruzione   di   controllo.   Ad  esempio   il   controllo   se   un   valore   risulta   pari   o  dispari.  

 Di  seguito  vengono  mostrati  alcuni  esempio  di  algoritmi  rappresentati  mediante  diagramma  di  flusso.    Consideriamo   l’algoritmo  che  determini   se,  dati  due  numeri,   la   somma  di  questi  due   (senza  che  venga  effettuata)  sia  pari  o  dispari.  Per  determinare  se  la  somma  di  due  numeri  sarà  pari  o  dispari  bisogna  individuare  una  regola  generale:  in  questo  caso  la  regola  è  la  seguente:    

• Se  i  due  numeri  sono  entrambi  pari  o  entrambi  dispari,  allora  la  somma  sarà  pari.  • Se  i  due  numeri  sono  uno  pari  e  l’altro  dispari,  allora  la  somma  sarà  dispari.  

 Infatti,  consideriamo  i  seguenti  casi:    

Numero  A   Numero  B   Somma   Pari  o  Dispari  ?  1   7   8   Pari  1   4   5   Dispari  

Fine

Azione

Comunicazione I

Comunicazione O

Controllo

V F

Page 4: Algoritmi e diagrammi di flusso - ENEAGRID ·  · 2016-10-06Microsoft Word - Algoritmi e diagrammi di flusso.docx Created Date: 2/28/2014 10:11:17 PM ...

  4  

4   3   7   Dispari  4   6   10   Pari  

 Di  seguito  viene  mostrato  il  diagramma  di  flusso:    

   Infatti,   per   determinare   se   un   numero   è   pari   o   dispari   basta   dividere   il   numero   per   2   ed  analizzare  il  suo  resto:    

• Se  il  resto  è  uguale  a  0,  allora  il  numero  è  pari.  • Se  il  resto  è  uguale  ad  1,  allora  il  numero  è  dispari.  

 

Page 5: Algoritmi e diagrammi di flusso - ENEAGRID ·  · 2016-10-06Microsoft Word - Algoritmi e diagrammi di flusso.docx Created Date: 2/28/2014 10:11:17 PM ...

  5  

Quindi,  dati  i  numeri  A  e  B,  calcoliamo  i  resti  delle  divisioni  di  A  e  B  per  2  e  li  “memorizziamo”,  rispettivamente,   in   R_A   ed   R_B.   A   questo   punto   possiamo   lavorare   direttamente   su   R_A   ed  R_B.    In  Excel,  supponendo  che  A,  B,  R_A  ed  R_B  siano  delle  celle,  come  A1,  A2,  A3  e  A4,  possiamo  calcolare  il  resto  come  segue:    A3  =  RESTO(A1;2)  A4  =  RESTO(A2;2)    In  questo  modo,  abbiamo  svolto  già  la  prima  parte  dell’algoritmo,  ossia  la  seguente:    

   A   questo   punto,   possiamo   passare   al   resto,   ossia   a   determinare   se   la   somma   sarà   pari   o  dispari:    A5  =  SE(E(A3=0;A4=0);”Pari”;  SE(E(A3=1;A4=1);”Pari”;  “Dispari”))    In  questo  modo,  abbiamo  terminato  l’algoritmo,  svolgendo  la  restante  parte,  ossia  la  seguente: