jueves, 10 de abril de 2014

Arreglo multidimensional

import java.util.Scanner;
public class ArregloMultidimensional {
       
    /**
     * Creates a new instance of <code>ArregloMultidimensional</code>.
     */
    public ArregloMultidimensional() {
    }
   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int [][]x;
        int n, m;
        Scanner  ent=new Scanner (System.in);
        System.out.print ("Ingrese numero de renglones");
        n=ent.nextInt();
        System.out.print ("Ingrese numero de columnas");
        m=ent.nextInt();
        x=new int[n][m];
        leerdatos(x);
        presentar (x);
    }
    public static void leerdatos(int[][]a)
    {
    Scanner ent=new Scanner(System.in);
    System.out.println("Ingrese los datos");
    for (int i=0; i<a.length; i++)
    {
   
for(int j=0; j<a[i].length; j++ )
{
System.out.print("a["+i+"]["+j+"]=");
a[i][j]=ent.nextInt();
}
}
    }
    public static void presentar(int[][]a)
    {
   
   
    for (int i=0; i<a.length; i++)
    {
   
for(int j=0; j<a[i].length; j++ )
{
System.out.print(a[i][j]+ "  ");
}
System.out.println();
}
    }
}

Este es un programa arreglo de dos dimensiones, es decir, mediante índices nos permite conocer la ubicación de un elemento dentro del arreglo, razón por la que desde el main se declaran dos variables y doble corchete en una misma variable para indicar que se trata de un arreglo bidimensional.

Arreglo con instrucciones desde el main

public ArregloVersion2() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int n;
        int [] x;
        Scanner entrada = new Scanner (System.in);
        System.out.print("Tamaño del arreglo");
        n=entrada.nextInt();
        x=new int [n];
        leedatos(x);
        muestradatos(x);
        
        System.out.println("el menor es: "+menor(x));
        System.out.println("el mayor es: "+mayor(x));
        System.out.println("el promedio es: "+promedio(x));
    }    
    
    public static void leedatos(int[]a)
    {
    Scanner ent=new Scanner (System.in);
    for (int i=0; i<a.length; i++)
    {
    
    System.out.print("Ingresa elemento a["+i+"]");
    a[i]=ent.nextInt();
    }
    
    }
 public static void muestradatos(int []a)
 {
 for (int i=0; i<a.length; i++)
 {
 System.out.println("Muestra datos a["+i+"]"+a[i]);
 }
 }
 public static int menor (int[]a)
 {
  int min= a[0];
  for (int i=0; i< a.length; i++)
  { 
  if (a[i]<min)
   min=a[i];
  }
  return min;
 } 
 public static int mayor (int[]a)
 {
  int may= a[0];
  for (int i=0; i< a.length; i++)
  {
  if (a[i]>may)
   may=a[i];
  }
  return may;
    }
    public static double promedio (int[]a)
    {
        double prom=0, suma=0;     
     for (int i=0; i<a.length; i++)
         
      suma+=a[i];
      prom=(suma/a.length);
    
     return prom;
    
    } 
}


En este programa desde el main se declaran las variables y el código para realizar las operaciones o acciones deseadas mediante la sentencia for en donde esta sentencia me permite repetir n veces un ciclo, en donde se debe determinar  el valor inicial y cuantas veces se va a repetir. Así no es necesario repetir tanto código, lo anterior aunado a lo práctico que es un arreglo con "n" posiciones, minimizando la cantidad de código a escribir. Desde el main se declara la acción a ejecutar.

Arreglo

public ArregloUni() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int n;
        int [] x;
        Scanner entrada = new Scanner (System.in);
        System.out.print("Tamaño del arreglo");
        n=entrada.nextInt();
        x=new int [n];
        System.out.println ("Arreglo creado de "+n+ "posiciones");
        
        for (int i=0; i<n; i++)
        {
        
         System.out.print("Elemento x["+i+"]=");
         x[i]= entrada.nextInt();
        }
        for (int i=0; i<n; i++)
        {
         System.out.println("x["+i+"]="+x[i]);
        
        
        }  
        // Mostrar el elemento menor y elemento mayor
        
        int menor=0, mayor=0;
        
        for (int i=0; i<n; i++)
        {
         if (i==0)
         {
          menor=x[i];
          mayor=x[i];
         }
         else
         {
          if(x[i]<menor)
           menor=x[i];
          if(x[i] > mayor)
           mayor = x[i];
         }
         }
  System.out.println("menor="+ menor);
  System.out.println("mayor="+ mayor);
      double suma=0, promedio=0;
      for (int i=0; i<n; i++)
      {
        suma=suma +x[i];
        promedio=(suma/n);
      }
     System.out.print("El promedio es:"+promedio);    
}
}


Este es un programa de array o arreglo que nos permite almacenar un "n" número de datos sin necesidad de extender el código de un programa y mediante métodos específicos, podemos realizar las operaciones deseadas con solo definir en el método la cantidad de posiciones que se deseen en el arreglo y solicitar nos indique cual de los elemento es el menor, mayor o el promedio de ellos.

Programa para calcular áreas

import matematicas.*;
public class Areasobjetos {
     
    /**
     * Creates a new instance of <code>Areasobjetos</code>.
     */
    public Areasobjetos() {
    }
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int lado = 4;
        int L1=5, L2=6;
        int radio=7;
        int base=8, altura=9;
        double pi=3.1416;
        pi=3.1416;
        Area area=new Area();
        System.out.println("Area del cuadrado:"+ area.cuadrado (lado));
        System.out.println("Area del triángulo:"+ area.triángulo (base,altura));
        System.out.println("Area del rectángulo:"+ area.triángulo (L1,L2));
        System.out.println("Area del círculo:"+ area.círculo (radio,pi));
    }
 }

