lunes, 31 de enero de 2011

Manipulando matrices.





public class Matriz{
  /* Las matrices son generalmente llamadas-
     arreglos bidimensionales*/
  public static void main(String []args){
     //creando y llenando matriz de manera implicita.
     int [][]matriz={{1,2,3,4,5,6},{7,8,9,10,11,12},{13,14,15,16,17,18},
             {19,20,21,22,23,24},{25,26,27,28,29,30}};
    /*Creamos la matriz con 5 filas y 6 columnas; 
     Esta matriz es regular (aunque no tiene porque serlo),
     pues cada fila tiene un numero igual de columnas.
     Asi se ve nuestra matriz:
     [ 1][ 2][ 3][ 4][ 5][ 6]
     [ 7][ 8][ 9][10][11][12]
     [13][14][15][16][17][18]
     [19][20][21][22][23][24]
     [25][26][27][28][29][30]

     nota: en java la posicion de las filas y columnas siempre-
           inician desde 0
    */
    for(int fila=0;fila < matriz.length;fila++){ *'matriz.length'="" *'matriz[fila].length'="" *="" *esta="" *llenando="" 0.="" 0="" 10][="" 1="" 20][="" 2="" 30][="" 3="" 40]="" 50][="" 5="" 60][="" 6="" 70]="" 80][="" 90]="" <="" [0]="" [0][0]="" [0][0][0][0][0]="" [100][110][120]="" [130]="" [="" [][]matriz2="{{10,20,30,40},{50,60,70},{80,90}," [][]matriz3="new" [][]matriz4="new" a="" asi="" asignamos="" automaticamente="" caso="" celda(s)-="" columna="0;columna<matriz[fila].length;columna++){" columnas*="" columnas.="" columnas="" compuestas="" con="" consecutivos*="" creando="" cuando="" da(n)="" da="" dada="" de="" despues="" e="" el="" en="" enter="" entero="" es="" escribir="" esta(s)="" esta="" estan="" este="" esto="" explicitamente="" fila.="" fila="" filas.="" filas="" for(int="" generar="" iguales.="" implicita.="" imprimimos.="" incremento="" inicializa(n)="" inicializando="" int="" int[1];="" int[2];="" int[3][5];="" int[3][];="" int[5];="" irregular,="" irregular="" java-="" la(s)="" la="" las="" le="" llenando="" lleno,="" manera="" matriz*="" matriz.="" matriz3[fila][columna]="numeros;" matriz4[0]="new" matriz4[1]="new" matriz4[2]="new" matriz4[fila][columna]="numeros;" matriz:="" matriz="" me="" no="" nos="" nota:="" nuestra="" nuevamente="" numero="" numeros++;="" numeros-="" numeros="0;" por="" pre="" pues="" que="" regular="" representa="" se="" son="" system.out.print(matriz2[fila][columna]+",");="" system.out.print(matriz3[fila][columna]+",");="" system.out.print(matriz4[fila][columna]+",");="" system.out.print(matriz[fila][columna]+",");="" system.out.println("------------");="" system.out.println();="" todas="" un="" una="" valor(es)="" ve="" vez="" y="" {100,110,120},{130}};="" }="">

viernes, 28 de enero de 2011

Un pequeño juego de azar.

Hosting
import java.util.Scanner;
public class JuegoAzar{
 public static void main(String args[]){
  Scanner in = new Scanner(System.in);
  int numero;
  int valor;
  int contador=0;
  boolean ganar=false;
  System.out.println("--------------------------------------");
  System.out.println("|         Bienvenido al juego        |");
  System.out.println("--------------------------------------");
  numero=1+(int)(Math.random()*100);
  System.out.println("En estos momentos se ha generado un numero comprendido entre-\n"+
                     "1 y 100, que usted debe adivinar");
  System.out.println("--------------------------------------");
   do{//este ciclo es tambien llamado repeat en otros lenguajes
     contador++;
     System.out.print("-Digite el numero ");
     valor = in.nextInt();//capturamos en numero digitado
      if(valor==numero){
       System.out.println("Felicitaciones, GANASTES con "+contador+" intentos");
       ganar=true;
      }else{
         String temp="";
         if(numero>valor){
          temp="mayor";
         }else{
          temp="menor";
         }
        System.out.println("El numero que intentas adivinar es "+temp+" que "+valor);
      }
   }while(contador<6 && ganar==false);//cerramos el ciclo 'do'
   //'contador<6' representa el numero de oportunidades del jugador
   if(ganar==false){
    System.out.println("Lo siento, no has adivinado, el numero era el "+numero);
   }
 }
}

Fibonacci recursivo.

Hosting
public class FibonacciRecursivo{
 public static long FiboRecursivo(long pos){
  long retornado=0;
  if(pos==0 || pos==1){
   retornado=pos;
  }else{
   retornado=FiboRecursivo(pos-2)+FiboRecursivo(pos-1);
  }
  return retornado;
 }
 public static void main(String args[]){
  System.out.println(FiboRecursivo(10));
 }
}



Buscando valores dentro de una matriz.





import java.util.Scanner;
public class BuscarEnMatriz{
 /*Llenaremos una matriz 10 X 10
   con numeros aleatorios del 1 al 100
   y buscaremos un valor dentro
   de la misma*/
 public static void main(String []args){
  Scanner in = new Scanner(System.in);
  int matriz[][]=new int[10][10];
  //llenamos nuestra matriz
  for(int filas=0;filas < matriz.length;filas++){
   for(int columnas=0;columnas < matriz[filas].length;columnas++){
    matriz[filas][columnas]=1+(int)(Math.random()*100);;
   }
  }
System.out.println();//damos un enter
System.out.println("---Esta es nuestra matriz");
  for(int filas=0;filas < matriz.length;filas++){
   for(int columnas=0;columnas < matriz[filas].length;columnas++){
    System.out.print(matriz[filas][columnas]+",");
   }
   System.out.println();//damos un enter
  }
System.out.println("---Digite un valor a buscar---");
int buscar = in.nextInt();
String coordenadas="";
//La busqueda es de manera iterativa y secuencial
  for(int filas=0;filas < matriz.length;filas++){
   for(int columnas=0;columnas < matriz[filas].length;columnas++){
    if(matriz[filas][columnas]==buscar){
     coordenadas+="["+filas+","+columnas+"]"+"\n";
     //'\n' me permite dar enter's(saltos de linea) dentro de la cadena;
    }
   }
  }

  if(coordenadas.equals("")){
   System.out.println("El valor "+buscar+" no existe en la matriz--");
  }else{
   System.out.println("El valor "+buscar+" esta en la(s) siguiente(s) coordenadas.");
   System.out.print(coordenadas);
  }
 }
}



Entrada destacada

Matriz de adyacencia para un grafo

"La matriz de adyacencia es una matriz cuadrada que se utiliza como una forma de representar relaciones binarias."; aunque pa...