Laboratorio di calcolo
AA 2006/07
Prova individuale del 25/1/2007
Create sul solito account (o in
quello comunicatovi dal docente) una
cartella prova_cognome e svolgete li' la prova. La prova e' valutata su
10 punti.
Se il programma non compila perdete 5
punti, se il programma compila ma
ha seri problemi in fase di esecuzione (loop infiniti, mancanza di
protezioni...) perdete 3 punti, se il programma compila, gira ma non
fornisce i risultati richiesti perdete 2 punti. I punti rimanenti
possono essere ulteriormente ridotti se non sono state seguite tutte le
indicazioni (ad esempio se si sceglie di non utilizzare delle funzioni)
o se si omette di stampare il risultato o di specificare quali valori
ci si
aspetta che l'utente inserisca, o se il programma non sia comprensibile
per mancanza di commenti.
Scrivete un programma che risolva le equazioni di secondo grado:
dati A, B e C si cerca (se esiste) uno o due valori di x tali che Ax2+Bx+C=0,
ovvero
- si determina il discriminante D=B2-4AC
- se D e' nullo esiste un'unica soluzione pari a -B/(2A)
- se D e' positivo non nullo ne esistono due, (-B+sqrt(D))/(2A) e
(-B-sqrt(D))/(2A)
- se D e' negativo l'equazione non ammette soluzioni
- mediante un ciclo while consentite all'utente di eseguire
nuovamente le
istruzioni precedenti inserendo dei nuovi valori di input uscendo dal
programma solo se richiesto
Suggerimenti:
- prevedere 4 funzioni, una per il calcolo del discriminante, una
per la soluzione degenere nel caso di discriminante nullo, e una per
ciascuna delle due soluzioni in caso di discriminante positivo
- scrivere un file .h con i prototipi delle funzioni
- scrivere un file .c contenente le funzioni inizialmente vuote
(con
solo un return di un valore a scelta;)
- scrivere un file .c contenente il programma main
- nel main leggere i 3 coefficienti del polinomio di secondo grado,
calcolare il discriminante e scegliere come precedere in base al valore
di questo
- solo quando questa parte compila e gira dedicatevi allo
sviluppo degli algoritmi da inserire nelle
funzioni e alla validazione dei risultati.
- se non riuscite a completare qualcosa lasciate il programma in
uno
stato in cui compili e giri e aggiungetevi una stampa che informi
l'utente di quali funzionalita' non sono ancora attive.