Este es un programa que nos permite calcular áreas de diferentes figuras geométricas, para realizar los cálculos sólo basta con asignar valores a las variables de acuerdo a las necesidades, ejemplo: si deseamos conocer el área de un círculo, solo debemos asignar un valor al radio que ha sido declarado y compilar para correr el programa, el mismo nos dará el resultado de esa figura si es la única que fue modificada, y así con cada figura de la que deseemos conocer su área.

Programa para calcular áreas con métodos por separado

public class Areas {
        
    /**
     * Creates a new instance of <code>Areas</code>.
     */
    public Areas() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int lado = 4;
        int L1=5, L2=6;
        int radio=7;
        int base=8, altura=9;
        double pi=3.1416;
         pi=3.1416;
        Area area=new Area();
        System.out.println("Area del cuadrado:"+ area.cuadrado (lado));
        System.out.println("Area del triángulo:"+ area.triángulo (base,altura));
        System.out.println("Area del rectángulo:"+ area.triángulo (L1,L2));
        System.out.println("Area del círculo:"+ area.círculo (radio,pi));
    }
    
    
}

 class Area {
     public Area (){
     }
     public int cuadrado (int lado){
      int ret;
      ret = lado*lado;
      return ret;
     }
     public int triángulo ( int base, int altura){
    
      int tri;
      tri = (base*altura)/2;
      return tri;
     }
      public int rectángulo ( int L1, int L2){
    
      int rec;
      rec = (L1*L2);
      return rec;
      }
     
     public double círculo ( double radio,double pi){
    
      double cír;
      cír = pi*(radio*radio);
      return cír;
      }
 }

Este programa al igual que el anterior, nos permite realizar cálculos de figuras geométricas, con la particularidad de que desde el main quedan anidadas todas las variables, los métodos han sido declarados por separado, quedando más compactos.

Programa calcula áreas desde un paquete

import matematicas.Area;
import java.util.Scanner;
public class Figurasgeometricas {
       
    /**
     * Creates a new instance of <code>Figurasgeometricas</code>.
     */
    public Figurasgeometricas() {
    }
   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
       
        int sel, lado, l1, l2, base, altura, radio;
        System.out.println("=====Programa para calcular áreas geométricas=====");
        Scanner entrada=new Scanner(System.in);
        Area area=new Area();
       
        do{
       
        System.out.print("Elija una opcion:\n 1 cuadrado\n 2 rectángulo\n 3 triángulo\n 4 círculo\n 0 salir\n");
        sel = entrada.nextInt();
        System.out.println("Usted seleccionó:"+sel);
        sel=entrada.nextInt();
        switch (sel){
         case 1: System .out.print("ingresa el lado");
                 lado=entrada.nextInt();
                 System.out.print("el área="+area.cuadrado(lado));
                 break;
         case 2: System.out.print("lado 1:");
           l1=entrada.nextInt();
           System.out.println("\n lado 2:");
           l2=entrada.nextInt();
           System.out.println("el area="+area.rectángulo(l1,l2));
           break;
         case 3: System.out.print("base:");
           base=entrada.nextInt();
           System.out.println("\n altura:");
           altura=entrada.nextInt();
           System.out.println("el area="+area.triángulo(base,altura));
           break;
         case 4: System.out.print("radio:");
           radio=entrada.nextInt();
           System.out.println("el area="+area.círculo(radio,radio));
           break; 
         case 0:break;
         default: System.out.print("te equivocaste de opción");
         break;
        
        }
                 
    }while(sel!=0);
}

}

Este programa se ejecuta con una sentencia de iteración en donde primeramente se ejecuta la sentencia y luego se evalúa la condición. Si la expresión de la condición es verdadera vuelve a dar un ciclo. De lo contrario, lo termina, esto nos garantiza que la sentencia se ejecute al menos una vez; de igual manera que el programa inmediato anterior, para realizar los cálculos, invoca al paquete de métodos matemáticas creado por separado para la realización de los mismos, paquete que contiene las operaciones para realizar los cálculos.

Programa Paquete matemáticas

package matematicas;
public class Area {

    public Area() {
    }
    public int cuadrado (int lado){
     int ret;
      ret = lado*lado;
      return ret;
    }
    public int triángulo ( int base, int altura){
    
      int tri;
      tri = (base*altura)/2;
      return tri;
     }
    public int rectángulo ( int L1, int L2){
    
      int rec;
      rec = (L1*L2);
      return rec;
      }
    public double círculo ( double radio,double pi){
    
      double cír;
      cír = pi*(radio*radio);
      return cír;
      }    
}

Este es un paquete de métodos que puede ser invocado desde otro programa como el antes visto inmediatamente atrás, este tipo de programas nos permite realizar operaciones con n mínimo de código en el programa del que dispondrá el usuario.

import matematicas.*;
public class Areasobjetos {
       
    /**
     * Creates a new instance of <code>Areasobjetos</code>.
     */
    public Areasobjetos() {
    }
   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int lado = 4;
        int L1=5, L2=6;
        int radio=7;
        int base=8, altura=9;
        double pi=3.1416;
         pi=3.1416;
        Area area=new Area();
        System.out.println("Area del cuadrado:"+ area.cuadrado (lado));
        System.out.println("Area del triángulo:"+ area.triángulo (base,altura));
        System.out.println("Area del rectángulo:"+ area.triángulo (L1,L2));
        System.out.println("Area del círculo:"+ area.círculo (radio,pi));
    }
 }

Este es un programa paquete que los cálculos u operaciones necesarias para el cálculo de áreas geométricas desde un programa externo, desde el cual se invoca a este paquete para el cálculo, así nuestro programa es mas compacto.