
Esercizio: Analyze requirements specification
Per ciascuna delle seguenti specifiche, rispondete a queste domande:
- Quali sono i goal principali da realizzare nell’implementazione del programma?
- Come vanno combinati i piani che realizzano i goal individuati?
Esempio svolto
Specifiche: Scrivere un programma che legga da standard input una sequenza di numeri terminata da zero e conti quante sono le coppie di numeri naturali consecutivi uguali.
Risposte:
- Siccome devo confrontare ciascun numero con il consecutivo, il goal da realizzare è quello dell’elaborazione di valori adiacenti. Inoltre, per contare quante coppie di numeri soddisfano una certa condizione, il goal da realizzare è quello del conteggio.
- I piani che realizzano i due goal devono essere fusi tra loro.
Problem 1 - specifiche
Scrivere un programma che legga una sequenza di interi terminata da zero e stampi il più piccolo intero letto e il numero di volte che compare all’interno della sequenza.
Problem 2 - specifiche
Scrivere un programma che riceve da riga di comando una serie di lunghezza arbitraria di parole e stampa la parola più lunga e la parola più corta. Nel caso in cui vi siano più parole di lunghezza massima o minima, il programma stampa l’ultima incontrata.
Problem 3 - specifiche
Scrivere un programma che legga sequenza di N interi (almeno 3), che descrivono il consumo di elettricità in N giorni, e stampi i giorni in cui il consumo è stato inferiore rispetto sia al giorno prima che al giorno dopo. I giorni sono numerati a partire da 1.
Problem 4 - specifiche
Scrivere un programma che legge da standard input una sequenza di interi terminata da -1 e stampa il numero che contiene il maggior numero di 0. Nel caso in cui vi siano più numeri che contengono il massimo numero di 0, il programma stampa l’ultimo incontrato. Ad esempio, se la sequenza letta è 3040 145 80 1707 105002 78 1970 6005 -1
il programma stampa 105002
.