Please enable JavaScript.
Coggle requires JavaScript to display documents.
TAD Matrices - Coggle Diagram
TAD Matrices
Tipo de datos
de matriz
Un tipo de matriz es un tipo de datos que representa una colección de elementos ( valores o variables ), cada uno seleccionado por uno o más índices (claves de identificación) que se pueden calcular en tiempo de ejecución durante la ejecución del programa
Por analogía con los conceptos matemáticos de vector y matriz , los tipos de matriz con uno y dos índices a menudo se denominan tipo de vector y tipo de matriz.
El soporte de lenguaje para tipos de matriz puede incluir ciertos tipos de datos de matriz incorporados , algunas construcciones sintácticas (constructores de tipo de matriz ) que el programador puede usar para definir tales tipos y declarar variables de matriz, y notación especial para indexar elementos de matriz.
Las listas dinámicas también son más comunes y más fáciles de implementar que las matrices dinámicas .
En contextos más teóricos, especialmente en la teoría de tipos y en la descripción de algoritmos abstractos , los términos "matriz" y "tipo de matriz" a veces se refieren a un tipo de datos abstracto (ADT) también llamado matriz abstracta o pueden referirse a una matriz asociativa
Matrices
abstractas
Una estructura de datos de matriz se puede modelar matemáticamente como una estructura de datos abstracta (una matriz abstracta ) con dos operaciones
obtener ( A , I ): los datos almacenados en el elemento de la matriz A cuyos índices son el número entero tupla I .
conjunto ( A , I , V ): la matriz que los resultados estableciendo el valor de ese elemento a V .
El primer axioma significa que cada elemento se comporta como una variable.
El segundo axioma significa que los elementos con índices distintos se comportan como variables disjuntas , de modo que almacenar un valor en un elemento no afecta el valor de cualquier otro elemento.
Estos axiomas no imponen restricciones al conjunto de tuplas de índice válidas I , por lo tanto, este modelo abstracto se puede utilizar para matrices triangulares y otras matrices de formas extrañas.
Matrices
multidimensionales
El número de índices necesarios para especificar un elemento se denomina dimensión , dimensionalidad o rango del tipo de matriz.
Por lo tanto, una matriz de números con 5 filas y 4 columnas, por lo tanto 20 elementos, se dice que tiene dimensión 2 en contextos informáticos , pero representa una matriz con dimensión 4 por 5 o 20.
Muchos lenguajes solo admiten matrices unidimensionales. En esos lenguajes, una matriz multidimensional se representa típicamente mediante un vector Iliffe , una matriz unidimensional de referencias a matrices de una dimensión menos.
Esta representación para matrices multidimensionales es bastante frecuente en el software C y C ++.
Implementaciones
Para implementar de manera efectiva variables de tipos tales como estructuras de matriz, muchos lenguajes restringen los índices a tipos de datos enteros, y requieren que todos los elementos tengan el mismo tipo de datos y tamaño de almacenamiento.
La mayoría de esos lenguajes también restringen cada índice a un intervalo finito de enteros, que permanece fijo durante la vida útil de la variable de matriz.
Por otro lado, algunos lenguajes de programación proporcionan tipos de matrices más liberales, que permiten la indexación por valores arbitrarios, como números de punto flotante , cadenas , objetos , referencias , etc
Dichos valores de índice no pueden restringirse a un intervalo, mucho menos a un intervalo fijo. Por lo tanto, estos lenguajes suelen permitir la creación de nuevos elementos arbitrarios en cualquier momento.
Historia
El lenguaje de programación de Heinz Rutishauser Superplan (1949-1951) incluía matrices multidimensionales.
Los lenguajes ensambladores y los lenguajes de bajo nivel como BCPL generalmente no tienen soporte sintáctico para arreglos.
Debido a la importancia de las estructuras de arreglos para el cálculo eficiente, los primeros lenguajes de programación de alto nivel, incluidos FORTRAN (1957), COBOL (1960) y Algol 60 (1960), proporcionaron soporte para arreglos multidimensionales.
Notación de
indexación
La mayoría de los lenguajes de programación que admiten matrices admiten las operaciones de almacenamiento y selección , y tienen una sintaxis especial para la indexación
Los primeros idiomas usaban paréntesis, por ejemplo A(i,j), como en FORTRAN; otros eligen corchetes, por ejemplo, A[i,j]o A[i][j], como en Algol 60 y Pascal (para distinguir del uso de paréntesis para llamadas a funciones ).