elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con programa...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema con programa...  (Leído 5,135 veces)
Wazzp

Desconectado Desconectado

Mensajes: 34


We have seen the fall of the elite...


Ver Perfil
Problema con programa...
« en: 1 Septiembre 2010, 01:08 am »

Bueno tengo un problemilla..
Estoy escribiendo un programa que tome una cantidad de segundos introducida por el usuario, y cuente la cantidad de horas, minutos y segundos que hay en esa cantidad..
Ahora bien,Solo hice la parte en la que el usuario introduce los datos, se lo mande a un amigo para que pruebe el programa y cada vez que presiona enter,el mismo se cierra.. les dejo el codigo.. que deberia agregar para que el programa no se cierra con enter?
PD:La parte de "Presione enter para continuar" La voy a quitar una vez solucione este problema y pueda avanzar con el prog.. Tambien,Deberia usar la funcion if para hacer la parte del calculo de horas min y segs? Gracias por la ayuda!

Código
  1. #include <iostream>
  2. main()
  3. {
  4. using namespace std;
  5.  
  6. int segundos;
  7. cout << "Ingrese una cantidad de segundos" << endl;
  8. cin >> segundos;
  9. cout << "Ingresaste :";
  10. cout << segundos << endl;
  11. cout << "Presione enter para continuar." << endl;
  12. return 0;
  13. }


En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Problema con programa...
« Respuesta #1 en: 1 Septiembre 2010, 02:56 am »

Código
  1. #include <iostream>
  2. int main()// Valor de retorno debe ser un entero.
  3. {
  4. using namespace std;
  5.  
  6. int segundos;
  7. cout << "Ingrese una cantidad de segundos" << endl;
  8. cin >> segundos;
  9. cout << "Ingresaste :";
  10. cout << segundos << endl;
  11. cout << "Presione enter para continuar." << endl;
  12. cin.ignore();//Descartas datos innecesarios que puedan existir en el buffer
  13. cin.get();//Esperas que se presione una tecla.
  14. return 0;
  15. }

Utiliza el buscador del foro, podrás encontrar varios hilos que explican distintas formas de hacer pausas, que debería usarse, que no, etc.

Saludos


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Problema con programa...
« Respuesta #2 en: 1 Septiembre 2010, 06:43 am »

En lo que te refieres a si es necesario utilizar if para las horas la respuesta es no, simplemente tienes que pensar en una manera optima de pasar de segundo a minutos, y de minutos a horas. ten en cuenta que:

1hr = 60min = 3600seg y 1min = 60seg.

Esto te lleva a la siguiente deduccion, si divides la cantidad de segundos entre 3600 te dara la cantidad de horas... puedes restar la cantidad de segundos que utilizaste. entonces los segundos restantes puedes dividirlos entre 60 y te daran la cantidad de minutos, nuevamente vuelves y restas la cantidad de segundos utilizados y solo te quedarian los segundos. Esta forma es mas rapida, debido a que evitas tener que ejecutar varias veces una porcion  de codigo.

Código
  1. h=s/3600;
  2. s-=(h*3600);
  3. m=s/60;
  4. s-=(m*60);
« Última modificación: 1 Septiembre 2010, 06:58 am por Lord R.N.A. » En línea

Gerik

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Problema con programa...
« Respuesta #3 en: 1 Septiembre 2010, 19:38 pm »

Código
  1. # include <conio.h>
  2. # include <stdio.h>
  3. # include <iostream.h>
  4.  
  5. class Tiempo
  6.      {public:
  7.       int s,h,m,seg;
  8.  
  9.       Tiempo(){s,h,m,seg=0;
  10.               };
  11.       ~Tiempo(){};
  12.       void time()
  13.         {cout<<"...:::Conversion De Segundos A Horas Minutos y Segundo:::...";
  14.         cout<<"\n\nDigite Los Segundos a Convertir: ";
  15.         cin>>s;
  16.         if(s>=3600)
  17.               {h=s/3600;
  18.                m=(s%3600)/60;
  19.                seg=(s%3600)/60;
  20.                }
  21.         clrscr();
  22.         cout<<"La Conversion de Segundos a Horas Minutos y Segundos es: ";
  23.         cout<<"\n\n"<<h<<" Horas";
  24.         cout<<"\n"<<m<<" Minutos";
  25.         cout<<"\n"<<seg<<" Segundos";
  26.         getch();
  27.        }
  28.      };
  29. main(){
  30.     Tiempo obj;
  31.     obj.time();
  32.     }

