Accedi

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;
}