Me sirvio demasiado tu video y los comentarios de algunos, para poder investigar más en foros y poder hacerlo sin decimales de una forma mas simple. GRACIAS.
Chico(a)s, sí se pueden imprimir los números sin decimales, sólo tienen que poner la función TRUNC() en las operaciones del subprograma. Así: H -> TRUNC(S/3600); S -> TRUNC(S mod 3600); M -> TRUNC(S/60); S -> TRUNC(S mod 60).
@@djpdh Hola, el comentario lo hice hace tiempo, ya no me acuerdo jaja. Pero inténtalo con minúsculas y si no sale, inténtalo con mayúsculas, o al revés.
@@djpdh Sí, fue como viajar en el tiempo xD de hecho vi mi comentario y no entendí nada de lo que escribí, hasta dudé de haberlo escrito yo jaja. Todavía no soy programador porque me cambié a finanzas (porque se adapta más a mi perfil), pero pienso retomar la programación en un futuro.
Usando estas formulas en las variables de la función, da el resultado exacto y sin puntos decimales: horas = (s - s mod 3600) / 3600 segundos = (s mod 3600) mod 60 minutos = (s mod 3600) - segundos
"No podemos transformarlos en enteros" Pues en realidad lo que se puede hacer es en vez de dividir las horas en 3600 de entrada, hacer primero el: segundos mod 3600, ese resultado se lo restamos al valor total de los segundos, y a ese nuevo valor dividirlo en los 3600, ahí si podemos tener completo el entero de las horas, lo mismo para los minutos psss porque en un reloj no podrías tener decimales :P
En mi caso utilicé un ciclo, el cual lo que hace es ir sumando un iterador desde 1 hasta el número de segundos ingresados por el usuario, y le sumé dos condicionales, uno que le suma + 1 a los minutos si seg (mi variable para ir aumentando los segundos al final del ciclo, y que aclaro empieza valiendo 1) = 0 ; y otra que le suma + 1 a las horas si min (variable para los minutos) = 6. Al final imprimo los 3 valores finales (restándole 1 a la variable de los seg) y me da sin problemas; sin decimales extra. Aclaro que este programa sirve para evitar eso y en caso de no tener disponible una función para retirar los decimales, pero posiblemente sea menos eficiente ya que se debe hacer un ciclo miles de veces y eso puede tardar un poco si se aumenta mucho los segundos (al ingresar 2'000.000 de segundos, me tardó unos cuantos segundos en finalizar el programa).
nel olvida eso lo mas facil es usar 2 ciclos while uno para horas y otro para minutos (ambos con contadores ) y con esto te entrega el resultado sin decimales y de manera muy facil y rapido podes ingresarle 4000000 segundos y no tarda nada en ejecutarse
@@juan_pach si estaria chido discutirlo con el pero no existe aun un algoritmo capaz de eso por cierto muy pronto voy a subir un video de como crear un menu en un programa (para ejecutarlo, volver al menu o salir del programa) y que el programa al ingresarle 3 numeros los imprima de mayor a menor e incluso detecte si los numeros son iguales mediante subprocesos o funciones usando las estructuras while ,switch, if-else anidados y funciones.
@@juan_pach claro que usando algoritmos de ordenamiento se pueden ordenar mas numeros y mas facilmente pero el chiste es practicar con las estructuras ah y esa idea me salio del curso de pseint del alex taboa
No se si hubiese sido conveniente hacer esa salvedad de que DFD solo pone los numeros reales, tal cual, con decimales para asi evitar que los que hagan el problema sin ayuda no busquen soluciones exactas (sin decimales) y se demoren mucho tratando de llegar a la solucion "ideal"
Me sirvio demasiado tu video y los comentarios de algunos, para poder investigar más en foros y poder hacerlo sin decimales de una forma mas simple. GRACIAS.
Chico(a)s, sí se pueden imprimir los números sin decimales, sólo tienen que poner la función TRUNC() en las operaciones del subprograma. Así: H -> TRUNC(S/3600); S -> TRUNC(S mod 3600); M -> TRUNC(S/60); S -> TRUNC(S mod 60).
necesariamente en mayuscula?
@@djpdh Hola, el comentario lo hice hace tiempo, ya no me acuerdo jaja. Pero inténtalo con minúsculas y si no sale, inténtalo con mayúsculas, o al revés.
@@chavamartinez3102 ajjaja si lo se, fue como viajar en el tiempo para ti supongo xd, dime ya eres un programador profesional?
@@djpdh Sí, fue como viajar en el tiempo xD de hecho vi mi comentario y no entendí nada de lo que escribí, hasta dudé de haberlo escrito yo jaja. Todavía no soy programador porque me cambié a finanzas (porque se adapta más a mi perfil), pero pienso retomar la programación en un futuro.
@@chavamartinez3102 aun así, gracias por la función TRUNC
Usando estas formulas en las variables de la función, da el resultado exacto y sin puntos decimales:
horas = (s - s mod 3600) / 3600
segundos = (s mod 3600) mod 60
minutos = (s mod 3600) - segundos
lo corrijo minutos=(s mod 3600-seg)/60
la re buena hermano , el profesor nuestro no nos enseña nada y nos pide muchos trabajos
se le aprecia querido compañero
El ya no está :(
Muchas gracias me ayudo mucho
min 3:29 alguien sabe lo escribió, no se ve bien en la pantalla
ya sabes bro?
necesito ayuda urgente
"No podemos transformarlos en enteros" Pues en realidad lo que se puede hacer es en vez de dividir las horas en 3600 de entrada, hacer primero el: segundos mod 3600, ese resultado se lo restamos al valor total de los segundos, y a ese nuevo valor dividirlo en los 3600, ahí si podemos tener completo el entero de las horas, lo mismo para los minutos psss porque en un reloj no podrías tener decimales :P
En mi caso utilicé un ciclo, el cual lo que hace es ir sumando un iterador desde 1 hasta el número de segundos ingresados por el usuario, y le sumé dos condicionales, uno que le suma + 1 a los minutos si seg (mi variable para ir aumentando los segundos al final del ciclo, y que aclaro empieza valiendo 1) = 0 ; y otra que le suma + 1 a las horas si min (variable para los minutos) = 6. Al final imprimo los 3 valores finales (restándole 1 a la variable de los seg) y me da sin problemas; sin decimales extra.
Aclaro que este programa sirve para evitar eso y en caso de no tener disponible una función para retirar los decimales, pero posiblemente sea menos eficiente ya que se debe hacer un ciclo miles de veces y eso puede tardar un poco si se aumenta mucho los segundos (al ingresar 2'000.000 de segundos, me tardó unos cuantos segundos en finalizar el programa).
nel olvida eso
lo mas facil es usar 2 ciclos while uno para horas y otro para minutos (ambos con contadores ) y con esto te entrega el resultado sin decimales y de manera muy facil y rapido podes ingresarle 4000000 segundos y no tarda nada en ejecutarse
4000000 seg =
1111 h 6 min 40 seg
@@eldetective_ing Yo hice esto:
Inicio
'Ingrese los segundos'
seg
Operacion(seg)
Funcion
Operacion(seg)
hora
¿Importa el orden de las ecuaciones?
Puedes obtener el valor entero restando el mod antes de dividirlo
y en consola como seria ?
En el nuevo raptor no se pueden imprimir varias variables y qie las muestre asi como en el video
Hola gente, venia a decir que se puede colocar trunc para hacer la division solo entre enteros, es decir el resultado te lo dar sin decimal
lo mas facil es usar 2 ciclos while uno para horas y otro para minutos y con esto te entrega el resultado sin decimales y de manera muy facil
El lamentablemente ya no está :(
@@juan_pach si estaria chido discutirlo con el pero no existe aun un algoritmo capaz de eso
por cierto muy pronto voy a subir un video
de como crear un menu en un programa
(para ejecutarlo, volver al menu o salir del programa)
y que el programa al ingresarle 3 numeros los imprima de mayor a menor e incluso detecte si los numeros son iguales mediante subprocesos o funciones
usando las estructuras
while ,switch, if-else anidados y funciones.
@@juan_pach claro que usando algoritmos de ordenamiento se pueden ordenar mas numeros y mas facilmente pero el chiste es practicar con las estructuras
ah y esa idea me salio del curso de pseint del alex taboa
lo hice de otra manera usando dos ciclos y me salio perfecto ojo es diferente a este dfd ya que no use esas formulas
Y como se hace un menú de cambio horario muchas gracias
Me temo que ya no podrá responderte :((( ;(((
No se si hubiese sido conveniente hacer esa salvedad de que DFD solo pone los numeros reales, tal cual, con decimales para asi evitar que los que hagan el problema sin ayuda no busquen soluciones exactas (sin decimales) y se demoren mucho tratando de llegar a la solucion "ideal"
Yo lo hice antes de ver el video y me tomo un ratillo, pero lo logre... lo que no puedo es imprimir el resultado de los subprogramas en el main juntos
vien bidio guapo
no se si ya se dieron cuenta pero el murio :c
no mms enserio?