Vous êtes sur la page 1sur 8

Escuela Politcnica Nacional

Facultad de Ingeniera de Sistemas


Programacin II

Nombre: Jonathan Paul Caiza Llumitaxi


Tema: ecuacin

Fecha: 16/10/2015

b24 ac
2a

Grupo:

GR1
En el ejercicio realizado en clase, Discriminante, resuelve (b2-4ac)/2

Anlisis del Problema:


2

a) El

problema nos pide calcular el discriminante con la formula

b 4 ac
2a

utilizando como atributos 3 nmeros enteros (a, b, c) de la clase (Discriminante)


y desplegar los resultados en la clase (Aplicacin)
Para esto primero en la clase (Discriminante) defino los atributos privados (a, b, c)
c) En el constructor vaco despus de definir nuestro ingreso de datos en variables
b)

string corregimos el error de divisin para 0 con if (esNumero(aString, "a")){


a=Integer.parseInt(aString);

if(aString!="0"&&a==0)

{ JOptionPane.showMessageDialog(null, "No pude ingresar un a=0 ya que no


existe division para 0"); }
d) Y creamos un mtodo para corregir el error de ingreso de letras utilizando un try y

un catch(Exception e)
e) Despus definimos el mtodo ( public double discriminante() ) en donde
realizaremos

el

proceso

para

determinar

el

discriminante

con

((Math.pow(this.b,2))-4*this.a*this.c)/(2*/this.a)
f) Luego en la clase (Aplicacin) dentro de (public static void main(String[] args)
{) creamos nuestro ciclo de repeticin de datos con nuestro do - while(op!=1)
g) Dentro de este ciclo instanciamos nuestro objeto discriminante con
(Discriminante discriminante = new Discriminante ();)
h) Y para imprimir los resultados utilizando
System.out.println(discriminante.toString());
System.out.println("El discriminate es: "+ discriminante.discriminante());

Cdigo y ejecucin

Discriminate

Aplicacion

package com.epn;

package com.epn;

import java.io.IOException;
import java.util.StringTokenizer;

import java.io.IOException;
import javax.swing.JOptionPane;

import javax.swing.JOptionPane;
public class Aplicacion {
public class Discriminante {
private int a;
private int b;
private int c;
//sobrecarga de constructores
public Discriminante() throws IOException {
super();
String line, aString, bString, cString;

public static void main(String[] args) throws


IOException {
int opc;
do{
Discriminante
discriminante=new Discriminante();
System.out.println(discriminante);

line=JOptionPane.showInputDialog("Ingrese a b y
c separado por comas");
StringTokenizer tokens= new
StringTokenizer(line,",");
aString= tokens.nextToken();
bString= tokens.nextToken();
cString= tokens.nextToken();
if (esNumero(aString, "a"))
{
a=Integer.parseInt(aString);
if(aString!="0"&&a==0)
{
JOptionPane.showMessageDialog(null, "No pude ingresar
un a=0 ya que no existe division para 0");
}
}
if (esNumero(bString, "b"))
b=Integer.parseInt(bString);
if (esNumero(cString, "c"))
c=Integer.parseInt(cString);
}
public Discriminante(int a, int b, int c) {
super();
this.a = a;
this.b = b;
this.c = c;
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}

System.out.println("El discriminante es:


"+discriminante.discriminante());
opc=JOptionPane.showConfirmDialog(null,
"Desea Corregir los valores?", "Opciones",
JOptionPane.YES_NO_OPTION);
}while(opc==JOptionPane.YES_OPTIO
N);
System.out.println("***** El ciclo termino
****");
}
}

public void setB(int b) {


this.b = b;
}
public int getC() {
return c;
}
public void setC(int c) {
this.c = c;
}
@Override
public String toString() {
return "Discriminante [a=" + a + ", b=" + b + ", c="
+ c + "]";
}

public boolean esNumero(String string, String nombre)


{
try{
//this.a=Integer.parseInt(tokens.nextTok
en());
Integer.parseInt(string);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,
"Ingreso mal "+ nombre +" solo se aceptan numeros");
return false;
}
return true;
}
public double discriminante()throws ArithmeticException{
return (((Math.pow(this.b, 2))-(4*this.a*this.c))/
(2*this.a));
}
}

Lo que aprend:
Aprend el control de errores y optimizacin de cdigo
Control de error matemtico divisin para 0
Bibliografa:

Excepciones
estndar.

Recuperado

de:

http://campus.virtualepn.edu.ec/mod/book/view.php?
id=65604&chapterid=2233
Censor csmico (2010), Lectura desde teclado. Recuperado de:
http://censorcosmico.blogspot.com/2010/02/lectura-desde-tecladoinputstreamreader.html.