Una matriz generalmente se llama ordenadaun conjunto de elementos, cada uno de los cuales tiene un cierto tipo (uno y el mismo). Las matrices son estáticas y dinámicas. La longitud del primero se establece en la etapa de programación, es decir. antes de comenzar a ejecutar el programa, el segundo, en curso de ejecución.
Para una matriz estática, la descripción debe serse determina el número de elementos que no se pueden cambiar durante la operación del programa (aumento o disminución). Cuando inicia un programa que utiliza una matriz estática, se asigna un cierto número de bytes en la memoria para que la ejecución almacene sus elementos. Esta cantidad de memoria se asignará al programa hasta que finalice su trabajo. Incluso si esta memoria no se utilizará, ningún otro código de programa podrá acceder a ella.
El lenguaje de programación Pascal puede funcionarsolo con matrices estáticas. Por lo tanto, si desea trabajar con una secuencia de longitud variable, puede describir la estructura, por ejemplo, de cien elementos, y utilizar en diferentes etapas un número diferente de elementos, sin exceder el número 100. Y esto, por supuesto, no es razonable.
Tal problema no existe en integradoEntorno de desarrollo de Delphi. Una matriz dinámica le permite no especificar el número de elementos en la descripción, sino determinarlo durante la ejecución del programa. Una matriz dinámica se puede describir en la sección Var de la siguiente manera:
Var masivo: conjunto de enteros
Así, la estructura indicadaidentificador masivo, es una secuencia entera lineal de longitud desconocida (¡todavía!). Para establecer el tamaño, el programa debe usar el procedimiento SetLength, por ejemplo, SetLength (Massive, 9). La matriz dinámica masiva adquirirá una dimensión igual al número 9. Ahora se determina que la secuencia contiene nueve elementos de un tipo entero, numerados desde cero. Una matriz dinámica tiene estas características. Delphi tiene un procedimiento que libera la memoria de un conjunto de números cuando la necesidad de su almacenamiento ha desaparecido. Este es el procedimiento Finalizar, en nuestro caso se aplicará de la siguiente manera: Finalizar (Masivo).
Del mismo modo, puede describir y aplicar matrices dinámicas multidimensionales en Delphi. Por ejemplo, una estructura dinámica bidimensional se describirá de la siguiente manera:
Var masiva: matriz de matriz de enteros
Si es necesario, las columnas de la matriz pueden ser de diferentes longitudes. Esto también se especifica mediante el procedimiento SetLength.
A menudo sucede, especialmente en grandes y complejos.programas que algunas estructuras de datos se utilizan de vez en cuando o solo al principio / al final del programa. En este caso, sería un desperdicio mantener un lugar en la RAM "en reserva". Una matriz dinámica es una de las formas de asignar racionalmente los recursos a un sistema informático. Aunque tiene algunas desventajas. En primer lugar, esto no siempre es una numeración conveniente de elementos desde cero. En segundo lugar, el programador necesita comprender constantemente en cada punto del código del programa en qué estado se encuentra la matriz dinámica. Pero sus méritos hacen que todas estas dificultades sean ridículas. En particular, si desea transferir grandes cantidades de datos desde una subrutina, no puede prescindir de una forma dinámica de presentación.