martes, 29 de septiembre de 2009

Ecuación de Segundo Grado en Java

En esta oprtunidad desarrollaremos un código para calcular las raices reales de la siguiente de una ecuación de segundo grado o ecuación cuadrática: -B+-VB2-4AC/2A donde el Descriminante debe de ser Mayor a 0 (B2-4AC).

En función del signo del discriminante conoceremos el número de soluciones de la ecuación:
  • Si el discriminante es menor que 0 la ecuación no tiene solución.
  • Si el discriminante es 0 hay una solución.
  • Si el discriminante es mayor que 0 hay dos soluciones.
Una vez realizada esta breve introducción sobre como resolver ecuaciones de segundo grado, procedemos a realizar el código que nos permita resolver dichas ecuaciones.

Código de la Ecuación de 2do Grado:


import java.io.*;

public class test1{
public static void main(String args[])throws IOException{
BufferedReader x=new BufferedReader(new InputStreamReader (System.in));
String valor;
int a,b,c,d;
double e,rp,rn,sp,sn,md;
System.out.println("Ingrese el Nro A:");
valor = x.readLine(); //leer el objeto x
a=Integer.parseInt(valor); //este es el procedimiento para el primer valor a
System.out.println("Ingrese el Nro B");
valor=x.readLine();
b=Integer.parseInt(valor);
System.out.println("Ingrese el Nro C");
valor=x.readLine();
c=Integer.parseInt(valor);
d= b*b-4*a*c; //Descriminante B2-4AC
if (d > 0)
System.out.println("El Descriminante es: "+d);
else System.out.println("El Descriminante debe de ser mayor a 0 " +d);

e=Math.sqrt(d);//raiz del descrimante
System.out.println("Raiz del Descrimannte : "+e);
md=(2*a);
sp=-b+e;
rp=-sp/(md);
System.out.println("La Raiz Positiva es: "+rp);
sn=-b-e;
rn=-sn/(md);
System.out.println("La Raiz Negativa es: "+rn);

}
}



Para probar el programa a la hora de la ejecución ingresar los siguientes nros:
A=2;B=7;C=3

Los datos a mostrar deben de ser los siguientes:
El Descriminante es: 25
Raiz del Descrimannte : 5
La Raiz Positiva es: 0.5
La Raiz Negativa es: 3

12 comentarios:

  1. Guao que chido,
    me sacaste de apuros

    ResponderEliminar
  2. esta muy chido tu codigo muy buena aporte XD !!!

    ResponderEliminar
  3. import java.util.Scanner;

    public class Ecu {

    public static void main(String str[]) {

    Scanner teclado = new Scanner(System.in);

    System.out.print("Dime el primer numero de la ecuacion ");

    double numero1 = teclado.nextDouble();

    System.out.print("Dime ahora el segundo numero de la ecuacion ");

    double numero2 = teclado.nextDouble();

    System.out.print("Por ultimo, pon el tercer numero ");

    double numero3 = teclado.nextDouble();

    double solucion1 = - numero2 + (Math.sqrt(numero2 * numero2 - 4* numero1 * numero3)) / 2 * numero1;

    double solucion2 = - numero2 - (Math.sqrt(numero2 * numero2 - 4* numero1 * numero3)) / 2 * numero1;

    double d = numero2 * numero2 - 4* numero1 * numero3; //Descriminante B2-4AC

    if (d < 0)

    System.out.println("Lo sentimos.");

    else System.out.println("El Descriminante es: "+d);


    if (d > 0)

    System.out.println("Las soluciones son " + solucion1 + " y " + solucion2 );

    else System.out.println("No tiene solucion real.");

    }
    }

    ResponderEliminar
  4. TAS BN PENDEJO ESTA MAL TU PROGRAMA POR LOS SIGNOS, PINCHE MONO ESTUPIDO, BESAME LOS DOFUS!

    SI NO SABES K ES DOFUS acm1pt

    ResponderEliminar
  5. payasos de mierda vuelvan al cole

    ResponderEliminar
  6. Yo les pasaria uno a modo grafico pero luego luego ;) muajajaja! :P

    ResponderEliminar
  7. import java.util.Scanner;
    class clsSegunda {
    public static void main(String[] args) {
    //Muestra la solucion a una ecuacion de segundo grado
    // de la forma ax2 + bx +c= 0
    //solicita a, b y c via teclado
    double x1,x2;
    Scanner teclado = new Scanner(System.in);
    System.out.print("Escribe el valor de A ");
    int a = teclado.nextInt();
    System.out.print("Escribe el valor de B ");
    int b = teclado.nextInt();
    System.out.print("Escribe el valor de C ");
    int c = teclado.nextInt();

    double d =b*b - 4*a*c;
    System.out.println( "d = " +d);
    if (d > 0) { //Determinante positivo
    d = Math.sqrt(d);
    System.out.println( "SQRT(d) = " +d);
    x1 = (-b + d)/(2*a);
    x2 = (-b- d)/(2*a);
    System.out.println( "x1 = " +x1);
    System.out.println( "x2 = " +x2);
    }

    if (d< 0) { //Determinante negativo, sin solucion
    System.out.println( "No hay solucion " +d);
    }

    if ( d == 0) { //Raices iguales
    x1 = (-b)/(2*a);
    x2 =x1;
    System.out.println( "x1 = " +x1);
    System.out.println( "x2 = " +x2);
    }


    }
    }

    ResponderEliminar
  8. como le hago para k de el resultado de 1o valores de cada variable?

    ResponderEliminar
  9. nesesito un programa en netbeans que realice esto:
    ---------------------------------
    dame la funcion -> (a+b)
    dame el exponente-> 2

    el resultado de : (a+b)^2 = a^2+2ab+b^2
    ---------------------------------
    http://www22.brinkster.com/nosolomates/ayuda/newton.htm

    ResponderEliminar
  10. hola me prodrian ayudar con un programa que calcule ec de primergrado y segunda pero en jcreator !!!!

    ResponderEliminar
  11. Muy mal, si aún saben usar esa fórmula deplorable con sus propias manos llegarán a que sus resultados son ligeramente diferentes. Masivamente incorrectos.

    ResponderEliminar