26 enero 2012

Java para C# - 04 - Datos básicos, arrays y números al azar

Vamos a ver otros tipos de datos, el manejo básico de arrays y la generación de números al azar.

Un programa que probara todo esto en C# podría ser así:


using System;

class DatosArrays
{
   
    public static void Main()
    {
        // Algunos tipos de datos simples
        int i = 1;
        short s = 2;
        byte b = 3;
        long l = 4;
       
        float f = 1.0f;
        double d = 2.0;
       
        bool z = true;
       
        // Lectura de reales desde teclado
        float f2 = Convert.ToSingle(Console.ReadLine());
        double d2 = Convert.ToDouble(Console.ReadLine());
       
        // Arrays
        int[] a1 = new int[3];
        a1[0] = 200;      // Les damos valores
        a1[1] = 150;
        a1[2] = 100;
       
        int[] a2 = { 50, 30, 10};
       
        int[,] a3 ={
            { 10, 20, 30},
            { 11, 21, 31}
        };
       
        // Números al azar
        Random generador = new Random();
        int enteroAzar3a10 = generador.Next(3,11);
        double realAzar = generador.NextDouble();
   }
}



En Java los cambios no son grandes, pero sí hay alguno:

  • El tipo de datos "booleano" no se llama "bool", sino "boolean".
  • Los arrays rectangulares (de dos dimensiones o más) no se separan con comas, sino con corchetes: [][] en vez de [,]
  • De forma similar a como ocurría con los enteros, para convertir de string a float se usa Float.parseFloat, para double se usa Double.parseDouble y así sucesivamente.
  • Para usar números al azar, hay que "importar" java.util.Random;
  • En la clase Random, no hay un método que devuelva un entero entre dos valores. Tenemos que generar uno entre 0 y n, y sumar el valor mínimo. (n será la diferencia entre el máximo y el mínimo)
El resultado sería:


import java.io.*;
import java.util.Random;

class DatosArrays
{
   
     public static void main( String[] args )
    {
        // Algunos tipos de datos simples
        int i = 1;
        short s = 2;
        byte b = 3;
        long l = 4;
       
        float f = 1.0f;
        double d = 2.0;
       
        boolean z = true;
       
        // Lectura de reales desde teclado
        try {
          BufferedReader entrada =
            new BufferedReader(new InputStreamReader(System.in));  
          String f2string = entrada.readLine();
          float f2 = Float.parseFloat(f2string);
        }
        catch (IOException e) {}
       
        try {
          BufferedReader entrada =
            new BufferedReader(new InputStreamReader(System.in));  
          String d2string = entrada.readLine();
          double d2 = Double.parseDouble(d2string);
        }
        catch (IOException e) {}  
       
        // Arrays
        int[] a1 = new int[3];
        a1[0] = 200;      /* Les damos valores */
        a1[1] = 150;
        a1[2] = 100;
       
        int[] a2 = { 50, 30, 10};
       
        int[][] a3 ={
            { 10, 20, 30},
            { 11, 21, 31}
        };
       
        // Números al azar
        Random generador = new Random();
        int enteroAzar3a10 = generador.nextInt(8) + 3;
        double realAzar = generador.nextDouble();
   }
}


Dentro de poco, el manejo de clases en Java, para después pasar a los ficheros...