Soluzione della prova di autovalutazione:
Problemi, algoritmi e programmi Java
Questa pagina propone una soluzione a questa prova di
valutazione.
Le soluzioni proposte non hanno mai carattere assoluto ma piuttosto
è una soluzione tra tante che sono corrette: questa è una soluzione corretta
all'esercizio, ma non è certamente lunica.
Esercizio 1: Conta i positivi.
Esercizio 2: Massimo tra dieci numeri interi.
Esercizio 3: Massimo tra dieci numeri interi?
- Un esempio: una sequenza di numeri positivi 1 4 3 7 5 9 10 8
2 6
- Un contro-esempio: la sequenza costante -10 -10 -10 -10 -10
-10 -10 -10 -10 -10
- Il massimo di questa sequenza vale chiaramente -10. Il
presunto algoritmo, invece, dice che il massimo vale 0 (che non
è nemmeno un elemento della sequenza).
Esercizio 4: Somma dei primi N numeri interi
dispari.
Questo problema può essere risolto sulla base di
diversi algoritmi:
- fai variare una variabile i tra i primi N
numeri interi dispari (1, 3, 5, ..., 2*N-1), e somma i diversi valori assunti da i
- fai variare una variabile i tra i primi N
numeri interi positivi (1, 2, 3, ..., N), e somma i valori assunti
dall'espressione i*2-1
- fai variare una variabile i tra i primi N
numeri interi naturali (0, 1, 2, ..., N-1), e somma i valori assunti
dall'espressione i*2+1
- trova e applica una variante della formula di Gauss
Ad esempio, lapplicazione
SommaNumeriDispari segue
la prima di queste strategie, ma le altre due sono altrettanto valide.
Lapplicazione
SommaNumeriDispariGauss mostra
invece l'utilizzo di una variante della formula di Gauss. E' la soluzione
più efficiente - ma quella meno utile da un punto di vista "didattico".
Esercizio 5: Conversione Celsius-Farhenheit.