Sei sulla pagina 1di 8

1.1.- Arreglos unidimensionales.

1.1.1.- Conceptos bsicos.


Un arreglo unidimensional tiene una sola dimensin. En C#, la dimensin se maneja por medio de un par de corchetes.

A los arreglos de una dimensin tambin se les llama listas.

1.1.2.- Operaciones.
Para manejar un arreglo, las operaciones a efectuarse son:

Declaracin del arreglo, Creacin del arreglo, Inicializacin de de los elementos del arreglo, y Acceso a los elementos del arreglo.

A continuacin describiremos cada una de estas operaciones, en C#.

Declaracin.
La declaracin de un arreglo unidimensional consiste en establecer las caractersticas del arreglo y sus elementos, por medio de la siguiente sintaxis: <tipo> [ ] < identificador > ; Donde: tipo indica el tipo correspondiente a los elementos del arreglo ,

identificador es el nombre del arreglo, y el par de corchetes, [ ], representa la dimensin del arreglo y encierra un nmero entero que corresponde al nmero de elementos del arreglo. Ejemplos: int [ ] a ; float [ ] distancia ; Artculo [ ] art = new Artculo[ 3]; Observe que, en la declaracin, el espacio entre los corchetes est vaco. Esto se debe a que, durante dicha operacin, no se reserva espacio en la memoria.

Creacin.
La creacin de un arreglo unidimensional consiste en reservar espacio de memoria para todos sus elementos, utilizando la siguiente sintaxis: < identificador > = new <tipo> [ tamao ] ; Donde: new es el operador para gestionar espacio de memoria, en tiempo de ejecucin, tamao es un nmero entero que representa el nmero de elementos del arreglo. Ejemplos: a = new int [10] ; // Se crea el arreglo a , con 10 elementos de tipo entero. distancia = new float[ 5] ; // Se crea el arreglo distancia , con 5 elementos de punto flotante y precisin sencilla .Artculo [] art = new Artculo[3]; Artculo [ ] art = new Artculo[ 3]; // Se crean 3 referencias a objetos de la clase Artculo

art[0]= new Artculo(); // Se crea el primer objeto del arreglo art art[1]= new Artculo(); // Se crea el segundo objeto del arreglo art art[2]= new Artculo(); // Se crea el tercer objeto del arreglo art

Las dos primeras operaciones de declaracin y creacin anteriores se pueden agrupar en una sola instruccin, como se muestra enseguida: int [ ] a = new int [10] ; float [ ] distancia = new float[5] ;

Inicializacin.
Un arreglo es un objeto que,cuando es creado por el compilador, se le asignan automticamente valores iniciales predeterminados a cada uno de sus elementos, de acuerdo a los siguientes criterios:

Si el tipo del arreglo es numrico, a sus elementos se les asigna el valor cero. Si el tipo del arreglo es char, a sus elementos se les asigna el valor '\u0000'. Si el tipo del arreglo es bool, a sus elementos se les asigna el valor false. Si el tipo del arreglo es una clase, a sus elementos se les asigna el valor null.

Cuando se requiere asignar valores iniciales diferentes de los predeterminados, es posible agrupar las operaciones de declaracin, creacin e inicializacin en una sola instruccin, por ejemplo: int [ ] a = { 1, 0,4,-6, 2,9, 23,455, 90,35 }; float [ ] distancia = { 2.50F, 286.45F, 46.75F, 30.62F, 93.00F }; string [ ] pato = { "Hugo", "Paco", "Lus" };

