10
BLOCCO TEMATICO A
Le basi della programmazione
Formulare e comprendere i problemi
APPLICAZIONI
LEZIONE
3
Esaminiamo alcuni semplici problemi per i quali la fase di analisi risulta prati-
camente ovvia o, comunque, prevedibile. Per questo motivo, nella descrizione
dell’analisi riporteremo solo la descrizione di che cosa si vuole fare. Osservare questi
problemi è utile per capire come muoversi durante la fase di comprensione del testo
e di definizione delle specifiche funzionali.
PROBLEMA
Fare una telefonata
Analisi del problema
Desideriamo chiamare un abbonato con il telefono. Dopo aver composto il numero
sull’apparecchio telefonico si possono verificare i seguenti casi: l’abbonato risponde,
per cui la telefonata viene eseguita con successo, oppure la telefonata non può essere
effettuata perché il telefono è occupato o l’abbonato non risponde.
Specifiche funzionali
Dati iniziali: numero da comporre
Dati finali
•
messaggio “telefonata riuscita”
•
messaggio “telefonata non riuscita”
PROBLEMA
Trovare il maggiore tra due numeri
Analisi del problema
Vogliamo trovare il maggiore tra due numeri interi che chiamiamo X e Y. Il proce-
dimento da seguire è piuttosto semplice, poiché ci si può servire di una semplice
sottrazione. Infatti:
•
se X
–
Y > 0, il maggiore è X
•
se X
–
Y < 0, il maggiore è Y
•
se X
–
Y = 0, X e Y sono uguali
Specifiche funzionali
Dati iniziali:
due numeri interi X e Y
Dati finali
•
X, se X
–
Y > 0
•
Y, se X
–
Y < 0
PROBLEMA
Calcolare il prodotto di due numeri interi
Analisi del problema
Dobbiamo considerare due numeri interi, che indichiamo con X e Y, e trovare il loro
prodotto. Il semplice procedimento dettato dalla matematica prevede che si possa
utilizzare l’addizione. Infatti:
•
se Y = 0, il prodotto è 0
•
se Y > 0, il prodotto è X + X + ... + X (per Y volte)