Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: dxdiag90 en 11 Octubre 2012, 00:00 AM

Título: Programa en c++ que sume segundos en una hora determinada
Publicado por: dxdiag90 en 11 Octubre 2012, 00:00 AM
Amigos, tengo un problema con un programilla en c++

El programa tiene que permitir sumarle a una determinada hora (h:m:s) un numero de segundos y posterior a eso mostrar la hora resultante. (el formato está en 24hrs)
Creo que se utilizan los arreglos de tipo vector pero el problema es que no me da el resultado
Título: Re: Programa en c++ que sume segundos en una hora determinada
Publicado por: avesudra en 11 Octubre 2012, 00:19 AM
Hola dxdiag90 , postea lo que lleves de código con las etiquetas GeSHi , para ver donde has fallado.  :D
Título: Re: Programa en c++ que sume segundos en una hora determinada
Publicado por: dxdiag90 en 11 Octubre 2012, 01:05 AM
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
   int hin,min,seg,segsum;
   int soloSegundos,hOut,mOut,sOut;
//capturar en la pantalla los datos
cout<<"Digite la hora (24hrs): ";
cin>>hin;
cout<<"Digite los minutos: ";
cin>>min;
cout<<"DIgite segundos: "<<endl;
cin>>seg;
//Calculo todo en seg
soloSegundos = hin*3600+(min*60)+seg;

cout<<"Digite los segundos a sumar: ";
cin>>segsum;


soloSegundos += segsum;

hOut = soloSegundos / 3600;
mOut = ((soloSegundos /60)-(hOut*60));
sOut=(soloSegundos-(mOut)-(hOut));
cout<<"Horas:  "<<hOut;
cout<<"  Minutos:"  <<mOut;
cout<<"  Segundos:  "<<sOut;
   system("PAUSE");
   return EXIT_SUCCESS;
}
Título: Re: Programa en c++ que sume segundos en una hora determinada
Publicado por: avesudra en 11 Octubre 2012, 01:13 AM
Había puesto algo pero nada me lo inventé todo , ya te lo dijo leosansan.
Título: Re: Programa en c++ que sume segundos en una hora determinada
Publicado por: leosansan en 12 Octubre 2012, 13:38 PM
En segundos no restastes los correspondientes a minutos y horas. El resto estaba O.K:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int hin,min,seg,segsum;
    int soloSegundos,hOut,mOut,sOut;
//capturar en la pantalla los datos
cout<<"Digite la hora (24hrs): ";
cin>>hin;
cout<<"Digite los minutos: ";
cin>>min;
cout<<"DIgite segundos: "<<endl;
cin>>seg;
//Calculo todo en seg
soloSegundos = hin*3600+(min*60)+seg;

cout<<"Digite los segundos a sumar: ";
cin>>segsum;


soloSegundos += segsum;

hOut = soloSegundos / 3600;
mOut = ((soloSegundos /60)-(hOut*60));
sOut=(soloSegundos-(mOut*60)-(hOut*3600));
cout<<"Horas:  "<<hOut;
cout<<"  Minutos:"  <<mOut;
cout<<"  Segundos:  "<<sOut<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

Título: Re: Programa en c++ que sume segundos en una hora determinada
Publicado por: rir3760 en 13 Octubre 2012, 03:04 AM
Una opción similar es mediante el uso de la función "div" (prototipo en <stdlib.h> o <cstdlib>, dependiendo del caso). Ella realiza la división entera y retorna un objeto de tipo "struct div_t" con dos campos: "quot" es el cociente y "rem" el residuo.

Un ejemplo de su uso (en C) es:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
   int h;
   int m;
   int s;
   int incr;
   div_t tmp;
   
   srand((unsigned) time(NULL));
   h = rand() % 24;
   m = rand() % 60;
   s = rand() % 60;
   printf("%02d:%02d:%02d\n", h, m, s);
   
   incr = rand() % 180;
   printf("+ %d segs\n", incr);
   
   tmp = div(h * 3600 + m * 60 + s + incr, 3600);
   printf("%02d:", tmp.quot);
   tmp = div(tmp.rem, 60);
   printf("%02d:%02d\n", tmp.quot, tmp.rem);
   
   return EXIT_SUCCESS;
}


Un saludo
Título: Re: Programa en c++ que sume segundos en una hora determinada
Publicado por: ankora45 en 14 Octubre 2012, 09:37 AM
Hola te recomendaria que no llamaras a system para hacer una pausa porque no es multiplataforma en linux no va te recomendaria getchar, tambien no retornaste nada en el main int main(); return 0; aqui te dejo el code:
Código (cpp) [Seleccionar]
#include <cstdlib>
#include <iostream>
#include <cstdio>

using namespace std;

int main(int argc, char *argv[])
{
    int hin,min,seg,segsum;
    int soloSegundos,hOut,mOut,sOut;
cout<<"Digite la hora (24hrs): ";
cin>>hin;
cout<<"Digite los minutos: ";
cin>>min;
cout<<"DIgite segundos: "<<endl;
cin>>seg;
soloSegundos = hin*3600+(min*60)+seg;

cout<<"Digite los segundos a sumar: ";
cin>>segsum;


soloSegundos += segsum;

hOut = soloSegundos / 3600;
mOut = ((soloSegundos /60)-(hOut*60));
sOut=(soloSegundos-(mOut*60)-(hOut*3600));
cout<<"Horas:  "<<hOut;
cout<<"  Minutos:"  <<mOut;
cout<<"  Segundos:  "<<sOut<<endl;
cout<<"Pulse intro para finalizar"<<endl;
getchar();
getchar();
return 0;
}
Título: Re: Programa en c++ que sume segundos en una hora determinada
Publicado por: Puntoinfinito en 17 Octubre 2012, 00:39 AM
Para no gastar RAM (?) mejor utilizar cin.get() xD