Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: @mayakoski en 04 de Diciembre 2019, 00:50

Título: Clase Math y funciones matemáticas en java round floor ceil ejercicio CU00906C
Publicado por: @mayakoski en 04 de Diciembre 2019, 00:50
Mi solución al ejercicio CU00906C del curso pdf de programación java avanzada de aprenderaprogramar

Código: [Seleccionar]
package claseCU00906C;

import java.util.Scanner;

public class Ejercicio {
public static void main(String[] args) {
Scanner entradaTeclado = new Scanner(System.in);
double segundos = 0;
boolean continuar = true;
while (continuar ) {
System.out.println("Introduzca valor de segundos: ");
segundos = entradaTeclado.nextInt();
System.out.println("El minuto es el " + (int) Math.ceil(90*segundos/5400));
System.out.print("¿Otro valor (s/n)? " );
if (entradaTeclado.next().charAt(0)!='s') {
continuar = false;
}
}
}
}
Título: Re:Clase Math y funciones matemáticas en java round floor ceil ejercicio CU00906C
Publicado por: Ogramar en 12 de Agosto 2020, 21:12
Buenas, no veo bien resuelto el ejercicio porque el enunciado nos dice "El minuto 1 se considera que abarca desde los 0 segundos hasta los 59 segundos" mientras que el programa nos devuelve esto:

Introduzca valor de segundos:
59
El minuto es el 1
¿Otro valor (s/n)? s
Introduzca valor de segundos:
60
El minuto es el 1
¿Otro valor (s/n)?

Como se puede ver, según lo que se pide, el segundo 60 debería considerarse minuto 2 mientras que el código nos sigue diciendo que es minuto 1.

Salu2
Título: Re:Clase Math y funciones matemáticas en java round floor ceil ejercicio CU00906C
Publicado por: @mayakoski en 14 de Agosto 2020, 01:55
He revisado, y encontré algunas falencias, incluida la observada. Realicé los cambios y dejo el modificado. Gracias por la revisión


Código: [Seleccionar]
package claseCU00906C;

import java.util.Scanner;

public class Ejercicio {
public static void main(String[] args) {
Scanner entradaTeclado = new Scanner(System.in);
double segundos = 0;
boolean continuar = true;
while (continuar ) {
do {
System.out.println("Introduzca valor de segundos: ");
segundos = entradaTeclado.nextInt();
if(segundos <0 || segundos > 5400) {
System.out.println("El numero no es valido");
}
} while (segundos < 0 || segundos > 5400);

if(Math.ceil(90*segundos/5400)%(90*segundos/5400) == 0 && segundos != 5400) {
System.out.println("El minuto es el " + ((int) Math.ceil(90*segundos/5400)+1));
}else {
System.out.println("El minuto es el " + (int) Math.ceil(90*segundos/5400));
}
// System.out.println(Math.ceil(90*segundos/5400)%(90*segundos/5400));

System.out.print("¿Otro valor (s/n)? " );
if (!entradaTeclado.next().equalsIgnoreCase("s")) {
continuar = false;
}
}
System.out.println("Ha terminado el programa");
}
}