Difference between revisions of "Array/es"

From Free Pascal wiki
Jump to navigationJump to search
(Created page with "{{Array}} Un '''array''' es un tipo (type) que agrupa un número de variables del mismo tipo. Se los llama vectores, arreglos o matrices (unidimensionales). Ejem...")
 
m (bypass redirect, make some link targets language-sensitive, remove redundant categorization as Category: Reserved words/es already done via categorization template {{Array}}, remove trailing blanks, unify some source code style)
 
(2 intermediate revisions by one other user not shown)
Line 3: Line 3:
 
Un '''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|record]]s.
 
Un '''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|record]]s.
  
Los arrays reflejan el concepto matemático de  
+
Los arrays reflejan el concepto matemático de
* vectores (una matriz unidimensional) y  
+
* vectores (una matriz unidimensional) y
 
* matrices (matriz de dos o más dimensiones))
 
* matrices (matriz de dos o más dimensiones))
 
  
 
==Vectores estáticos==
 
==Vectores estáticos==
 
La 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.
 
La 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.
  
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
program
 
program
 
...
 
...
var  
+
var
 
   nombredelavariable : array [indiceinicial..indicefinal] of type;
 
   nombredelavariable : array [indiceinicial..indicefinal] of type;
 
begin
 
begin
 
   ...
 
   ...
</syntaxhighlight>
+
</syntaxhighlight>
  
'''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|const]] que sea un entero. Cualquiera o ambos números pueden ser negativos o cero.
+
'''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.
  
 
===Vector o matriz de una dimensión===
 
===Vector o matriz de una dimensión===
Line 26: Line 25:
 
Ejemplo de vector unidimensional:
 
Ejemplo de vector unidimensional:
  
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
type
 
type
 
   vector_de_enteros = array [1..10] of integer;
 
   vector_de_enteros = array [1..10] of integer;
+
 
 
var
 
var
 
   Numeros: vector_de_enteros;
 
   Numeros: vector_de_enteros;
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
===Vectores multidimencionales o matrices===
 
===Vectores multidimencionales o matrices===
  
Se admiten [[Multidimensional arrays]] como [x..y, z..t] y así sucesivamente.  
+
Se admiten [[Basic Pascal Tutorial/Chapter 5/Multidimensional arrays/es|Multidimensional arrays]] como [x..y, z..t] y así sucesivamente.
  
 
Ejemplo de matriz:
 
Ejemplo de matriz:
  
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
type
 
type
 
   matriz = array [0..5, 1..3] of extended;
 
   matriz = array [0..5, 1..3] of extended;
+
 
 
var
 
var
 
   matriz_dos_dimensiones: matriz;
 
   matriz_dos_dimensiones: matriz;
 
</syntaxhighlight>
 
</syntaxhighlight>
 
  
 
==Vectores dinámicos==
 
==Vectores dinámicos==
Si 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|dynamic array]]. Una matriz dinámica puede crecer o reducirse en tamaño durante la ejecución del programa.
+
Si 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.
  
 
==Acceso a los elementos==
 
==Acceso a los elementos==
 
Para 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.
 
Para 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.
  
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
Var
 
Var
 
   vector  : array [1..3] of Integer;
 
   vector  : array [1..3] of Integer;
Line 72: Line 69:
  
 
==Vectores literales==
 
==Vectores literales==
Hay 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|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:
+
Hay 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:
  
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
Var
 
Var
 
   // inicializar un vector estático de enteros vía vector literal
 
   // inicializar un vector estático de enteros vía vector literal
Line 80: Line 77:
 
    
 
    
 
procedure ImprimirVector(entrada : array of String);
 
procedure ImprimirVector(entrada : array of String);
var  
+
var
 
   i : integer;
 
   i : integer;
 
begin
 
begin
Line 89: Line 86:
  
 
begin
 
begin
     Writeln( Numeros[2] ); //2
+
     Writeln( Numeros[2] ); // 2
 
     // crear tres elementos de vector de cadenas anónimas mediante un vector literal
 
     // crear tres elementos de vector de cadenas anónimas mediante un vector literal
 
     ImprimirVector( ['uno', 'dos', 'tres'] );
 
     ImprimirVector( ['uno', 'dos', 'tres'] );
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
Resultados:<br/>
+
Resultados:
'''2'''<br/>
+
2
'''uno dos tres'''
+
uno dos tres
 
 
  
 
{{Data types}}
 
{{Data types}}

Latest revision as of 04:21, 25 January 2023

Deutsch (de) English (en) español (es) suomi (fi) français (fr) Bahasa Indonesia (id) 日本語 (ja) русский (ru) 中文(中国大陆)‎ (zh_CN)

Un array es un tipo (type) que agrupa un número de variables del mismo tipo. Se los llama vectores, arreglos o matrices (unidimensionales). Ejemplos son un array of char, un array of integer, y un array of 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 records.

Los arrays reflejan el concepto matemático de

  • vectores (una matriz unidimensional) y
  • matrices (matriz de dos o más dimensiones))

Vectores estáticos

La 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.

program
...
var
  nombredelavariable : array [indiceinicial..indicefinal] of type;
begin
  ...

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 que sea un entero. Cualquiera o ambos números pueden ser negativos o cero.

Vector o matriz de una dimensión

Ejemplo de vector unidimensional:

type
  vector_de_enteros = array [1..10] of integer;

var
  Numeros: vector_de_enteros;

Vectores multidimencionales o matrices

Se admiten Multidimensional arrays como [x..y, z..t] y así sucesivamente.

Ejemplo de matriz:

type
  matriz = array [0..5, 1..3] of extended;

var
  matriz_dos_dimensiones: matriz;

Vectores dinámicos

Si 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. Una matriz dinámica puede crecer o reducirse en tamaño durante la ejecución del programa.

Acceso a los elementos

Para 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.

Var
   vector  : array [1..3] of Integer;
   matriz  : array[1..5,1..5] of Integer;
   unvalor : Integer;
...
begin
   vector[2] := 4 + 2;
   matriz[2,3] := 7;
   ...
   unvalor := vector[2]; // 6
   unvalor := matriz[2,3]; // 7
end.

Vectores literales

Hay 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 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:

Var
   // inicializar un vector estático de enteros vía vector literal
   Numeros : array [1..3] of Integer = (1, 2, 3);
   
procedure ImprimirVector(entrada : array of String);
var
   i : integer;
begin
    for i := 0 to length(entrada)-1 do
       write(entrada[i],' ');
    writeln;
end;

begin
    Writeln( Numeros[2] ); // 2
    // crear tres elementos de vector de cadenas anónimas mediante un vector literal
    ImprimirVector( ['uno', 'dos', 'tres'] );
end.

Resultados:

2
uno dos tres


navigation bar: data types
simple data types

boolean byte cardinal char currency double dword extended int8 int16 int32 int64 integer longint real shortint single smallint pointer qword word

complex data types

array class object record set string shortstring