Correzione Flow Chart Riepilogo

14
Correzione del flowchart: “media voti per ogni alunno” Welcome, students!

description

algorithm flowchart

Transcript of Correzione Flow Chart Riepilogo

Page 1: Correzione Flow Chart Riepilogo

Correzione del flowchart: “media voti

per ogni alunno”Welcome, students!

Page 2: Correzione Flow Chart Riepilogo

Il testo del problema Data una lista di

studenti con i loro voti, determinare e stampare per ogni studente la media dei suoi voti.

Page 3: Correzione Flow Chart Riepilogo

La lista dei voti degli studenti

I dati sono ordinati per codice studente in maniera crescente

Pertanto i voti di ogni studente sono consecutivamente raggruppati tutti insieme

L’ultima riga ha un codice convenzionale 999999 per indicare la fine della lista

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

Page 4: Correzione Flow Chart Riepilogo

Metodo di lavoro Prendo una soluzione di uno studente Analizzo questa soluzione per vedere quale

è stato il ragionamento Razionalizzo il ragionamento fatto,

semplificandolo Correggo eventuali errori tecnici ed

architetturali

Page 5: Correzione Flow Chart Riepilogo

Soluzione di uno studente

Page 6: Correzione Flow Chart Riepilogo

Analisi del flowchart Ci sono ben 4 iterazioni ! 2 di queste iterazioni sono interne ad

un’altra iterazione ! Troppo complicato Chiediamoci se c’è bisogno di tutte

queste iterazioni.

Page 7: Correzione Flow Chart Riepilogo

Rendiamo soft le spigolosità della nostra mente

(arrotondiamo gli spigoli) Per tenere la materia cerebrale sotto

controllo, semplifichiamo il prodotto grezzo, raffiniamolo. Che cosa possiamo raffinare in questo

caso ?

Page 8: Correzione Flow Chart Riepilogo

Reading

Leggendo attentamente il flowchart, ci accorgiamo che ci sono in sequenza due iterazioni numerate quasi identiche

All’interno di ciascuna iterazione numerata c’è una iterazione do while

Page 9: Correzione Flow Chart Riepilogo

La logica della soluzione dello studente Bisogna capire la logica della sua

soluzione. 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)

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

Inoltre tecnicamente le iterazioni sono errate. Vanno in loop.

Page 10: Correzione Flow Chart Riepilogo

Semplifichiamo la soluzione dello studenteeliminando il primo blocco di iterazioni

Page 11: Correzione Flow Chart Riepilogo

Correggiamo il precedente flowchart

L’iterazione esterna è numerata sul conteggio degli studenti. Questa soluzione non va bene

La lista termina quando il codice studente è uguale a 999999

Non sappiamo quanti siano le righe della lista.

Pertanto dobbiamo fare un’iterazione controllata da una condizione

La condizione di controllo dell’iterazione è proprio codiceStudente=999999

Page 12: Correzione Flow Chart Riepilogo

L’iterazione interna non serve. Non confondere la selezione con

l’iterazione! La seconda iterazione interna controllata dalla

condizione codiceStudente=codiceStudentePrecedente è errata. Questa struttura è in realtà una selezione non un’iterazione.

C’è una sola iterazione perchè c’è una sola lista e quando si scorrono gli studenti simultaneamente si scorrono anche I loro voti!

Page 13: Correzione Flow Chart Riepilogo

Floachart modificato e corretto

Page 14: Correzione Flow Chart Riepilogo

Let’s Have a Great Year!