You are on page 1of 7

ORDENAMIENTO Y BUSQUEDA IEU ACTIVIDAD 2

Instrucciones:

Resuelve el siguiente problema:

Implementa un programa que lea un conjunto de nmeros desde un archivo de texto


plano, que representen las calificaciones de un estudiante a lo largo de los cursos que ha
tomado; aplica algn algoritmo de ordenamiento y presenta en pantalla la lista de
nmeros ordenada. Los valores de los nmeros de las listas deben ser ledos de un
archivo de la siguiente forma:

5, 4, 7, 2, 8, 97,32...
Para declarar un arreglo debemos especificar el tipo de dato y asignarle un nombre para
su posterior referencia:

tipo_de_dato[] nombre_arreglo;

Notar que sintcticamente tambin es valido usar los parntesis rectos (corchetes []) al
final del nombre:

tipo_de_dato nombre_arreglo[];

Pero esta practica esta desaprobada por convencin.

Por lo tanto si queremos declarar un arreglo de nmeros enteros escribimos:

1 ...

2 int[] arregloEnteros;

3 ...

El tipo de dato puede ser primitivo o un objeto:


char[] arregloCaracteres;
byte[] arregloBytes;
int[] arregloEnteros;
short[] arregloCortos;
long[] arregloLargos;
float[] arregloFlotantes;
double[] arregloDobles;
boolean[] arregloBooleanos;
String[] arregloStrings;
MiObjeto[] arregloMisObjetos;
Para construir un arreglo utilizamos new como lo hacemos para construir una instancia de
una clase, ya que un arreglo es tambin un objeto. Por ejemplo:
new tipo_de_dato[TAMAO];

Como lgicamente necesitaramos una referencia hacia el arreglo, para poder tener un
acceso hacia el mismo, necesitamos declararlo para luego construirlo lo cual dependera
de la situacin o necesidad. En un mbito local para uso inmediato podramos declarar y
construir simultneamente lo que seria:

tipo_de_dato[] nombre_arreglo = new tipo_de_dato[TAMAO];

en un mbito global en el cual construiramos recin en un momento posterior:

tipo_de_dato[] nombre_arreglo;
...
void algunMetodo() {
nombre_arreglo = new tipo_de_dato[TAMAO];
...
}

Por lo tanto si queremos declarar y construir un arreglo de diez nmeros enteros podemos
escribir siguiendo las situaciones anteriores:

1 ...

2 int[] arregloEnteros = new int[10];

3 ...

escribir:

1 ...
2 int[] arregloEnteros;

3 ...

4 void algunMetodo() {

5 arregloEnteros = new int[10];

6 ...

7 }

8 ...

La asignacin de memoria para los elementos de un arreglo ocurre cuando construimos


no cuando lo declaramos.

Asignacin de valores

Cuando construimos un arreglo todos sus elementos sern iniciados con el valor
predeterminado del tipo de dato. Los objetos siempre son null mientras que un dato
primitivo como un int vale 0. A continuacin una tabla con los valores predeterminados
para cada tipo de dato:
Tipo de dato Valor

byte 0

short 0

long 0

int 0

double 0.0

float 0.0

char /u0000

boolean false
Objeto null
En la mayora de los casos a un arreglo le es asignado su contenido en tiempo de
ejecucin, por lo tanto la operacin de especificar sus valores se posterga para cuando
sea necesario. Teniendo un arreglo ya construido la sintaxis para asignar o modificar el
valor de un elemento es:

nombre_arreglo[NDICE] = nuevo_valor;

Donde el ndice es la posicin del elemento en el arreglo teniendo en cuenta que la


numeracin comienza desde 0.

Si tenemos un arreglo de tres strings tal que:

1 ...
2 int[] arregloStrings = { "string1", "string2", "string3" };
3 ...
Entonces para modificar el valor del segundo elemento, string2 por nuevo string!,
escribiramos:
1 ...
2 arregloStrings[1] = "nuevo string!";
3 ...

Tambin se pude declarar, construir y asignar valores en un arreglo simultneamente


logrando tener los valores iniciados desde el principio a travs de una sintaxis corta:

1 ...
2 int[] arregloStrings = { "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve", "diez" };
3 ...
Lo que hacemos es que en cambio de usar new y establecer el tamao para solo
construirlo, directamente asignamos los valores que tendr el arreglo delimitndolos por
llaves {} con lo cual estamos construyendo y asignndole valores desde el principio,
aunque estos podran ser modificados en otro momento. En este tipo de sintaxis el
compilador deduce las dimensiones del arreglo.
Nota: en varios ejemplos de este tutorial usar la declaracin, construccin y asignacin
simultnea, simplemente por conveniencia.

You might also like