martes, 23 de agosto de 2011

Como Programar en Java: Ejercicio 4.36

Aquí esta el ejercicio 4.36 de Como Programar en Java séptima edición.

package com.jlm.ccb.ejercicios.capitulo4;

import java.util.Scanner;

/**
 * Clase encargada de saber si tres lados podrían
 * formar un triángulo rectángulo.
 * Ejercicio 4.36
 * @author LorettoTG
 * @version 1.0
 */
public class TrianguloRectangulo {
    /**
     * Método encargado de saber si es un triángulo
     * rectángulo.
     */
    public void esTrianguloRectangulo() {
        //Se crea un objeto Scanner para obtener la entrada
        //de datos del usuario.
        Scanner entrada = new Scanner(System.in);

        System.out.println("Deme el primer lado: ");
        double primerLado = entrada.nextDouble();

        System.out.println("Deme el segundo lado: ");
        double segundoLado = entrada.nextDouble();

        System.out.println("Deme el tercer lado: ");
        double tercerLado = entrada.nextDouble();

        if ( primerLado < 0 || segundoLado < 0 || tercerLado < 0) {
            System.out.println("Los tres lados deben ser mayores a cero");
        } else {
            boolean primerIntento = cumplePitagoras(primerLado, segundoLado, tercerLado);
            boolean segundoIntento = cumplePitagoras(segundoLado, tercerLado, primerLado);
            boolean tercerIntento = cumplePitagoras(tercerLado, primerLado, segundoLado);

            //Si cumple el teorema de pitágoras en cualquier combinación
            //entonces podría ser un triángulo rectángulo.
            if(primerIntento || segundoIntento || tercerIntento) {
                System.out.println("Podría ser un triangulo rectangulo.");
            } else {
                System.out.println("No podría ser un triangulo rectangulo.");
            }
        }
    }

    /**
     * Método encargado de ver si cumple con el teorema
     * de pitágoras.
     * @param catetoOpuesto double con el cateto opuesto.
     * @param catetoAdyacente double con el cateto adyacente.
     * @param hipotenusa double con la hipotenusa.
     * @return resultado true si cumple con el teorema de
     * lo contrario false.
     */
    public boolean cumplePitagoras(double catetoOpuesto,
            double catetoAdyacente, double hipotenusa) {
        double c1 = catetoOpuesto * catetoOpuesto;
        double c2 = catetoAdyacente * catetoAdyacente;
        double h = hipotenusa * hipotenusa;
        if (h == (c1+c2)) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * Punto de entrada a la clase y a la aplicación.
     * @param args matriz de argumentos de cadena.
     */
    public static void main(String[] args) {
        //El operador new es el encargado de crear instancias de
        //una clase, es decir los objetos que tienen las características
        //de la clase. El operador new de Java es capaz de reservar la
        //memoria para un objeto de este tipo sabiendo los atributos que
        //tiene según la definición de la clase.
        TrianguloRectangulo trianguloRectangulo = new TrianguloRectangulo();
        trianguloRectangulo.esTrianguloRectangulo();
    }
}

No hay comentarios:

Publicar un comentario