Espero Te sirva
En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Problema con programa...
« Respuesta #4 en: 1 Septiembre 2010, 20:22 pm »

Que conste que ya Gerik le completo la tarea...

Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::cin;
  4. using std::endl;
  5. int main()
  6. {
  7. int h, m, s;
  8. cin>>s;
  9. h=s/3600;
  10. s-=(h*3600);
  11. m=s/60;
  12. s-=(m*60);
  13. cout<<"Horas: "<<h<<" Minutos: "<<m<<" Segundos: "<<s<<endl;
  14. cin.ignore();
  15. cin.get();
  16. }
  17.  

@Gerik: Conio.h no es standar.
En línea

Wazzp

Desconectado Desconectado

Mensajes: 34


We have seen the fall of the elite...


Ver Perfil
Re: Problema con programa...
« Respuesta #5 en: 1 Septiembre 2010, 22:07 pm »

Gracias a todos por la ayuda.. No me habia dado cuenta de esos errores.. Yo habia leido lo del cin.ignore,lo intente pero pero igual no funcionaba, no sabia que tambien habia que usar el .get.. Recien me levanto de una siesta asi que ni bien me despierto bien me pongo a completar el codigo. Voy a intentar ignorar el codigo de Gerik asi lo hago yo solo,Gracias por la ayuda igual Gerik!
En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Problema con programa...
« Respuesta #6 en: 1 Septiembre 2010, 22:13 pm »

Cuando termines el codigo postealo... no creo que dures mucho ahora que ya esta la idea.
En línea

Wazzp

Desconectado Desconectado

Mensajes: 34


We have seen the fall of the elite...


Ver Perfil
Re: Problema con programa...
« Respuesta #7 en: 1 Septiembre 2010, 22:15 pm »

Gracias R.N.A. De todas formas,Aunque el codigo ya este hecho, Medio como que lo ignore al pasar porque me gustaria hacerlo yo solo para verificar que estoy entendiendo.. mi mas grave problema es que los libros que baje son de C y no de C++ por eso hay cosas que no funcionan XD!!! Soy medio tonto ya se pero todo a su tiempo. Mas tarde me paso por la sección de ejercicios o de libros para buscar mas info. Esto de la programacion no es tan dificil como pense!

Ns vemos.

Lh: Utiliza el botón modificar.

Entonces.... el codigo que quedo fue...
Código
  1. #include <iostream>
  2. int main()
  3. {
  4. using namespace std;
  5.  
  6. int s;
  7. cout << "Ingrese una cantidad de segundos" << endl;
  8. cin >> s;
  9. int h,m;
  10. h=(s/3600);
  11. s-=(h*3600);
  12. m=(s/60);
  13. s-=(m*60);
  14. cout << "" <<std::endl;//agrega una linea para facitiliar la lectura
  15. cout <<"Horas:"<<h<<endl;
  16. cout << "Minutos:"<<m<<endl;
  17. cout << "Segundos:"<<s<<endl;
  18. cin.ignore();
  19. cin.get();
  20. return 0;
  21. }code]
  22.  
  23. Por cierto,Hay alguna manera de agregar una linea sin usar el cout sin nada entre ""? Probe el \n y no sirvio... o lo use mal.
« Última modificación: 2 Septiembre 2010, 22:41 pm por Littlehorse » En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Problema con programa...
« Respuesta #8 en: 2 Septiembre 2010, 22:46 pm »

Citar
Por cierto,Hay alguna manera de agregar una linea sin usar el cout sin nada entre ""? Probe el \n y no sirvio
   
Código
  1.   cout<<"Cad1 \n";
  2.   cout<<"\n";
  3.   cout<<endl;
  4.   cout<<"Cad2"<<endl;
  5.   cout<<"Cad3"<<"\n";
  6.   etc>
  7.  
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: Problema con programa...
« Respuesta #9 en: 2 Septiembre 2010, 23:28 pm »

Citar
Por cierto,Hay alguna manera de agregar una linea sin usar el cout sin nada entre ""? Probe el \n y no sirvio

También puedes usar endl.

Saludos :P
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con programa
.NET (C#, VB.NET, ASP)
mby 1 2,218 Último mensaje 13 Junio 2020, 01:02 am
por Tachikomaia
Problema con programa
Ingeniería Inversa
eko84 2 4,386 Último mensaje 13 Septiembre 2020, 10:52 am
por eko84
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines