View Full Version : Piccolo problemino maledetto
Ragazzi sarà che sono le 4.20 ma c'è sto problemino del cavolo che mi sta facendo uscire pazzo: Attenzione tutto in C++.
:fagiano:
Problema:
uno shuttle decolla alle ore X, minuti Y, secondi Z del giorno 1 gennaio 2002
lo shuttle sta in volo X1 ore, Y1 minuti, Z1 secondi (per un totale di meno di 24 ore) e poi atterra
dato l’orario di decollo X:Y:Z, e il tempo di volo X1:Y1:Z1, calcolare la data e l’ora di atterraggio
come cavolo si fa? :muro: magari datemi anche qualche dritta! :stordita:
Volutomitra
03-07-2007, 06:41
Ragazzi sarà che sono le 4.20 ma c'è sto problemino del cavolo che mi sta facendo uscire pazzo: Attenzione tutto in C++.
:fagiano:
Problema:
uno shuttle decolla alle ore X, minuti Y, secondi Z del giorno 1 gennaio 2002
lo shuttle sta in volo X1 ore, Y1 minuti, Z1 secondi (per un totale di meno di 24 ore) e poi atterra
dato l’orario di decollo X:Y:Z, e il tempo di volo X1:Y1:Z1, calcolare la data e l’ora di atterraggio
come cavolo si fa? :muro: magari datemi anche qualche dritta! :stordita:
Se X2:Y2:Z2 è l'ora di arrivo e G2 è il giorno:
G2 = 1
Z2 = Z + Z1
Y2 = Y + Y1
se (Z2 >= 60) ==> Z2 = Z2 - 60 Y2 = Y2 + 1
X2 = X + X1
se (Y2 >= 60) ==> Y2 = Y2 - 60 X2 = X2 + 1
se (X2 >= 24) ==> X2 = X2 - 24 G2 = G2 + 1
X = 22, Y = 40, Z = 59
X1 = 4, Y1 = 35, Z1 = 33
G2 = 2, X2 = 3, Y2 = 16, Z2 = 32
EDIT: nei confronti ci va >=, non > ...
eccone un altro :D
#include <iostream.h>
#include <fstream.h>
#include <string.h>
int i,j;
string s1 = "l'area del quadrato";
string s2 = " e' ";
double lato, area;
void main ()
{
for (i=1; i<=5; i++)
{
cout << " " << endl;
cout << " Inserisci la lungezza del lato " << i << endl;
cin >> lato;
area = lato*lato;
cin.ignore();
// while (j<=5)
// {
// j=1;
ofstream suFile ("dati.dat");
suFile << s1 << i << s2 << area<< "\n";
suFile.close();
// j++;
// }
}
}
praticamente voglio far scrivere le stringhe e il risultato della moltiplicazione in un file; ma prima non riuscivo ad andare a capo, e adesso mi scrive direttamente l'ultimo calcolo...:mad:
eccone un altro :D
#include <iostream.h>
#include <fstream.h>
#include <string.h>
int i,j;
string s1 = "l'area del quadrato";
string s2 = " e' ";
double lato, area;
void main ()
{
for (i=1; i<=5; i++)
{
cout << " " << endl;
cout << " Inserisci la lungezza del lato " << i << endl;
cin >> lato;
area = lato*lato;
cin.ignore();
// while (j<=5)
// {
// j=1;
ofstream suFile ("dati.dat");
suFile << s1 << i << s2 << area<< "\n";
suFile.close();
// j++;
// }
}
}
praticamente voglio far scrivere le stringhe e il risultato della moltiplicazione in un file; ma prima non riuscivo ad andare a capo, e adesso mi scrive direttamente l'ultimo calcolo...:mad:
se apri il file ogni volta sostituisce ogni volta il contenuto... aprilo prima del while e chiudilo dopo
EDIT: metti il j=1 prima del while, altrimenti il ciclo è infinito
Pipe: hai la tua firma è irregolare, potresti portarla a termini da regolamento ? Grazie ;)
Signature: 3 righe a 1024 solo testo con un massimo di 3 smiles dell'Hardware Upgrade Forum oppure un'immagine 100 X 50 X 5KB e una riga di testo (non deve andare a capo).
@cionci: ops :p fatto; va bene così?
@angel: non è che abbia capito molto:
#include <iostream.h>
#include <fstream.h>
#include <string.h>
int i,j;
string s1 = "l'area del quadrato ";
string s2 = " e' ";
double lato, area;
void main ()
{
for (i=1; i<=5; i++)
{
cout << " " << endl;
cout << " Inserisci la lungezza del lato " << i << endl;
cin >> lato;
area = lato*lato;
cin.ignore();
ofstream suFile ("dati.dat");
suFile << s1 << i << s2 << area<< "\n";
suFile.close();
}
}
eliminando le righe commentate il prog è così; funziona tutto bene, solo che nel file dati.dat non vengono scritte tutte e 5 le righe, ma solo l'ultima...
@cionci: ops :p fatto; va bene così?
@angel: non è che abbia capito molto:
#include <iostream.h>
#include <fstream.h>
#include <string.h>
int i,j;
string s1 = "l'area del quadrato ";
string s2 = " e' ";
double lato, area;
void main ()
{
for (i=1; i<=5; i++)
{
cout << " " << endl;
cout << " Inserisci la lungezza del lato " << i << endl;
cin >> lato;
area = lato*lato;
cin.ignore();
ofstream suFile ("dati.dat");
suFile << s1 << i << s2 << area<< "\n";
suFile.close();
}
}
eliminando le righe commentate il prog è così; funziona tutto bene, solo che nel file dati.dat non vengono scritte tutte e 5 le righe, ma solo l'ultima...
sposta ofstream suFile("dati.dat"); prima del for e suFile.close(); dopo il for.
deve venire cosi': ofstream suFile ("dati.dat");
for (i=1; i<=5; i++)
{
cout << " " << endl;
cout << " Inserisci la lungezza del lato " << i << endl;
cin >> lato;
area = lato*lato;
cin.ignore();
suFile << s1 << i << s2 << area<< "\n";
}
suFile.close();
questo perchè ogni volta che apri un file in scrittura (non in append) il suo contenuto viene cancellato. percio' appare solo l'ultima linea. spostando l'apertura del file prima del for e la chiusura dopo si risolve il problema.
hope i helped ;)
:sofico: mitico! Non ci avevo pensato. :fagiano:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.