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