PDA

Visualizza la versione completa : [C++] Esercizio di calcolo differenza tra due tempi


Mursika
03-05-2010, 20:39
Ciao a tutti,
avrei bisogno di un'aiuto, ho iniziato da poco a programmare in C++.
Qualcuno può aiutarmi con questo esercizio:

"Scrivere un programma che legge in ingresso quattro numeri, li interpreta come due tempi espressi in minuti e secondi, e stampa la differenza tra i due tempi, espressi in secondi.

Come devo fare?

antotan
03-05-2010, 20:54
Hai iniziato da poco quindi utilizzerai i dati primitivi.

1. Dichiari 4 variabili intere che conterrano i dati (minuti/secondi)
2. Input da tastiera con cin
3. sottrazione tra il primo tempo e il secondo tempo (l'algoritmo non è difficile. Fallo con carta e penna e poi riportalo nel programma)
4. stampa del risultato con cout

Mursika
03-05-2010, 21:18
Io scrivo:

#include <iostream>
using namespace std;

int main()

{

int min1,sec1,min2,sec2;

cout<<"Inserire il primo tempo: "<<endl;
cin>>min1>>sec1;

cout<<"Inserire in secondo tempo: "<<endl;
cin>>min2>>sec2;


cout<<"Differenza: "<<(min1-min2)<<(sec1-sec2)<<endl; //QUI è sbagliato perchè dovrei esprimere tutto in secondi.

return 0;
}

Come faccio ad esprimere in secondi la differenza fra i due tempi?

oregon
03-05-2010, 21:20
Come faresti con carta e penna?

Mursika
03-05-2010, 21:33
Lo so che devo dividere i minuti per 60 e poi sommargli i secondi.
Ma però non so come si scrive il programma per far questo.

L'unica cosa che mi viene in mente è scrivere:


#include <iostream>
using namespace std;

int main()

{

int min1,sec1,min2,sec2;

cout<<"Inserire il primo tempo: "<<endl;
cin>>min1>>sec1;

cout<<"Inserire in secondo tempo: "<<endl;
cin>>min2>>sec2;

min=min1-min2;
sec=sec1-sec2;

min=min/60;
sec=sec%60;

cout<<"Differenza: "<<(min+sec)<<endl;

return 0;

}

così potrebbe andar bene?

oregon
03-05-2010, 21:35
Originariamente inviato da Mursika
Lo so che devo dividere i minuti per 60 e poi sommargli i secondi.

Per ottenere i secondi di un minuto tu dividi?

Cioè, se avessi 20 minuti, cosa faresti per ottenere l'equivalente in secondi?

Mursika
03-05-2010, 21:40
....devo moltiplicare.

oregon
03-05-2010, 21:49
Originariamente inviato da Mursika
....devo moltiplicare.

Ecco ... mi pareva ...

Adesso traduci in codice la moltiplicazione ....

Mursika
03-05-2010, 21:51
#include <iostream>
using namespace std;

int main()

{

int min1,sec1,min2,sec2,min,sec;

cout<<"Inserire il primo tempo: "<<endl;
cin>>min1>>sec1;

cout<<"Inserire in secondo tempo: "<<endl;
cin>>min2>>sec2;

min=min1-min2;
sec=sec1-sec2;

min=min*60;
sec=sec%60;

cout<<"Differenza: "<<(min+sec)<<endl;

return 0;

}


Pero supponendo che come 1° tempo metto 3min 45sec e come 2°tempo metto 5min 36sec la differenza viene -111 e non 111.

MItaly
03-05-2010, 21:53
Da che mondo e mondo i delta si fanno sottraendo al secondo dato il primo...

Loading