Sign in Join
Wiki copytemporary

Array/es: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11Un **array** es un tipo (type) que agrupa un número de [[Variable|variables]] del mismo tipo. Se los llama vectores, arreglos o matrices (unidimensionales). Ejemplos son un array of [[Char/es|char]], un array of [[Integer|integer]], y un array of [[Real|real]]. De hecho, cualquier tipo, incluyendo tipos definidos por el usuario, se pueden usar en un vector. De todos modos, los elementos de un vector son siempre del mismo tipo. No se pueden agrupar en un vector diferentes tipos. Para ese propósito ver [[Record/es|records]].
22
33Los arrays reflejan el concepto matemático de
44
55- vectores (una matriz unidimensional) y
66- matrices (matriz de dos o más dimensiones))
77
88## Vectores estáticos
99
1010La declaración funciona de forma similar a la de los tipos simples, pero es necesario agregar el número de elementos a través de un intervalo de índices, así como el tipo de elemento del vector o matriz.
1111
1212``` pascal
1313program
1414...
1515var
1616 nombredelavariable : array [indiceinicial..indicefinal] of type;
1717begin
1818 ...
1919```
2020
2121**indiceinicial** debe ser menor o igual a **indicefinal**, y ambos deben resolverse a una constante de enteros, ya sea un valor entero o un valor [[Const/es|const]] que sea un entero. Cualquiera o ambos números pueden ser negativos o cero.
2222
2323### Vector o matriz de una dimensión
2424
2525Ejemplo de vector unidimensional:
2626
2727``` pascal
2828type
2929 vector_de_enteros = array [1..10] of integer;
3030
3131var
3232 Numeros: vector_de_enteros;
3333```
3434
3535### Vectores multidimencionales o matrices
3636
3737Se admiten [[Basic Pascal Tutorial/Chapter 5/Multidimensional arrays/es|Multidimensional arrays]] como \[x..y, z..t\] y así sucesivamente.
3838
3939Ejemplo de matriz:
4040
4141``` pascal
4242type
4343 matriz = array [0..5, 1..3] of extended;
4444
4545var
4646 matriz_dos_dimensiones: matriz;
4747```
4848
4949## Vectores dinámicos
5050
5151Si no es posible conocer el número exacto de elementos necesarios del vector o matriz en tiempo de diseño, se puede utilizar el tipo [[Dynamic array/es|dynamic array]]. Una matriz dinámica puede crecer o reducirse en tamaño durante la ejecución del programa.
5252
5353## Acceso a los elementos
5454
5555Para acceder al elemento de un vector debe indicarse el índice entre corchetes \[\] después del nombre de la variable del tipo array. Luego ese elemento puede utilizarce como una variable común.
5656
5757``` pascal
5858Var
5959 vector : array [1..3] of Integer;
6060 matriz : array[1..5,1..5] of Integer;
6161 unvalor : Integer;
6262...
6363begin
6464 vector[2] := 4 + 2;
6565 matriz[2,3] := 7;
6666 ...
6767 unvalor := vector[2]; // 6
6868 unvalor := matriz[2,3]; // 7
6969end.
7070```
7171
7272## Vectores literales
7373
7474Hay dos formatos que se utilizan para vectores o arreglos literales, dependiendo del lugar donde se utilicen. En la sección de declaración de variables, se puede inicializar un vector estático (no es posible hacerlo con [[Dynamic array/es|dynamic arrays]]) con una serie de valores entre *paréntesis*. En un bloque instrucciones es posible crear un vector anónimo con una serie de valores entre *corchetes*. Por ejemplo:
7575
7676``` pascal
7777Var
7878 // inicializar un vector estático de enteros vía vector literal
7979 Numeros : array [1..3] of Integer = (1, 2, 3);
8080
8181procedure ImprimirVector(entrada : array of String);
8282var
8383 i : integer;
8484begin
8585 for i := 0 to length(entrada)-1 do
8686 write(entrada[i],' ');
8787 writeln;
8888end;
8989
9090begin
9191 Writeln( Numeros[2] ); // 2
9292 // crear tres elementos de vector de cadenas anónimas mediante un vector literal
9393 ImprimirVector( ['uno', 'dos', 'tres'] );
9494end.
9595```
9696
9797Resultados:
9898
99-```
99+```text
1001002
101101uno dos tres
102102```
103103
104104---
105105*From the Free Pascal wiki, page "Array/es", as it stood on 2023-01-25 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history