miércoles, 29 de mayo de 2013

Ciclo for en Java, con Programación Orientada a Objetos

Definir un vector de 5 componentes de tipo float que representen las alturas de 5 personas.
Obtener el promedio de las mismas. Contar cuántas personas son más altas que el promedio y cuántas más bajas.
package alturas;
import java.util.Scanner;  
public class Alturas {
    private Scanner t;
    private float [] alturas;
    private float s=0,pro,summay=0,summen=0;       
    public void inicializar(){
        t=new Scanner(System.in);
        alturas=new float[5];
        for (int i = 0; i < alturas.length; i++) {           
            System.out.println("Ingrese la altura de la persona " + i);
            alturas[i]=t.nextInt();           
        }
    }   
    public void promedio(){
        for (int i = 0; i < alturas.length; i++) {
            s=s+alturas[i];           
        }
        pro=s/alturas.length;
        System.out.println("El promedio es " + pro);
    }   
    public void altbaj(){
        for (int i = 0; i < alturas.length; i++) {
            if(alturas[i]>pro){
                summay=summay+1;
            }else if(alturas[i]<pro){
                summen=summen+1;
            }        
        }
        System.out.println("La cantidad de personas mas altas al promedio: " + summay);
        System.out.println("La cantidad de personas menos altas al promedio: " + summen);
    }   
    public static void main(String[] args) {
        Alturas a= new Alturas();
        a.inicializar();
        a.promedio();
        a.altbaj();
    }
}
Desarrollar un programa que permita ingresar un vector de 8 elementos, e informe:
- El valor acumulado de todos los elementos del vector.
- El valor acumulado de los elementos del vector que sean mayores a 36.
- Cantidad de valores mayores a 50.
package programa;
import java.util.Scanner;
public class Programa {
    private Scanner t;
    private int[] vector;
    private int acum = 0,acum1=0,acum2=1;
    public void inicializar() {
        t = new Scanner(System.in);
        vector = new int[8];
        for (int i = 0; i < vector.length; i++) {
            System.out.println("Ingrese el numero " + i);
            vector[i] = t.nextInt();
        }
    }
    public void acumulado() {
        for (int i = 0; i < vector.length; i++) {
            acum = acum + vector[i];
            if ((vector[i]>=0)&&(vector[i]<=36)) {
                acum1=acum1+vector[i];
            } else if ((vector[i]>37)&&(vector[i]<=50)) {
                acum2++;
            }
        }
        System.out.println("El total de los elementos es: " + acum);
        System.out.println("Suma de los elementos mayores a 36 " + acum1);
        System.out.println("Cantidad de elementos mayores a 50 " + acum2);
    }
    public static void main(String[] args) {
        Programa p = new Programa();
        p.inicializar();
        p.acumulado();
    }
}
Realizar un programa que pida la carga de dos vectores numéricos enteros de 4 elementos. Obtener la suma de los dos vectores, dicho resultado guardarlo en un tercer vector del mismo tamaño. Sumar componente a componente.
package programa;

import java.util.Scanner;

public class Programa {

    private Scanner t;
    private int[] vector1;
    private int[] vector2;
    private int sum1 = 0, sum2 = 0, r;

    public void inicializar() {
        t = new Scanner(System.in);
        vector1 = new int[4];
        vector2 = new int[4];
        System.out.println("Llenado del vector 1");
        for (int i = 0; i < vector1.length; i++) {
            System.out.println("Ingrese el numero " + i);
            vector1[i] = t.nextInt();
        }
        System.out.println("Llenado del vector 2");
        for (int i = 0; i < vector2.length; i++) {
            System.out.println("Ingrese el numero " + i);
            vector2[i] = t.nextInt();
        }
    }

    public void operaciones() {
        for (int i = 0; i < vector1.length; i++) {
            sum1 = sum1 + vector1[i];
        }
        for (int i = 0; i < vector2.length; i++) {
            sum2 = sum2 + vector2[i];
        }
        r = sum1 + sum2;
        System.out.println("El resultado de la suma de los dos vectores es: " + r);
    }

    public static void main(String[] args) {
        Programa p = new Programa();
        p.inicializar();
        p.operaciones();
    }
}
Se tienen las notas del primer parcial de los alumnos de dos cursos, el curso A y el curso B, cada curso cuenta con 5 alumnos.
Realizar un programa que muestre el curso que obtuvo el mayor promedio general.
package alumnos;
import java.util.Scanner;

public class Alumnos {
    private Scanner t;
    private int []cursoa;
    private int []cursob;
    private int s1=0,s2=0;
   
