# PR 3 [Volver a la página principal de "Fundamentos de la Programación"](../README.md) **Índice** - [PR 3](#pr-3) - [16. Tipos de datos estructurados: tabla](#16-tipos-de-datos-estructurados-tabla) - [16.1 Sintaxis para la declaración (definición) de tablas](#161-sintaxis-para-la-declaración-definición-de-tablas) - [16.1.1 Ejemplo](#1611-ejemplo) - [16.1.2 Acceso a los elementos de una tabla](#1612-acceso-a-los-elementos-de-una-tabla) - [16.1.3 Ejemplo](#1613-ejemplo) - [16.2 Inicialización de una tabla](#162-inicialización-de-una-tabla) - [16.3 Carga de datos a partir de una secuencia](#163-carga-de-datos-a-partir-de-una-secuencia) - [16.4 Recorrido de una tabla](#164-recorrido-de-una-tabla) - [16.4.1 Ejemplo: lectura y recurrido](#1641-ejemplo-lectura-y-recurrido) - [16.5 Búsqueda de un elemento en una tabla](#165-búsqueda-de-un-elemento-en-una-tabla) - [16.6 Ordenación de las tablas](#166-ordenación-de-las-tablas) - [16.6.1 Inserción ordenada](#1661-inserción-ordenada) - [16.6.2 Algoritmo de ordenación](#1662-algoritmo-de-ordenación) - [16.6.3 Importancia del orden en las tablas](#1663-importancia-del-orden-en-las-tablas) - [16.6.3.1 Ejemplo](#16631-ejemplo) - [16.6.3.2 Ejemplo](#16632-ejemplo) - [16.7 Tabla de tipos estructurados](#167-tabla-de-tipos-estructurados) - [16.7.1 Tablas de tuplas](#1671-tablas-de-tuplas) - [16.7.2 Tabla de tablas](#1672-tabla-de-tablas) ## 16. Tipos de datos estructurados: tabla Una tabla es un tipo de dato estructurado que permite almacenar un conjunto de elementos del mismo tipo. Cada elemento de la tabla se identifica mediante un índice que indica su posición en la tabla. El índice de un elemento de una tabla es un número entero que va desde 1 hasta el número de elementos de la tabla. En la mayoría de los lenguajes de programación, el índice de un elemento de una tabla se inicia en 1. En algunos lenguajes de programación, como C, el índice de un elemento de una tabla se inicia en 0. ## 16.1 Sintaxis para la declaración (definición) de tablas Los elementos que se necesitan para declarar una tabla son: - Un vector que define la longitud de la tabla y el tipo de elemento que se guardará. Por ejem: - Predefinidos en el lenguaje algotítmico (integer, real, char, boolean) - Tipos estructurados definidos por el usuario - Una variable de tipo entero que se utiliza para indicar el número de elementos que hay en cada momento en la tabla (La ocupación de la tabla). La declaración que hacemos es la de un tipo estructurado (tupla) que después podemos utilizar para definir variables dentro del algoritmo. ```alg {constant definition - where length is a constant that defines the length of the vector} const MAX_ELEMENTS: integer = length; end const {type definition} type tExampleTable = record elements: vector[MAX_ELEMENTS] of integer; numElements: integer; end record end type {var definition using the type} var aTable: tExampleTable; end var ``` ```c #include #define MAX_ELEMENTS length typedef struct { int elements[MAX_ELEMENTS]; int numElements; } tExampleTable; tExampleTable aTable; ``` ### 16.1.1 Ejemplo Guardar un cuadro de control para las puertas de un edificio de un complejo de edificios. Cada elemento de la tabla indica si la puerta correspondiente está abierta o cerrada. Cada edificio tiene como máximo 40 puertas: ```alg const MAX_GATES: integer = 40; end const type tGates = record stateGates: vector[MAX_GATES] of boolean; numGates: integer; end record end type var bulding1: tGates; bulding2: tGates; end var ``` ```c #include #include #define MAX_GATES 40 typedef struct { bool stateGates[MAX_GATES]; int numGates; } tGates; tGates bulding1; tGates bulding2; ``` ### 16.1.2 Acceso a los elementos de una tabla ### 16.1.3 Ejemplo ## 16.2 Inicialización de una tabla ## 16.3 Carga de datos a partir de una secuencia ## 16.4 Recorrido de una tabla ### 16.4.1 Ejemplo: lectura y recurrido ## 16.5 Búsqueda de un elemento en una tabla ## 16.6 Ordenación de las tablas ### 16.6.1 Inserción ordenada ### 16.6.2 Algoritmo de ordenación ### 16.6.3 Importancia del orden en las tablas #### 16.6.3.1 Ejemplo #### 16.6.3.2 Ejemplo ## 16.7 Tabla de tipos estructurados ### 16.7.1 Tablas de tuplas ### 16.7.2 Tabla de tablas [Volver arriba](#pr-1)