Differenza tra due orari

Dati due orari espressi in ore, minuti e secondi, calcolare la differenza in secondi tra i due.

Esercizio classico che si affronta agli inizi della carriera da studente programmatore. Non presenta cicli e, a meno di non voler inserire qualche raffinato controllo sull’input. Non ci sono neanche strutture condizionali. Il trucco è capire che è possibile trasformare i due orari completamente in secondi per poter effettuare poi una semplicissima sottrazione. Se moltiplichiamo le ore * 3600 e i minuti per 60, il gioco è fatto!

L’esercizio è utile per comprendere il flusso del programma nei suoi macroblocchi input-procedimento-output e l’uso delle variabili

#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int ora1;
int minuti1;
int secondi1;
int ora2;
int minuti2;
int secondi2;
int differenzasec=0;
int sommasec1=0;
int sommasec2=0;

cout<<"Il primo orario deve essere maggiore del secondo."<<endl;

//lettura del primo orario
cout<<"dammi il primo orario: ";
cin>> ora1;
cout<<"dammi i primi minuti: ";
cin>> minuti1;
cout<<"dammi i primi secondi: ";
cin>> secondi1;

//lettura del secondo orario
cout<<"dammi il secondo orario: ";
cin>> ora2;
cout<<"dammi i secondi minuti: ";
cin>> minuti2;
cout<<"dammi i secondi secondi: ";
cin>> secondi2;


sommasec1=secondi1+(minuti1*60)+(ora1*3600);
sommasec2=secondi2+(minuti2*60)+(ora2*3600);

differenzasec=sommasec1-sommasec2;
cout<<"differenza secondi: "<<differenzasec;

getchar();
return 0;
}

Ultima modifica 20 Ottobre 2023

Lascia un commento