    public void inicializar(){
        t=new Scanner(System.in);
        cursoa=new int[5];
        cursob=new int[5];
        System.out.println("Notas curso A ");
        for (int i = 0; i < cursoa.length; i++) {
            System.out.print("Ingrese la nota del alumno numero "+i +" :");           
            cursoa[i]=t.nextInt();
        }
        System.out.println("Notas curso B ");
        for (int i = 0; i < cursob.length; i++) {
            System.out.print("Ingrese la nota del alumno numero "+i +" :");           
            cursob[i]=t.nextInt();
        }
    }
    public void promedio(){
        for (int i = 0; i < cursoa.length; i++) {
            s1=s1+cursoa[i];           
        }
        for (int i = 0; i < cursoa.length; i++) {
            s2=s2+cursob[i];           
        }       
        if(s1>s2){
            System.out.println("El curso que obtuvo mayor promedio fue el A");
        }else{
            System.out.println("El curso que obtuvo mayor promedio fue el B");
        }
    }
    public static void main(String[] args) {
        Alumnos a =new Alumnos();
        a.inicializar();
        a.promedio();
    }
}

Declaración de una clase y definición de objetos en Java

En esta ocasión vamos a ver como trabajamos con la definición de clases y la creación de objetos,
el primer ejemplo es:
Confeccionar una clase que permita carga el nombre y la edad de una persona. Mostrar los datos cargados. Imprimir un mensaje si es mayor de edad (edad>=18):
package javayaej1;
import java.util.Scanner;
public class Javayaej1 {
    //declaracion de los atributos de la clase
    private Scanner t;
    private String nombre;
    private int edad;   
    // metodo para inicializar las variables
    public void inicializar(){
        t=new Scanner(System.in);//creacion del objeto t de la clase Scanner
        System.out.println("Ingrese su nombre: ");
        nombre=t.next();       
        System.out.println("Ingrese su edad: ");
        edad=t.nextInt();       
    }
    // metodo para retornar los valores
    public void mayorOmenor(){
        if(edad>18){
            System.out.println(nombre + " Es mayor de edad , con " + edad + " años");
        }else{
            System.out.println(nombre + " Es menor de edad , con " + edad + " años");
        }
    }   
    public static void main(String[] args) {
        // creacion del objeto persona de la clase Javayaej1       
        Javayaej1 persona = new Javayaej1();
        //llamado de los metodos del objeto persona    
        persona.inicializar();//llamado al metodo inicializar       
        persona.mayorOmenor();//llamado al metodo mayoOmenor
    }
}
Otro ejemplo:
Desarrollar un programa que cargue los lados de un triángulo e implemente los siguientes métodos: inicializar los atributos, imprimir el valor del lado mayor y otro método que muestre si es equilátero o no.
package javayaej1;
//llamado de la triangulo Scanner
import java.util.Scanner;
public class triangulo {
    //declaracion de los atributos
    private Scanner t;
    private int ld1,ld2,ld3;
    //declaracion del metodo inicializar
    public void inicializar(){
        t=new Scanner(System.in);
        System.out.println("Ingrese la medida del lado 1: ");
        ld1=t.nextInt();
        System.out.println("Ingrese la medida del lado 1: ");
        ld2=t.nextInt();
        System.out.println("Ingrese la medida del lado 1: ");
        ld3=t.nextInt();
    }
    //declaracion del metodo para probar si es triangulo equilatero   
    public void equilatero(){
        if((ld1==ld2)&&(ld1==ld3)){
            System.out.println("Es un triangulo equilatero");
        }else{
            System.out.println("No es un triangulo equilatero");
        }
    }   
    public void ladoMayor(){
        if((ld1>ld2)&&(ld1>ld3)){
            System.out.println("El lado mayor es: " + ld1);
        }else if(ld2>ld3){
            System.out.println("El lado mayor es: " + ld2);
        }else{
            System.out.println("El lado mayor es: " + ld3);
        } 
    }
    public static void main(String[] args) {
        //creacion del objeto tri
        triangulo tri = new triangulo();
        //se llama los metodos de la clase tri
        tri.inicializar();
        tri.equilatero();      
        tri.ladoMayor();
    }   
}
Otro ejemplo:
Desarrollar una clase que represente un punto en el plano y tenga los siguientes métodos: cargar los valores de x e y, imprimir en que cuadrante se encuentra dicho punto (concepto matemático, primer cuadrante si x e y son positivas, si x<0 e y>0 segundo cuadrante, etc.)
package punto;
//llamado de la clase Scanner
import java.util.Scanner;
public class Punto {
    //declaracion de los atributos
    private Scanner t;
    private int pX,pY;   
    //metodo inicializador   
    public void inicializar(){
        t=new Scanner(System.in);
        System.out.println("Ingrese la cordenada en X: ");
        pX=t.nextInt();
        System.out.println("Ingrese la cordenada en Y: ");
        pY=t.nextInt();
    }   
    //metodo para imprimir y tomar una decision
    public void retornarCuadrante(){
        if((pX>0)&&(pY>0)){
            System.out.println("El punto esta en el Cuadrante 1 ");
        } else if((pX<0)&&(pY>0)){
            System.out.println("El punto esta en el Cuadrante 2 ");
        } else if((pX<0)&&(pY<0)){
            System.out.println("El punto esta en el Cuadrante 3 ");
        } else if((pX>0)&&(pY<0)){
            System.out.println("El punto esta en el Cuadrante 4 ");
        }       
    }   
    public static void main(String[] args) {
        //instancia p de la clase Punto
        Punto p= new Punto();
        //llamado de los metodos
        p.inicializar();
        p.retornarCuadrante();
    }
}
Otro ejemplo:
Desarrollar una clase que represente un Cuadrado y tenga los siguientes métodos: cargar el valor de su lado, imprimir su perímetro y su superficie.
package Cuadrado;
//llamado de la clase Scanner
import java.util.Scanner;
public class Cuadrado {
    //declaracion de los atributos de la clase Cuadrado
    private Scanner t;
    private int l,pe,ar;   
    public void inicializar(){
        t = new Scanner(System.in);
        System.out.println("Ingrese el valor del lado: ");
        l=t.nextInt();
    }   
    public void calcular(){
        ar=l*l;
        System.out.println("El area del cuadrado es: " + ar);
        pe=4*l;
        System.out.println("El perimetro del cuadrado es: "+ pe);
    }  
    public static void main(String[] args) {
       Cuadrado cu= new Cuadrado();
       cu.inicializar();
       cu.calcular();
    }
}
Otro ejemplo:
Confeccionar una clase que represente un empleado. Definir como atributos su nombre y su sueldo. Confeccionar los métodos para la carga, otro para imprimir sus datos y por último uno que imprima un mensaje si debe pagar impuestos (si el sueldo supera a 3000)
package empleado;
import java.util.Scanner;
public class Empleado {
    private Scanner t;
    private String nombre;
    private int sueldo;   
    public void inicializar(){
        t=new Scanner(System.in);
        System.out.println("Digite el nombre del empleado: ");
        nombre=t.next();
        System.out.println("Digite el sueldo: ");
        sueldo=t.nextInt();
    }   
    public void imprimir(){
        System.out.print("El empleado " + nombre+ " gana "+ sueldo);
    }   
    public void pagarImp(){
        if(sueldo>3000){
            System.out.print(" y debe pagar impuestos ");
        }else{
            System.out.print(" y no debe pagar impuestos ");
        }
    }
    public static void main(String[] args) {
        Empleado emp1 = new Empleado();       
        emp1.inicializar();
        emp1.imprimir();
        emp1.pagarImp();
    }
}
Otro ejemplo:
Implementar la clase operaciones. Se deben cargar dos valores enteros, calcular su suma, resta, multiplicación y división, cada una en un método, imprimir dichos resultados.
package operaciones;
import java.util.Scanner;
public class Operaciones {
    private Scanner t;
    private int v1, v2;
    private double div;
    public void inicializar() {
        t = new Scanner(System.in);
        System.out.println("Ingrese el primer valor: ");
        v1 = t.nextInt();
        System.out.println("Ingrese el segundo valor: ");
        v2 = t.nextInt();
    }
    public int suma() {
        return v1 + v2;
    }
    public int resta() {
        return v1 - v2;
    }
    public int multiplicacion() {
        return v1 * v2;
    }
    public void divison() {
        if (v2 == 0) {
            System.out.println("La division por cero no es posible");
        } else {
            div = v1 / v2;
            System.out.println("La division da: " + div);
        }
    }
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);
        Operaciones op = new Operaciones();
        String dec;
        do {
            op.inicializar();
            System.out.println(" Para suma presione 1 \n Para resta presione 2 \n Para multiplicacion presione 3 \n Para division presione 4");
            System.out.println("Elija una operacion: ");
            int n = teclado.nextInt();
            switch (n) {
                case 1:
                    System.out.println("La suma da: " + op.suma());
                    break;
                case 2:
                    System.out.println("La resta da: " + op.resta());
                    break;
                case 3:
                    System.out.println("La multiplicacion da: " + op.multiplicacion());
                    break;
                case 4:
                    op.divison();
                    break;
            }
            System.out.println("Continuar: S/N");
            dec = teclado.next();
        } while (("s".equals(dec)) || ("S".equals(dec)));
    }
}