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 Riepilogo

2,272 views

Published on

algorithm flowchart

  • Be the first to comment

  • Be the first to like this

Correzione Flow Chart Riepilogo

  1. 1. Correzione del flowchart: “media voti per ogni alunno” Welcome, students!
  2. 2. Il testo del problema <ul><li>Data una lista di studenti con i loro voti, determinare e stampare per ogni studente la media dei suoi voti. </li></ul>
  3. 3. La lista dei voti degli studenti <ul><li>I dati sono ordinati per codice studente in maniera crescente </li></ul><ul><li>Pertanto i voti di ogni studente sono consecutivamente raggruppati tutti insieme </li></ul><ul><li>L’ultima riga ha un codice convenzionale 999999 per indicare la fine della lista </li></ul>Numero matricola studente voto 1 6 1 7 1 5 2 8 3 4 3 5 4 6 4 6 5 8 5 8 999999
  4. 4. 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>
  5. 5. Soluzione di uno studente
  6. 6. Analisi del flowchart <ul><li>Ci sono ben 4 iterazioni ! </li></ul><ul><li>2 di queste iterazioni sono interne ad un’altra iterazione ! </li></ul><ul><li>Troppo complicato </li></ul><ul><li>Chiediamoci se c’è bisogno di tutte queste iterazioni. </li></ul>
  7. 7. 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>
  8. 8. Reading <ul><li>Leggendo attentamente il flowchart, ci accorgiamo che ci sono in sequenza due iterazioni numerate quasi identiche </li></ul><ul><li>All’interno di ciascuna iterazione numerata c’è una iterazione do while </li></ul>
  9. 9. La logica della soluzione dello studente <ul><li>Bisogna capire la logica della sua soluzione. </li></ul><ul><li>Le due strutture iterative, l’una esterna per scorrere gli studenti e l’altra interna per scorrere I voti di ciascun studente (sembra che questa sia l’idea dello studente) </li></ul><ul><li>Tuttavia la ripetizione di questo flusso per una seconda volta in sequenza al precedente sembra incomprensibile, a meno chè abbia voluto correggere la prima parte aggiungendo nuove istruzioni </li></ul><ul><li>Inoltre tecnicamente le iterazioni sono errate. Vanno in loop . </li></ul>
  10. 10. Semplifichiamo la soluzione dello studente eliminando il primo blocco di iterazioni
  11. 11. Correggiamo il precedente flowchart <ul><li>L’iterazione esterna è numerata sul conteggio degli studenti. Questa soluzione non va bene </li></ul><ul><li>La lista termina quando il codice studente è uguale a 999999 </li></ul><ul><li>Non sappiamo quanti siano le righe della lista. </li></ul><ul><li>Pertanto dobbiamo fare un’iterazione controllata da una condizione </li></ul><ul><li>La condizione di controllo dell’iterazione è proprio codiceStudente=999999 </li></ul>
  12. 12. L’iterazione interna non serve. Non confondere la selezione con l’iterazione! <ul><li>La seconda iterazione interna controllata dalla condizione codiceStudente=codiceStudentePrecedente è errata. Questa struttura è in realtà una selezione non un’iterazione. </li></ul><ul><li>C’è una sola iterazione perchè c’è una sola lista e quando si scorrono gli studenti simultaneamente si scorrono anche I loro voti! </li></ul>
  13. 13. Floachart modificato e corretto
  14. 14. Let’s Have a Great Year!

×