Esercizio 1
Assegnato il numero
di secondo 15678 calcolare il numero di ore, i minuti e i secondi residui.
Per passare dai secondi ai minuti basta una semplice
divisione per 60 e stessa cosa per passare dai minuti alle ore. Passando da
secondi a minuti mi viene 261,30 minuti. Il 0,30 sono i secondi residui, quindi
ho due alternative :
-
Moltiplico per 60 il 0,30 e trovo i 18 secondi
-
Uso il modulo %
sui secondi totali, il resto della divisione per 60 sono i secondi
residui, quindi 15678 diviso 60 fa 261 con resto di 18.
Scelgo la seconda strada più semplice e più logica e scelgo
variabili solo di tipo int perché i
decimali non mi servono. Quindi prima mi trovo i minuti con la divisione per 60
e poi uso il modulo anche sui minuti e il resto sono i minuti residui. Per le
ore posso dividere i secondo totali 15678 per 3600 (60x60) oppure posso
dividere i minuti calcolati prima (261,30) per 60.
Variabili:
L’esercizio non richiede ne l’inserimento di un dato
dall’utente ne la generazione casuale di un valore ma assegna un valore di
partenza di 15678 secondi, quindi non mi servono variabili di input ma solo di
lavoro e di output.
mintot (a cui assegno il risultato della divisione per 60
dei secondi totali) variabile di lavoro;
secondi (a cui
assegno il resto dell’operazione col modulo dei secondi totali) variabile di
output;
minuti (a cui
assegno il resto della divisione col modulo dei minuti totali) variabile di
output;
ore (a cui assegno il risultato della divisione per 60
dei minuti totali) variabile di output;
Strumenti:
divisione ( /60)
modulo (%60)
Bozza programma;
il codice sorgente che andrò a scrivere dovrà fare le
seguenti operazioni:
secondi=15678%60; (resto
18 secondi)
mintot=15678/60; (tot. 261)
minuti=mintot%60; (tot.
21)
ore=mintot/60;
(tot. 4)
printf (“15678 secondo sono ore, minuti, secondi”); (4 ore, 21 minuti , 18 secondi).
Codifica in linguaggio C:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int ore,minuti,secondi,mintot;
secondi=15678%60;
mintot=15678/60;
minuti=mintot%60;
ore=mintot/60;
printf("15678
secondi sono %d, ore , %d minuti, %d secondi \n", ore,minuti,secondi);
return 0;
}
Diagramma di flusso (algobuild):
Nessun commento:
Posta un commento