Arreglo s Registros

Post on 27-Sep-2015

212 views 0 download

description

Arreglo s Registros

Transcript of Arreglo s Registros

  • UNELLEZ BARINAS

    Programacin III Profesor: Duglas Moreno

    Arreglos de RegistrosDefinicin:

    Un arreglo de registro es una estructura de datos homognea y esttica, que sealmacena en memoria RAM y cuyos elementos son heterogneos. Esta definicinhace explicito al arreglo de registro como una estructura que contiene varios Registros,siendo un arreglo una vector, una matriz, un cubo, entre otros.

    Representacin Grfica:

    Este sera un vector de registros

    Elementos de un registro:

    Posiciones: son los ndices de cada uno de los registros dentro del arreglo. Estos

    ndices comienzan desde 0

    Registros: son cada uno de los elementos que conforman el arreglo

    Campos: son cada una de las caractersticas o atributos de los registros. Pueden ser

    de diferentes tipos de datos

    Sintaxis declarativa de un registro en pseudocdigo y C:

    Pseudocdigo

    1. Declarar el modelo de cmo va hacer el registro en la seccin Estructuras de

    datos del pseudocdigo

    Registro

    Tipodato nombrecampo 1

    Tipodato nombrecampo 1

    ...

    Tipodato nombrecampo n

    Fin registro

    2. Declarar el arreglo que contendr el conjunto de registros, bien sea en la

    seccin general o local para los subprogramas, de la siguiente manera

    Registro nombredelregistro nombrearreglo[numerodeelementos]

    duglasoswaldo@gmail.com

  • UNELLEZ BARINAS

    Programacin III Profesor: Duglas Moreno

    Lenguaje C++

    1.Declarar el modelo del registro. Se recomienda declararlo luego de los include

    struct nombreregistro

    {

    tipodato campo1;

    tipodato campo2;

    ...

    tipodato campon;

    };

    2.Declarar el arreglo que contendr el conjunto de registros. Hay dos formas de

    hacerlo:

    Forma 1: Luego de la llave de la declaracin del registro se coloca el nombre

    del arreglo y la cantidad de elementos dentro de corchetes, esto antes del ;

    Forma 2: hacerlo en cualquier parte del programa de la siguiente manera:

    struct nombreregistro nombreaarreglo[cantidadde elementos];

    Es importante resaltar que la cantidad de corchetes que tenga la declaracin

    del arreglo va a depender de la cantidad de dimensiones del arreglo a trabajar.

    Ejemplo declaracin de un registro en pseudocdigo y C:

    Pseudocdigo CDeclaracin del modelo del Registro

    Registro nomina

    cadena nombre

    entero largo cedula

    entero lista

    Fin registro

    struct nomina

    {

    char nombre[50];

    long cedula;

    int lista;

    };

    Declaracin de las variables que manipularan al Registro

    Registro nomina 4toA[35]

    Registro nomina 4toB[36]

    Forma 1: 4toA[35],4toB[36];Forma 2: struct nomina 4toA[35],4toB[36];

    duglasoswaldo@gmail.com

  • UNELLEZ BARINAS

    Programacin III Profesor: Duglas Moreno

    Acceso a los campos de un registro:

    Para manipular los elementos de un arreglo de registros debe realizarse elemento por

    elemento campo a campo. La sintaxis para manipular el campo de un elemento de un

    arreglo de registro es la siguiente:

    Pseudocdigo: Variablearreglo[indice].campo

    C: Variablearreglo[indice].campo;

    As partiendo de los ejemplos descritos anteriormente, si deseo almacenar el valor

    16544222 en la cedula del elemento 30 del arreglo de registro 4toA, se hara de la

    siguiente manera:

    Pseudocdigo: 4toA[29].cedula =16544222

    C: 4toA[29].cedula =16544222;

    Cabe destacar que los ndices de los arreglos deben en la gran mayora de los casos,

    ser manipulados o controlados por un ciclo; adicionalmente a un arreglos de registro

    unidimensional pueden aplicrsele las operaciones vistas en vectores como:

    ordenacin por burbuja, bsqueda lineal y bsqueda binaria, tomando como referencia

    un campo de los registros.

    Arreglos de Registros en Subprogramas:

    Los arreglos de registros son pasados por defecto por referencia, por ende no

    necesitan de & para especificar este tipo de parmetro.

    Ej. void llenar (struct nomina p[])

    Programa Completo

    #include

    #include

    struct persona

    {

    char nombre[50];

    char apellido[50];

    };

    void llenar( struct persona p[])

    {

    for (int i=0; i p[i].apellido;

    }

    }

    void escribir( struct persona p[])

    {

    clrscr();

    for (int i=0; i

  • UNELLEZ BARINAS

    Programacin III Profesor: Duglas Moreno

    {

    cout