View
247
Download
3
Category
Preview:
Citation preview
Arrays
CURSO: Algoritmos Avanzados y Estructura de Datos 1 DOCENTE: Ing. CIP Fabin Silva Alvarado
ARRAYS EN C#
II .. II NN TT RR OO DD UU CC CC II NN En las sesiones anteriores, los datos manejados en los programas han sido datos simples (carcter, entero, reales). En un gran nmero de problemas es necesario manejar un conjunto de datos ms o menos grande
que estn relacionados entre s, de tal forma que constituyen una unidad para su tratamiento. Por ejemplo si
se quiere manipular una lista de 100 edades de personas, es conveniente tratar el conjunto de datos de forma unitaria en lugar de utilizar 100 variables para cada dato simple. .
Un conjunto de datos homogneo que se tratan como una sola unidad se denomina estructura de datos. Si
una estructura de datos reside en memoria central (memoria RAM), se llama estructura de datos interna. Recprocamente si reside en un soporte externo (disquete, disco, cd, memoria USB, cinta, se denomina
estructura de datos externa.
La estructura de datos ms importante desde el punto de vista de utilizacin es un arreglo, que es
implementado en la totalidad de lenguajes de programacin.
Esta estructura corresponde con los conceptos matemticos de vector, matriz o poliedro.
II II .. DD EE FF II NN II CC II OO NN Un array o arreglo es una secuencia de datos del mismo tipo (estructura homognea), los datos se llaman
elementos del arreglo enumerados consecutivamente 0,1,2,3,. y se encuentran almacenados
consecutivamente en memoria. Cada elemento puede ser accedido directamente por el nombre de la variable matriz seguido de uno o ms subndices.
array m
0 1 2 3 4 5 6 7 8 9
Un arreglo puede contener, por ejemplo, la edad de los estudiantes de una clase, las horas diarias laboradas por un trabajador, el nmero de estudiantes por ciclo de Ingeniera de Sistemas, etc.
En general, la representacin de un arreglo se hace mediante variables suscritas o de subndices y pueden
tener una o varias dimensiones (subndices).
II II II .. CC LL AA SS II FF II CC AA CC II NN DD EE AA RR RR AA YY SS Los Arrays se dividen en 2 grupos, los vectores y las matrices. Los vectores son arreglos que contienen una sola dimensin y las matrices 2 o ms dimensiones.
ARRAYS UNIDIMENSIONALES (Vectores)
1. DEFINICIN:
Son arreglos de una sola dimensin, tienen un solo ndice. Cada elemento del vector se accesa mediante
su nombre seguido del nmero correspondiente al subndice que se escribe entre corchetes. Por ejemplo,
supongamos que tenemos un vector de entero llamado m, el cual contiene 8 elementos. Estos elementos se identificaran de la siguiente forma:
Vector m
5 4 8 7 3 2 1 6
m[0] m[1] m[2] m[3] m[4] m[5] m[6] m[7]
El arreglo unidimensional tiene ocho elementos: m[0] contiene 5, m[1] contiene 4, m[2] contiene 8, m[3]
contiene 7, m[4] contiene 3, m[5] contiene 2, m[6] contiene 1, m[7] contiene 6. El diagrama representa realmente una regin de la memoria de la computadora, ya que un arreglo se almacena siempre con sus
elementos en una secuencia de posiciones de memoria contigua.
En C#, los ndices del arreglo siempre tienen como limite inferior 0, y como ndice superior el tamao del
arreglo menos 1.
Igual que sucede con otras variables, antes de utilizar un arreglo primero hay que declararla. La declaracin de un arreglo especifica el nombre del arreglo y el tipo de elemento de la misma. Para crear
y utilizar un arreglo hay que realizar tres operaciones: declararla, crearla e iniciarla.
Acceso al cuarto elemento es m[3]
Elementos del Vector
Subndices
Arrays
CURSO: Algoritmos Avanzados y Estructura de Datos 2 DOCENTE: Ing. CIP Fabin Silva Alvarado
2. DECLARAR Y CREAR UN ARREGLO UNIDIMENSIONAL
La declaracin de un arreglo es muy similar a la de una variable, crear un arreglo significa reservar la
cantidad de memoria necesaria para contener todos sus elementos y asignar al nombre del arreglo una referencia a ese bloque. Esto puede expresarse genricamente as:
tipoDato[] nombreVariable = new tipoDato[tamao];
tipoDato indica el tipo de datos de los elementos del arreglo, que pueden ser de cualquier tipo
primitivo o referenciado; los corchetes modifican la definicin normal del identificador para que sea
interpretado por el compilador como un arreglo.
nombreVariable es un identificador que nombra al arreglo,
Operador new significa que C# implementa los arreglos como objetos, por lo tanto sern tratadas
como cualquier otro objeto.
y tamao es una expresin entera que especifica los nmeros de elementos
Las siguientes lneas de cdigo crean los arreglos de una dimensin declaradas en el ejemplo
anterior:
int[] m = new int [5]; float[] temp = new float[30];
Vector m
7 2 8 5 3
m[0] m[1] m[2] m[3] m[4]
Ms Ejemplos:
int[] Edad = new int[100];
Declara un arreglo llamado Edad que contiene 100 elementos de tipo enteros (int).
String[] Nombres = new String[25] ;
Declara un arreglo llamado Nombres que puede almacenar 25 nombres. double[] Salario = new double[50] ;
Declara un arreglo llamado Salario que puede almacenar 25 elementos de tipo doubl.
3. INICIAR UN ARREGLO UNIDIMENSIONAL
Un arreglo es un objeto, por lo tanto, cuando es creada, sus elementos son automticamente iniciados,
igual que suceda con las variables miembro de una clase. Si el arreglo es numrico sus elementos son iniciados a 0 y si no es numrico, a un valor anlogo a 0; por ejemplo un elemento booleano es
inicializado a false y las referencias a objetos a null.
Si deseamos iniciar un arreglo con otros valores diferentes a los predeterminados, podemos hacerlo de la
siguiente forma:
double[] ingresos ={1000,5000,7000,10000,12000,15000};
el ejemplo crea un arreglo ingresos de tipo double con tantos elementos como valores se hayan
especificado entre llaves.
Para practicar la teora vamos a realizar un programa que asigne datos a un arreglo unidimensional miarreglo de nElementos y, a continuacin, como comprobacin del trabajo realizado, escriba el
contenido de dicho arreglo. La solucin ser similar a la siguiente:
Elementos del Vector
Subndices
Vector temp
16.3 18.7 19.3 17.4
temp [0] temp [1]
temp [28] temp [29]
Crea un vector identificado por m con 5 elementos de tipo int; es decir, puede almacenar 5 valores enteros; el primer elemento es m[0], el segundo es m[1], y el ultimo es m[4].
Crea un vector de temperaturas de 30 elementos de tipo float.
Arrays
CURSO: Algoritmos Avanzados y Estructura de Datos 3 DOCENTE: Ing. CIP Fabin Silva Alvarado
Para ello, en primer lugar definimos la variable tamao para fijar el nmero de elementos del arreglo,
creamos el arreglo miarreglo con el tamao que ser ingresado por teclado. int tamao=0;
Console.Write("\nIndique el Tamao del Arreglo: ");
tamao=int.Parse(Console.ReadLine());
//declarar y crear el arreglo
int[] miarreglo=new int[tamao];
El paso siguiente es asignar un valor desde el teclado a cada elemento del arreglo.
for (int i = 0; i < tamao; i++)
{
Console.Write("miarreglo["+ i +"] = ");
miarreglo[i]= int.Parse(Console.ReadLine());
}
Una vez ledo los elementos para el arreglo visualizamos para comprobar el trabajo realizado.
Console.Write("\nElementos del arreglo\n");
Console.WriteLine();
for (int i = 0; i < tamao; i++)
{
Console.Write(miarreglo[i]+" ");
}
El Programa completo se muestra a continuacin:
class Program
{
static void Main(string[] args)
{
int tamao=0;
Console.Write("\nIndique el Tamao del Arreglo: ");
tamao=int.Parse(Console.ReadLine());
Console.WriteLine();
//declarar y crear el arreglo
int[] miarreglo=new int[tamao];
//asignar datos
for (int i = 0; i < tamao; i++)
{
Console.Write("miarreglo["+ i +"] = ");
miarreglo[i]= int.Parse(Console.ReadLine());
}
//visualizar los elementos del arreglo
Console.Write("\nElementos del arreglo\n");
Console.WriteLine();
for (int i = 0; i < tamao; i++)
{
Console.Write(miarreglo[i]+" ");
}
Console.Read();
}
}
Arrays
CURSO: Algoritmos Avanzados y Estructura de Datos 4 DOCENTE: Ing. CIP Fabin Silva Alvarado
4. TAMAO DE UN ARREGLO. Atributo length
Java considera cada arreglo como un objeto, debido a ello se puede conocer el numero de elementos de un arreglo accediendo al campo length. Por ejemplo, la ltima parte del ejercicio anterior podramos escribirla
tambin as.
//visualizar los elementos del arreglo
Console.Write("\nElementos del arreglo\n");
Console.WriteLine();
for (int i = 0; i < miarreglo.Length; i++)
{
Console.Write(miarreglo[i]+" ");
}
APLICACIONES EMPLEANDO ARRAYS UNIDIMENSIONALES
1. Programa que incluye un arreglo con elementos inicializados con valores difere
Recommended