Acceso.
Se puede acceder a los valores de los elementos de un arreglo a travs del nombre del arreglo y un subndice. El subndice debe escribirse entre corchetes y representa la posicin del elemento en el arreglo. As, podemos referirnos a un elemento del arreglo escribiendo el nombre del arreglo y el subndice del elemento entre corchetes. Los valores de los subndices empiezan en cero para el primer elemento, hasta el tamao del arreglo menos uno. Ejemplo: float [ ] distancia = new float[5] ; // Crea el arreglo distancia con 5 elementos. float x = 25F, y = 10F ; // Crea dos variables de punto flotante y precisin sencilla. distancia[0] = x + y ; // El valor asignado al primer elemento es 35. distancia[1] = ++distancia[0] ; // Asigna 36 al segundo elemento. distancia[2] = distancia[1] - distancia[0] + 4 ; // Asigna 5 al tercer elemento. distancia[3] = distancia[2]-- ; // Asigna 5 al cuarto elemento // y disminuye en 1 el valor del tercero.

distancia[4] = distancia[3] * distancia[2] ; // Asigna 20 al quinto elemento. y = distancia[4] ; // Asigna a y el valor almacenado en el quinto elemento.

1.1.3.- Aplicaciones.
Listas.

Resolvamos el problema de manejar dos listas: una con los nombres de un grupo de alumnos y otra con una calificacin para cada uno de los alumnos. Primero se debern leer los nombres de los alumnos y la calificacin que corresponde a cada uno de ellos y despus habr que desplegar dos columnas: una con los nombres de los alumnos y la otra con sus respectivas calificaciones. La lectura debe lucir de manera similar a la siguiente: Nmero de alumnos: 30 Nombre [0] : Calificacin[0] : Nombre [1] : Calificacin[1] : Nombre [2] : Calificacin[2] : ... ... Nombre [29] : Calificacin[29] : El despliegue en el monitor lucira as: No. 1 2 3 ... 30 Nombre Hugo Paco Lus Donald Calif. 100 90 95 ... 70

El siguiente cdigo corresponde a un programa que resuelve el problema. // Lista.cs : Lee una lista de nombres y calificaciones correspondientes a un grupo de

// alumnos de una materia. using System; using C = System.Console; public class Lista { public static void Main() { int nAlumnos; C.Write("Nmero de alumnos: "); nAlumnos = Convert.ToInt32(C.ReadLine()); string [ ] alumnos = new string[nAlumnos]; //Crea el arreglo de //alumnos. int [ ] calif = new int [nAlumnos]; // Crea el arreglo de calificaciones. // Lee los elementos de los dos arreglos. for(int i = 0; i < nAlumnos ; i++) { C.Write("Nombre del alumno [" + i + "] : "); alumnos[i] = C.ReadLine( ); C.Write("Calificacin [" + i + "] : "); calif[i] = Convert.ToInt32(C.ReadLine( )); } // Despliega los valores de los dos arreglos. C.WriteLine("No. Nombre Calif."); for(int i = 0 ; i < nAlumnos ; i++) {

C.Write(" " + (i+1) + ".- " + alumnos[ i] ); C.WriteLine(" " + calif[i] ); } } }

Vectores. Otra de las aplicaciones de los arreglos es el manejo de vectores. En Fsica, los vectores sirven para representar velocidades, aceleraciones, etc. Podemos representar a un vector como un segmento de recta dirigida que tiene magnitud, orientacin y sentido. En un espacio tridimensional, un vector puede expresarse por medio de tres componentes sobre los ejes cartesianos. Cada componente puede, a su vez, expresarse en funcin de los vectores unitarios i, j, k ,que se ubican en los ejes x, y, z, respectivamente. Por ejemplo , un vector v1 puede representarse en funcin de sus componentes como: v1 = 20i + 15j + 35k Si tenemos otro vector, v2 = -5i + 40j + 25k La suma de los dos vectores sera: s = v1+v2 = (20-5)i +(15+40)j+(35+25)k s = 15i + 55j + 60k Un segmento del programa para este ejemplo sera:

double v1[ ] = new double[3]; double v2[ ] = new double[3]; double s[ ] = new double[3]; v1[0] = 20; v1[1] = 15; v1[2] = 35; v2[0] = -5; v2[1] = 40; v2[2] = 25; for(int i=0; i < 3 ; i++) { s[ i ] = v1[ i ] + v2[ i ] ; }

Potrebbero piacerti anche