---++ Esercizio per casa numero 1 Vedi anche DomandeHomework1aa0203, SoluzioneHomework1aa0203, RisultatiHomework1aa0203. ---- %TOC% ---- ---+++ Obiettivo Questo esercizio serve a farvi verificare se sapete: * usare le procedure ==printf== e ==scanf== * fare il cast da numero intero a numero in virgola mobile * usare le strutture di controllo while/for/if-then * scrivere, compilare e debuggare un programma C :-) ---+++ Svolgimento: Progettare un programma C che legge da stdin una sequenza di righe del tipo <verbatim> <altezza in centimetri> </verbatim> dove <altezza in centimetri> e' un intero maggiore o uguale a *-1* (il valore *-1* serve a indicare la fine della sequenza di numeri in input). Il vostro programma per ogni valore letto: * se il valore e' *-1* termina l'esecuzione * altrimenti: * calcola la media degli ultimi 3 valori letti * la stampa su stdout nel formato con 2 cifre decimali, un numero per riga. NB: notate che l'output delle medie inizia quando viene letto il terzo valore. ---+++ Suggerimento Per poter calcolare ciascuna media richiesta basta ricordare gli ultimi 3 valori. In alternativa basta ricordare la somma degli ultimi 3 valori ed aggiornarla adeguatamente. ---+++ Formato input da stdin <verbatim> <intero> .... <intero> .... -1 </verbatim> ---+++ Formato dell'output L'output e' formattato come segue. Le prime 6 righe di stampa sono formattate come segue. <verbatim> <nome> <cognome> <giorno di nascita (2 cifre)> <mese di nascita (2 cifre)> <anno di nascita (4 cifre)> <indirizzo email> </verbatim> Le rimanenti righe sono formattate come segue. <verbatim> <media dei primi 3 valori letti> <media dei valori 2' 3' e 4'> ... <media degli ultimi 3 valori letti> </verbatim> ---+++ Esempi Ecco alcuni esempi per il programma dello studente Mario Rossi della Spigola nato il 17.05.1723 ed email mrds<nop>@nessun.posto.it. Testate il vostro programma almeno sugli esempi proposti controllando che, per il dato input, l'output (a parte le prime 6 righe) sia ESATTAMENTE quello riportato nell'esempio. ---- ---++++ Esempio 1. stdin: <verbatim> 10 20 30 40 50 -1 </verbatim> stdout: <verbatim> Mario Rossi della Spigola 17 05 1723 mrds@nessun.posto.it 20.00 30.00 40.00 </verbatim> ---- ---++++ Esempio 2. stdin: <verbatim> 10 20 -1 </verbatim> stdout: <verbatim> Mario Rossi della Spigola 17 05 1723 mrds@nessun.posto.it </verbatim> ---- ---+++ NOTA su stdin e stdout Se provate ad eseguire il vostro programma noterete che le righe dell'input e quelle dell'output si mescolano più o meno come segue (in rosso mostro l'output): <pre> <font color=red>Mario Rossi della Spigola 17 05 1723 mrds@nessun.posto.it</font> 10 20 30 <font color=red>20.00</font> 40 <font color=red>30.00</font> 50 <font color=red>40.00</font> -1 </pre> Questo è normale, e dipende dal fatto che state usando la console sia per l'input battuto sulla tastiera che per l'output del programma. Se volete separare l'input dall'output potete eseguire il vostro programma in modo da: * leggere i dati da un file e scrivere l'output su un file: ==esercizio1 < dati.in > medie.out== * leggere i dati da tastiera e scrivere l'output su un file: ==esercizio1 > medie.out== ---+++ Consegna entro venerdì 25 ottobre alle ore 24 * Per consegnare il vostro programma usate *esclusivamente* la pagina http://twiki.dsi.uniroma1.it/~andrea/consegna.html . ---- -- Users.AndreaSterbini - 16 Oct 2002 * Set ALLOWTOPICCHANGE = Users.DocentiProg1Group
This topic: Programmazione1/AA0506/PZ
>
AvvisiImportanti
>
HomeWork1aa0203
Topic revision: r7 - 2003-09-30 - AndreaSterbini
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback