arrays en c# - · pdf fileelementos del arreglo enumerados consecutivamente 0,1,2,3,. y ......

Download ARRAYS EN C# -   · PDF fileelementos del arreglo enumerados consecutivamente 0,1,2,3,. y ... y las matrices. Los vectores son arreglos que contienen una sola dimensión y las

If you can't read please download the document

Upload: leduong

Post on 06-Feb-2018

244 views

Category:

Documents


3 download

TRANSCRIPT

  • 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