Esercizio per casa numero 1

Vedi anche DomandeHomework1aa0203, SoluzioneHomework1aa0203, RisultatiHomework1aa0203.

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 smile

Svolgimento:

Progettare un programma C che legge da stdin una sequenza di righe del tipo

<altezza in centimetri>
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

<intero>
....
<intero>
....
-1

Formato dell'output

L'output e' formattato come segue.

Le prime 6 righe di stampa sono formattate come segue.

<nome>
<cognome>
<giorno di nascita (2 cifre)>
<mese di nascita (2 cifre)>
<anno di nascita (4 cifre)>
<indirizzo email>

Le rimanenti righe sono formattate come segue.

<media dei primi 3 valori letti>
<media dei valori 2' 3' e 4'>
...
<media degli ultimi 3 valori letti>

Esempi

Ecco alcuni esempi per il programma dello studente Mario Rossi della Spigola nato il 17.05.1723 ed email mrds@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:

10
20
30
40
50
-1

stdout:

Mario
Rossi della Spigola
17
05
1723
mrds@nessun.posto.it
20.00
30.00
40.00


Esempio 2.

stdin:

10
20
-1

stdout:

Mario
Rossi della Spigola
17
05
1723
mrds@nessun.posto.it


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):
Mario
Rossi della Spigola
17
05
1723
mrds@nessun.posto.it
10
20
30
20.00
40
30.00
50
40.00
-1

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


-- AndreaSterbini - 16 Oct 2002

Edit | Attach | Watch | Print version | History: r7 < r6 < r5 < r4 < r3 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r7 - 2003-09-30 - AndreaSterbini






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback