Mediana di tre numeri
Si scriva un programma che legga 3 valori interi e che ne stampi la mediana.
La mediana è il valore che occuperebbe la seconda posizione se ordinassimo i tre numeri.
Si nomini il sorgente mediana.c
.
La stampa del risultato dovrà essere preceduta da uno specifico marcatore MEDIANA
scritto tra parentesi quadre.
Ad esempio, se i tre numeri letti sono 30, 10, 20, il programma dovrà stampare le righe:
[MEDIANA]
20
Si compili il programma con il comando
gcc -Wall mediana.c
Se non ci sono errori di compilazione, si esegua il programma a.out
generato per verificarne la correttezza:
./a.out
Ricorda che l'opzione -Wall
abilita l’output, da parte del compilatore, di messaggi di avvertimento che segnalano situazioni insolite, che potrebbero corrispondere ad errori di programmazione.
Verifica automatica
I casi di test sono descritti nei file pvcheck.test.
Un "caso di test" contiene i dati di input per il programma e il corrispondente output corretto atteso.
In questo modo pvcheck
può verificare automaticamente la correttezza dei risultati a fronte dei dati di ingresso.
Il file di test può contenere vari casi di test.
Scarica una versione eseguibile di pvcheck.
Dopo aver copiato lo script pvcheck
nella directory corrente (se non è già presente), verifica la correttezza del programma tramite il comando
./pvcheck ./a.out
e osservando l'output del programma.
NOTA: se il programma non viene eseguito correttamente, su alcuni sistemi potrebbe essere necessario eseguire da shell il comando
chmod +x pvcheck
per impostare i permessi di esecuzione di pvcheck
.
Se pvcheck
indica la presenza di errori, correggi il programma, verificando la correttezza della nuova versione utilizzando pvcheck
.
Continua il processo di correzione e verifica finché pvcheck
non indica che l'output generato dal programma è corretto.
NOTA: pvcheck
cerca automaticamente un file di test chiamato pvcheck.test
nella directory corrente, utilizzando quel file per eseguire i test sul programma.
Verifica eventualmente che il file di test sia presente nella directory in cui esegui pvcheck
.
Indicazioni per la soluzione
- scrivi la funzione
main
(vedi S2.1) - dichiara le variabili necessarie a contenere i dati del problema (es,
a
,b
ec
) - leggi il valore delle tre variabili da tastiera usando
fgets
eatoi
(ricorda di dichiarare la stringa "di supporto"), vedi S4.1 - utilizza opportune combinazioni di costrutti
if
eif-else
(vedi rispettivamente S4.3 e S4.4 per la sintassi) per assegnare il valore mediano ad una variabilem
Suggerimenti
- nei costrutti condizionali potrebbero servire delle condizioni logiche "complesse"; gli operatori logici necessari per realizzarle sono descritti in S4.5;
- non dimenticare di includere
stdlib.h
per l'uso diatoi
(e, come già sai, distdio.h
perprintf
efgets
)
Nella prossima pagina potrai esaminare un esempio di soluzione dell'esercizio.