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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


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

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Ayuda con temporizador
« en: 13 Octubre 2018, 12:08 pm »

Buenas, en uno de los ejercicios que tengo que hacer para clase, se pide realizar un temporizador. Es decir, el usuario introduce la hora actual, y los segundos que quiere añadir, y el programa debe de mostrar correctamente las hora que será pasados esos segundos. No tengo ni idea de cómo. No quiero que nadie me diga el código, simplemente una pista para poder sacarlo por mí mismo. Muchas gracias.


En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.058



Ver Perfil
Re: Ayuda con temporizador
« Respuesta #1 en: 13 Octubre 2018, 14:57 pm »

Saludos,

- Depende de la temática de tu ejercicio, si estás en Algoritmos lo correcto sería utilizar conversiones; si estás en Programación utilizando librerías, entonces lo correcto sería utilizar librerías de tratamiento de fechas/horas.

- Supongo que estás tratando con ejercicios de Algoritmos, entonces has conversiones:

-- Aunque también depende algo del formato de las fechas/horas que vas a utilizar, por ejemplo si la hora dada es: 13:20:23 tomas las horas (13) las pasas a una unidad base por ejemplo segundos: 13 * 3600 = 46800, lo sumas con los minutos convertidos: 20 * 60 = 1200, y a la vez lo sumas con los segundos, quedando: 46800 + 1200 + 23 = 48023 segundos.

-- Para finalizar sumas tus segundos obtenidos con los segundos dados, suponiendo que los segundos dados son 500, entonces: 48023 + 500 = 48523.

-- Listo ahora haces el inverso:

--- Horas = 48523 / 3600 = 13; residuo = 1723
--- Minutos = 1723 / 60 = 28; residuo = 43
--- Segundos = 43

-- Quedando: 13:28:43

- Hay varias maneras, otra podría ser el convertir los segundos dados a horas, minutos y segundos, para luego sumarlos a las horas, minutos y segundos dados al inicio.

- No le veo mucho parecido a un temporizador, a no ser que no lo haya entendido bien...  :xD


En línea

GominaTilted

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Ayuda con temporizador
« Respuesta #2 en: 13 Octubre 2018, 19:41 pm »

Saludos,

- Depende de la temática de tu ejercicio, si estás en Algoritmos lo correcto sería utilizar conversiones; si estás en Programación utilizando librerías, entonces lo correcto sería utilizar librerías de tratamiento de fechas/horas.

- Supongo que estás tratando con ejercicios de Algoritmos, entonces has conversiones:

-- Aunque también depende algo del formato de las fechas/horas que vas a utilizar, por ejemplo si la hora dada es: 13:20:23 tomas las horas (13) las pasas a una unidad base por ejemplo segundos: 13 * 3600 = 46800, lo sumas con los minutos convertidos: 20 * 60 = 1200, y a la vez lo sumas con los segundos, quedando: 46800 + 1200 + 23 = 48023 segundos.

-- Para finalizar sumas tus segundos obtenidos con los segundos dados, suponiendo que los segundos dados son 500, entonces: 48023 + 500 = 48523.

-- Listo ahora haces el inverso:

--- Horas = 48523 / 3600 = 13; residuo = 1723
--- Minutos = 1723 / 60 = 28; residuo = 43
--- Segundos = 43

-- Quedando: 13:28:43

- Hay varias maneras, otra podría ser el convertir los segundos dados a horas, minutos y segundos, para luego sumarlos a las horas, minutos y segundos dados al inicio.

- No le veo mucho parecido a un temporizador, a no ser que no lo haya entendido bien...  :xD
Muchas gracias, ya lo tengo. Al final lo he hecho así: 
Código:
#include <windows.h>
#include <math.h>
#include <iostream>
using namespace std;

int main()
{
unsigned short hora0;
unsigned short minutos0;
unsigned short segundos0;
unsigned int segundos_add;
unsigned short horas1;
unsigned short minutos1;
unsigned short segundos1;

cout << "Este programa implementa un temporizador que determina la hora que sera dentro de x segundos " << endl;
cout << "a partir de la hora introducida por el usuario." << endl << endl;
cout << "Dame la hora actual:" << endl;
cout << "Hora: ";
cin >> hora0;
cout << "Minuto: ";
cin >> minutos0;
cout << "Segundo: ";
cin >> segundos0;
cout << endl;
cout << "Dame los segundos a anadir: ";
cin >> segundos_add;

segundos1 = segundos0 + segundos_add;
minutos1 = minutos0 + segundos1 / 60;
segundos1 = segundos1 % 60;
horas1 = hora0 + minutos1 / 60;
minutos1 = minutos1 % 60;
horas1 = horas1 % 24;

cout << horas1 << ":" << minutos1 << ":" << segundos1;


return 0;
}

Otra duda que me surge (aunque no aparezca en este ejercicio), es si las constantes es mejor declararlas dentro de main o fuera. Es que me han dejado muy claro que de momento no podemos usar variables globales (solo en casos muy puntuales en los siguientes cursos del grado), pero no han mencionado nada de las constantes. Obviamente le preguntaré al profesor, pero opiniones nunca sobran.
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ayuda con temporizador
« Respuesta #3 en: 13 Octubre 2018, 20:37 pm »

Eso es cuestión de diseño: si el dato de la constante lo va a usar una sola función declárala en la función, pero si va a ser un dato usado en diferentes funciones porque forma parte intrínseca el programa hazla global; ir pasándola por argumento a las diferentes funciones si no va a cambiar de valor pues es una pérdida de tiempo de procesador y memoria.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Temporizador
Programación C/C++
Bledniss 4 4,957 Último mensaje 29 Abril 2011, 03:39 am
por Destro-
Temporizador en C
Programación C/C++
PeKiN 2 5,459 Último mensaje 9 Junio 2011, 21:51 pm
por PeKiN
temporizador
PHP
kakashi20 1 2,825 Último mensaje 15 Marzo 2012, 19:31 pm
por #!drvy
Ayuda con Temporizador para archivo .Bat
Scripting
joaquinrekpo 2 8,373 Último mensaje 7 Noviembre 2014, 17:28 pm
por joaquinrekpo
ayuda con un temporizador con la libreria allegro
Programación C/C++
charliowow 0 2,218 Último mensaje 23 Noviembre 2014, 22:38 pm
por charliowow
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines