Treno e velocitÃ
PROBLEMA
Scrivere un programma, che calcola il tempo espresso in ore, minuti, secondi, impiegato da un treno alla velocità di 120km/h per raggiungere una destinazione che ha distanza ricevuta in in-put.
RAPPRESENTAZIONE TECNICO-ILLUSTRTIVA
Prendo in in-put la distanza. Calcolo il tempo in ore dividendo la distanza per la velocità. Prendo il quoziente della divisione e lo metto nella variabile ore. Poi prendo la parte decimale sottraendo il quoziente al risultato. Moltiplico la parte decimale per 60 (minuti in un’ora) e sposto la parte intera del risultato nella variabile minuti. Prendo la parte decimale sottraendo al risultato la parte intera, la moltiplico per 60 (secondi in un minuto) e metto la parte intera nella variabile secondi. Alla fine mostro i risultati delle tre variabili di tipo intero: ore, minuti, secondi.
TABELLA DATI
IDENTIFICATORE | DESCRIZIONE |
---|---|
Distanza | Distanza inserita dall’utente di tipo float variabile |
Distanza_int | Trasformazione per mostrarlo dopo a video di tipo intero variabile |
Ore_float | Numero compreso di parte intera e decimale della divisione della distanza per il tempo di tipo float variabile |
Ore_float_parte_decimale | Parte decimale della variabile ore_float di tipo float variabile |
Ore | Parte intera della variabile ore_float di tipo intero variabile |
Minuti_float | Numero compreso di parte intera e decimale della moltiplicazione della variabile ore_float_parte_decimale e 60 di tipo float variabile |
Minuti_float_parte_decimale | Parte decimale della variabile minuti_float di tipo float variabile |
Minuti | Parte intera della variabile minuti_float di tipo intero variabile |
Secondi_float | Numero compreso di parte intera e decimale della moltiplicazione della variabile minuti_float_parte_decimale di tipo float variabile |
Secondi | Parte intera della variabile secondi_float di tipo intero variabile |
VELOCITA | Velocità inserita come costante all’interno dell’algoritmo |
DIAGRAMMA A BLOCCHI
Clicca qui per visualizzare il Diagramma a blocchi.
CODICE SORGENTE
#include <stdio.h>
#include <stdlib.h>
#define VELOCITA 120
int main(int argc, char *argv[])
{
// dichiarazione variabile
float distanza;
int distanza_int;
float ore_float;
float ore_float_parte_decimale;
int ore;
float minuti_float;
float minuti_float_parte_decimale;
int minuti;
float secondi_float;
int secondi;
// sezione in-put dei dati
printf("Inserire la distranza espressa in km: ");
scanf("%f", &distanza);
system("cls");
// sezione calcoli
// int per la distanza
distanza_int=distanza;
// calcolo ore
ore_float=distanza/VELOCITA;
ore=ore_float;
ore_float_parte_decimale=ore_float-ore;
//calcolo minuti
minuti_float=ore_float_parte_decimale*60;
minuti=minuti_float;
minuti_float_parte_decimale=minuti_float-minuti;
//calcolo secondi
secondi_float=minuti_float_parte_decimale*60;
secondi=secondi_float;
// sezione out-put (visualizzazione-1)
printf("¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");
printf("\n");
printf("|\tDistanza: \t%dkm\t\t|", distanza_int);
printf("\n");
printf("|\tVelocita': \t%d km/h\t|", VELOCITA);
printf("\n");
printf("|\tOre: \t\t%02d\t\t|", ore);
printf("\n");
printf("|\tMinuti: \t%02d\t\t|", minuti);
printf("\n");
printf("|\tSecondi: \t%02d\t\t|", secondi);
printf("\n");
printf("¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");
// Separazione due metodi di visualizzazione
printf("\n\n\n\n\n");
printf("Secondo metodo di visualizzazione");
printf("\n\n\n\n\n");
// sezione out-put (visualizzazione-2)
printf("¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");
printf("\n");
printf("|\tDistanza: \t%dkm\t\t|", distanza_int);
printf("\n");
printf("|\tVelocita': \t%d km/h\t|", VELOCITA);
printf("\n");
printf("|\tTempo: \t\t%02dh %02d' %02d''\t|", ore, minuti, secondi);
printf("\n");
printf("¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");
//Separazione dal system reserved
printf("\n\n\n\n\n");
printf("\n\n\n\n\n");
// system reseved
system("pause");
return 0;
}