Correzione Verifica3dicembre08

920 views

Published on

verifica in classe per esercitare gli studenti nella soluzione id algoritmi

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
920
On SlideShare
0
From Embeds
0
Number of Embeds
130
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Correzione Verifica3dicembre08

  1. 1. Correzione del flowchart: verifica 3 dicembre 2008 Welcome, students!
  2. 2. Il testo del problema <ul><li>Si ha una lista di numeri interi. Non si conosce quanti sono. Ma l’ultimo è 999999. Si legge un numero alla volta. Ogni numero letto si deve confrontarlo con il precedente. Se è maggiore del precedente si deve stampare, poi si deve sommare al numero precedente e si deve stampare questa somma. Se invece è minore, si fa il suo quadrato e si stampa il numero e il suo quadrato. Si continua a fare questo confronto fino all’esaurimento di tutti i numeri. </li></ul>
  3. 3. Metodo di lavoro <ul><li>Rispondo alla domanda: Ci sono iterazioni ? </li></ul><ul><ul><li>Risposta: c’è 1 iterazione perchè devo scorrere una lista ed una sola lista di numeri </li></ul></ul><ul><li>Di quale tipo deve essere questa iterazione ? </li></ul><ul><ul><li>Risposta: di tipo while ossia la condizione di controllo deve essere in alto (prima della esecuzione del blocco di istruzioni ripetitive) </li></ul></ul><ul><li>Quale è la condizione di controllo dell’iterazione? </li></ul><ul><ul><li>numero=999999 (è il tappo di chiusura della lista di numeri ossia la fine del file) </li></ul></ul>
  4. 4. Scheletro iniziale dell’algoritmo <ul><li>La condizione di controllo è numero not equal (!=) 999999 </li></ul><ul><li>Come ultima istruzione del blocco iterativo c’è la lettura del numero in modo che controllo subito (iterando) se questo numero è diverso da 999999 </li></ul>
  5. 5. Analisi del flowchart <ul><li>Che cosa deve fare il mio algoritmo dentro il ciclo iterativo ? </li></ul><ul><ul><li>Deve confrontare il numero correntemente letto con quello precedente </li></ul></ul><ul><li>Ho bisogno di una struttura di selezione con doppia decisione. </li></ul><ul><ul><li>In un ramo devo fare una sequenza di azioni opportune, nell’altro ramo un’altra sequenza opportuna di azioni. </li></ul></ul>
  6. 6. Flowchart più dettagliato <ul><li>Abbiamo inserito la selezione e la variabile di appoggio per memorizzare il numero precedente </li></ul><ul><li>Prima della iterazione facciamo una prima lettura “fuori sequenza” e salviamo il primo numero nella variabile di appoggio </li></ul>
  7. 7. Gestione della variabile di appoggio o di deposito momentaneo di informazioni da confrontare con quelle correnti <ul><li>La variabile precedente deve essere gestita in maniera corretta. </li></ul><ul><li>La inizializziamo al primo numero letto </li></ul><ul><li>La confrontiamo con il numero correntemente letto </li></ul><ul><li>Dopo il confronto sostituiamo il suo valore con il numero corrente che diventa così il numero precedente alla successiva lettura e al successivo confronto. </li></ul>
  8. 8. Flowchart con la giusta gestione della varibile di appoggio
  9. 9. Flowchart aggiornato con le azioni richieste
  10. 10. Per essere proprio precisi al 100% <ul><li>Si introduce una nuova selezione per testare che numero<precedente </li></ul><ul><li>Così scartiamo il caso in cui numero=precedente </li></ul><ul><li>Perché in effetti il testo del problema ignora questa eventualità </li></ul>
  11. 11. Let’s Have a Great Year!

×