Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Chavicha7 en 28 de Septiembre 2022, 17:26

Título: Ayuda Ejercicio Java
Publicado por: Chavicha7 en 28 de Septiembre 2022, 17:26
Hola a todos,

Estoy empezando en el mundillo y he empezado por Java. Me han pedido que diseñe un programa para resolver la siguiente ecuacion de primer grado:
C1x + C2 = 0

En donde C1 y C2 las inicializo en el metodo main. He visto los tipos de operadores que hay y el if-else pero nada mas, asique se supone que con eso tengo que poder resolverla. El problema es que no se por donde cogerlo, no encuentro ninguna solucion y me pide que el resultado lo exprese con 4 decimales, estoy bastante perdido.

Un saludo y gracias de ante mano
Título: Re: Ayuda Ejercicio Java
Publicado por: Kabuto en 29 de Septiembre 2022, 01:39
Hola.

Lo primero, es asegurarnos de que sabemos resolver la ecuación mentalmente, sin Java ni nada...

Tenemos que C1x + C2 = 0
O sea, dos coeficientes (c1 y c2) y una incógnita, que es la x.

Para resolver la incógnita, hay que pasar los coeficientes al otro lado del =

El segundo coeficiente, que está sumando, pasará restando. O sea, con signo negativo.
El 0 desaparece, porque 0 no es nada...

C1x = -C2

Ahora hay que pasar el primer coeficiente, que como está multiplicando, ha de pasar dividiendo:
x = -C2 / C1

Y ya tenemos la operación que hay que hacer para despejar la x.
Hay que hacer una división negativa, de C2 entre C1.

Y eso es lo que nos dará el valor de x.
Solo hay que tener en cuenta que para que haya solución, C1 ha de ser distinto de 0.
Porque no podemos dividir un número entre 0, así que si C1 tuviera valor 0, entonces la ecuación no tendría solución.

Bien, pues todo esto, es lo que tenemos que programar en Java.

Así que, tras pedir los valores de los dos coeficientes, lo primero es comprobar con un IF si C1 tiene valor 0, en cuyo caso informamos de que no hay solución y se acabó.

Si no, si C1 es distinto de 0, entonces hacemos la división negativa y mostramos el resultado.

Para que el resultado salga con 4 decimales, podemos usar el método printf().
Esa "f" es de "formato", es decir, podemos indicar que formato queremos que tenga un determinado texto en pantalla.

Con el "comodín" %.4f podemos indicar que queremos que un valor float (o double) se muestre siempre con cifras después del punto decimal.

Bien, ha tu mismo un intento de resolverlo con los pasos que he dicho.
Olvida de momento lo de los 4 decimales si no conoces printf(), esto es lo de menos.

Cuando lo hayas hecho, compara con el código que pongo a continuación, a ver si hemos seguido la misma lógica:
Código: [Seleccionar]
public class Ecuacion {

public static void main(String[] args) {

double c1, c2, x;
Scanner teclado = new Scanner(System.in);

System.out.println("\t\tECUACION  C1x + C2 = 0");

System.out.print("\nIndique valor C1: ");
c1 = teclado.nextDouble();
System.out.print("Indique valor C2: ");
c2 = teclado.nextDouble();

if (c1 == 0)
//Si coeficiente 1 es 0, no hay solución, ya que no podemos dividir entre 0
System.out.println("\nNo hay solución");
else {
x = -c2 / c1;
System.out.printf("\nValor de x: %.4f", x);
}

System.out.println("\n\n\t\tFIN DE PROGRAMA");
teclado.close();
}

}


Cualquier duda que tengas, solo tienes que preguntar.
Un saludo.
Título: Re: Ayuda Ejercicio Java
Publicado por: Chavicha7 en 29 de Septiembre 2022, 19:38
Le he entendido bastante bien con tu explicación, muchas gracias!

Me he dado cuenta que estaba enfocando mal el problema ya que pensaba que el programa tenia que resolver la ecuación con solo introducir la estructura de esta, por así decirlo.

Muchas gracias de nuevo, un saludo!
Título: Re: Ayuda Ejercicio Java
Publicado por: Kabuto en 30 de Septiembre 2022, 01:08
Le he entendido bastante bien con tu explicación, muchas gracias!

Me he dado cuenta que estaba enfocando mal el problema ya que pensaba que el programa tenia que resolver la ecuación con solo introducir la estructura de esta, por así decirlo.

Muchas gracias de nuevo, un saludo!

Puff.. eso que dices se puede hacer claro, pero ya es algo bastante más avanzado.
Yo tampoco sabría bien como hacerlo...

Si tienes curiosidad, esta página web (https://es.symbolab.com/solver/step-by-step/ax%2Bb%3D0?or=input) sí lo hace.

En su campo de texto escribes la ecuación, usando letras como a, b, c,... y no C2 (ya que pensará que es  c * 2), la analiza y te indica los pasos a seguir para solucionarla.

Bueno, no se si las analiza y resuelve...,  o que tiene pregrabadas las soluciones. En cualquier caso es interesante.

Un saludo.