28 de mayo de 2011

Funciones matemáticas

Al utilizar la clase  estándar Math, se tiene acceso al conjunto de funciones matemáticas estándar:
  • Math.abs( x )           para int, long, float y double
  • Math.sin( double )
  • Math.cos( double )
  • Math.tan( double ) 
  • Math.asin( double )
  • Math.acos( double )
  • Math.atan( double )
  • Math.atan2( double,double )
  • Math.exp( double )
  • Math.log( double )
  • Math.sqrt( double )
  • Math.ceil( double )
  • Math.floor( double )
  • Math.rint( double )
  • Math.pow( a,b )
  • Math.round( x )        para double y float
  • Math.random()          devuelve un double
  • Math.max( a,b )        para int, long, float y double
  • Math.min( a,b )        para int, long, float y double
  • Math.E                 para la base exponencial
  • Math.PI                para PI

Método de Bisección!

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package biseccion;
import javax.swing.*;
/**
 *
 * @author Admin
 */
public class Main {
    /**
     * @param args the command line arguments
     */
    public static double f (double x) {
        double rta;
        rta= Math.pow(x,3) + 4 * Math.pow(x,2) -10;
        return (rta);
    }

    /*
    public static double df (double x) {
        double rta;
        rta= x * Math.sin(x);  //Aqui colocar la derivada de f
        return (rta);
    }
    */
    public static void main(String[] args) {
        // TODO code application logic here
        double a, b, p;
        double tol=0.0001;
        boolean sw=true;

        a= Double.parseDouble(JOptionPane.showInputDialog("Deme el valor de a?"));
        b= Double.parseDouble(JOptionPane.showInputDialog("Deme el valor de b?"));

        //JOptionPane.showMessageDialog(null, "Valor de f(a):" + f(a));

        if (f(a)*f(b) <0) {

            do {
                p= (b-a)/2 + a;
                JOptionPane.showMessageDialog(null, "Valor de p:" + p + " - Valor de f(p):" + f(p));
                if (f(p)==0) {
                    JOptionPane.showMessageDialog(null, "La raiz es: " + p);
                    sw=false;
                }
                else if (f(a) * f(p) >0) {
                         a=p;
                      }
                     else {
                         b=p;
                     }

            } while ((sw) && (Math.abs(f(p))>tol));

           if (sw)
              JOptionPane.showMessageDialog(null, "Valor cercano a la raiz:" + p);
        }
        else
              JOptionPane.showMessageDialog(null, "En ese intervalo no se asegura una raiz f(a)=" + f(a) + " - f(b)=" + f(b));
    }
}

2 de mayo de 2011

Ejercicios: Identificación de clases

  1. Diseñar una clase que modele una Cuenta Bancaria.. Una cuenta tiene un número, nombre del cliente,  clave,  saldo y un estado (activa, bloqueada, inactiva entre otros). A una cuenta se le puede: consultar su saldo, consignar, retirar, transferir, bloquear, desbloquear y cambiar clave.

    Leer los datos básicos de la Cuenta Bancarias, hacer una consignación, un retiro y mostrar el saldo  actual.
  2. Una biblioteca ha decidido modelizar su proceso de préstamo, que consta de libros y revistas, para así poder dar mejor servicio a los estudiantes. Los libros son elementos que la biblioteca puede prestar por tres (3) días, mientras que las revistas solo se pueden prestar para fotocopiar y el tiempo máximo es de una (1) hora. El estudiante debe solicitar el préstamo del libro o la revista y devolverlo a mas tardar en el plazo indicado, según corresponda. De no cumplir con el tiempo estipulado del préstamo se debe cobrar una multa de $5.000 por libro por cada día adicional y una multa de $10.000 por revista por cada hora o fracción adicional.

    Determine los objetos que intervienen, con sus atributos y operaciones.