Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Correzione Flow Chart Numeri Compresi

1,727 views

Published on

correzione di un algoritmo fatto da uno studente

  • Be the first to comment

  • Be the first to like this

Correzione Flow Chart Numeri Compresi

  1. 1. Correzione del flowchart: numeri interi compresi in un intervallo Welcome, students!
  2. 2. Il testo del problema <ul><li>Stampare tutti i numeri interi compresi in un intervallo delimitato da due numeri. </li></ul>
  3. 3. Metodo di lavoro <ul><li>Prendo una soluzione di uno studente </li></ul><ul><li>Analizzo questa soluzione per vedere quale è stato il ragionamento </li></ul><ul><li>Razionalizzo il ragionamento fatto, semplificandolo </li></ul><ul><li>Correggo eventuali errori tecnici ed architetturali </li></ul>
  4. 4. Soluzione di uno studente
  5. 5. Analisi del flowchart <ul><li>La struttura di selezione (numeroA>numeroB) è veramente complicata. Una buona regola da seguire è quella di far si che i due percorsi emergenti da una selezione si ricongiungano dopo un breve percorso. Invece in questo caso dentro ogni percorso della selezione c’è un’infinità di cose fatte. </li></ul>
  6. 6. Rendiamo soft le spigolosità della nostra mente (arrotondiamo gli spigoli) <ul><li>Per tenere la materia cerebrale sotto controllo, semplifichiamo il prodotto grezzo, raffiniamolo. </li></ul><ul><ul><li>Che cosa possiamo raffinare in questo caso ? </li></ul></ul>
  7. 7. Reading <ul><li>Leggendo attentamente il flowchart, ci accorgiamo che i due rami emergenti dalla selezione sono assolutamente identici. </li></ul><ul><li>Per quale motivo lo studente ha duplicato le istruzioni ? </li></ul>
  8. 8. La logica della soluzione dello studente <ul><li>Bisogna capire la logica della sua soluzione. </li></ul><ul><li>Assume che il numero venga letto da una lista, se il numero è incluso nell’intervallo richiesto lo stampa. </li></ul><ul><li>Tutto questo lo inserisce in una iterazione numerata </li></ul><ul><li>Il numero delle iterazioni è uguale ai numeri interi che possono entrare nell’intervallo (numeroA-numeroB) </li></ul>
  9. 9. Per quale motivo ha duplicato le istruzioni nei due percorsi della selezione ? <ul><li>Dalla logica della sua soluzione scaturisce il motivo del perchè ha duplicato le istruzioni nei due rami della selezione </li></ul><ul><li>Per avere la differenza tra numeroA e numeroB sempre positiva </li></ul><ul><li>Perchè nel primo caso l’estremo superiore dell’intervallo è numeroA e nel secondo numeroB </li></ul>
  10. 10. Differenze tra le istruzioni nei due rami della selezione <ul><li>Le differenze nelle istruzioni dei due percorsi stanno nei nomi numeroA e numeroB. </li></ul><ul><li>Nei due diversi rami della selezione I loro ruoli sono scambiati </li></ul>
  11. 11. Differenze tra le istruzioni nei due rami della selezione <ul><li>Le differenze nelle istruzioni dei due percorsi stanno nei nomi numeroA e numeroB. </li></ul><ul><li>Nei due diversi rami della selezione I loro ruoli sono scambiati </li></ul>
  12. 12. Scrittura della correzione <ul><li>Introduciamo due nuove variabili massimo e minimo </li></ul><ul><li>Se (numeroA>numeroB) è vero  massimo=numeroA, minimo=numeroB, altrimenti  massimo=numeroB, minimo=numeroA </li></ul>
  13. 13. Eliminiamo la duplicazione del codice <ul><li>Introduciamo due nuove variabili massimo e minimo </li></ul><ul><li>Se (numeroA>numeroB) è vero  massimo=numeroA, minimo=numeroB, altrimenti  massimo=numeroB, minimo=numeroA </li></ul>
  14. 14. Floachart modificato e corretto
  15. 15. Fuori tema <ul><li>La soluzione dello studente con le correzioni apportate è accettabile da un punto di vista tecnico. </li></ul><ul><li>Tuttavia quella soluzione ha risolto un altro problema, non quello richiesto!! </li></ul><ul><li>Ha risolto il problema di stampare una lista di numeri, pari a massimo-minimo, compresi tra massimo e minimo </li></ul><ul><li>Non ha risolto il problema di stampare tutti i numeri interi compresi tra massimo e minimo ! </li></ul>
  16. 16. Let’s Have a Great Year!

×