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);
  }
 }
}



viernes, 24 de diciembre de 2010

¿Es vocal?





//¿Es vocal?.
import java.util.*;
class Vocal{
 public static void main(String arg[]){
  Scanner in = new Scanner(System.in);
  System.out.println("Digite una letra");
  String letra = in.next();
  if(letra.equals("a") || letra.equals("e") || letra.equals("i") ||
     letra.equals("o") || letra.equals("u")){
     System.out.println(letra+" es vocal");
  }else{
     System.out.println(letra+" no es vocal");
  }
 }                                          
}

LLenando he imprimiendo vectores.

Hosting
//LLenando he imprimiendo vectores.
import java.util.*;
class Vector{
 public static void main(String arg[]){
  Scanner in = new Scanner(System.in);
  int tamaño;
  int [] vector;
  System.out.println("Digite el tamaño del vector"); //Escribe en pantalla
  tamaño = Integer.parseInt(in.next());
  vector = new int[tamaño];
  for (int i = 0;i < tamaño;i++){
    System.out.println("Digite el valor numero "+i);
    vector[i]=Integer.parseInt(in.next());
  }
  for (int i = 0;i < tamaño; i++){
   //Imprimiento el vector en el mismo orden en que se llenó
    System.out.print(vector[i]+",");
  }
    System.out.print("\n");
  for (int i = tamaño-1;i >= 0; i--){
   //Imprimiento el vector en el orden inverso en que se llenó
    System.out.print(vector[i]+",");
  }
 }
}



Hallar números primos con un rango inicial y final.


//Hallar números primos con un rango inicial y final.
class Primos{
 public static void main(String arg[]){
  int i,j;
  boolean esPrimo;
  int rInicial=2;//Rango inicial, este debe ser mayor de 1.
  int rFinal = 200;//Rango final.
  for(i = rInicial;i <= rFinal;i++){
  //recorro ciclo tantas veces como necesite(<= es para incluir el valor de rFinal).
      esPrimo=true;// i es primo hasta que se demuestre lo contrario, jejejejeje.
       for(j = 2;j < i;j++){
       //no coloque j = 1 porque ya sabemos que todo numero es divisible por 1.
       /*j < i es para no incluir el numero a evaluar, pues todo numero es divisible
       por si mismo.*/
       if(i % j == 0){//Si además del 1 y el mismo hay otro divisor, ya no es primo.
         //% devuelve el residuo de i/j
          esPrimo = false;//se demostró que i no es primo.
       }
       }
       if(esPrimo){//Si es primo lo imprimo.
        System.out.println(i+"\n");
       }
  }
 }
}

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...