Correzione Flow Chart Numeri Compresi

Post on 01-Jul-2015

1,457 views 4 download

description

correzione di un algoritmo fatto da uno studente

transcript

Correzione del flowchart: numeri interi

compresi in un intervallo

Welcome, students!

Il testo del problema Stampare tutti i

numeri interi compresi in un intervallo delimitato da due numeri.

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

Soluzione di uno studente

Analisi del flowchart 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.

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 ?

Reading

Leggendo attentamente il flowchart, ci accorgiamo che i due rami emergenti dalla selezione sono assolutamente identici.

Per quale motivo lo studente ha duplicato le istruzioni ?

La logica della soluzione dello studente

Bisogna capire la logica della sua soluzione.

Assume che il numero venga letto da una lista, se il numero è incluso nell’intervallo richiesto lo stampa.

Tutto questo lo inserisce in una iterazione numerata

Il numero delle iterazioni è uguale ai numeri interi che possono entrare nell’intervallo (numeroA-numeroB)

Per quale motivo ha duplicato le istruzioni nei due percorsi della

selezione ?

Dalla logica della sua soluzione scaturisce il motivo del perchè ha duplicato le istruzioni nei due rami della selezione

Per avere la differenza tra numeroA e numeroB sempre positiva

Perchè nel primo caso l’estremo superiore dell’intervallo è numeroA e nel secondo numeroB

Differenze tra le istruzioni nei due rami della selezione Le differenze nelle istruzioni

dei due percorsi stanno nei nomi numeroA e numeroB.

Nei due diversi rami della selezione I loro ruoli sono scambiati

Differenze tra le istruzioni nei due rami della selezione Le differenze nelle istruzioni

dei due percorsi stanno nei nomi numeroA e numeroB.

Nei due diversi rami della selezione I loro ruoli sono scambiati

Scrittura della correzione Introduciamo due nuove

variabili massimo e minimo Se (numeroA>numeroB) è

vero massimo=numeroA, minimo=numeroB, altrimenti massimo=numeroB, minimo=numeroA

Eliminiamo la duplicazione del codice

Introduciamo due nuove variabili massimo e minimo

Se (numeroA>numeroB) è vero massimo=numeroA, minimo=numeroB, altrimenti massimo=numeroB, minimo=numeroA

Floachart modificato e corretto

Fuori tema La soluzione dello studente con le correzioni

apportate è accettabile da un punto di vista tecnico. Tuttavia quella soluzione ha risolto un altro

problema, non quello richiesto!! Ha risolto il problema di stampare una lista di

numeri, pari a massimo-minimo, compresi tra massimo e minimo

Non ha risolto il problema di stampare tutti i numeri interi compresi tra massimo e minimo !

Let’s Have a Great Year!