top of page

SÍGUEME:

  • Facebook Clean Grey
  • Twitter Clean Grey
  • Instagram Clean Grey

•Arrays abiertos (Open array)•

  • freitesvalentina
  • 19 ago 2015
  • 2 Min. de lectura

La creación de procedimientos o funciones con parámetros que se conocen como arreglos abiertos (openarray), estos parámetros sólo se usan con arreglos de una dimensión. Estos parámetros nos permiten usar distintos arreglos con una cantidad variable de elementos, es decir que se pueden pasar arreglos con diferente cantidad de elementos a un procedimiento o función, su uso es como se muestra a continuación:

Procedure HacerAlgo(Var N:array of integer);

Esto es muy útil, si por ejemplo se desea hacer un procedimiento o función, que permita ordenar dos arreglos con diferente cantidad de elementos. Cuando un arreglo se pasa como un arreglo abierto a un procedimiento o función, este es tratado como un arreglo de 0 hasta n elementos. Por ejemplo: si a un procedimiento o función le pasamos un arreglo de 5 a 8 elementos es tratado como un arreglo desde 0 hasta 3 elementos (tiene 4 elementos). Además se debe usar o hacer uso de la función High, esta función nos permite devolver el índice del último elemento que tendrá el parámetro que se pase al procedimiento o función. A continuación un ejemplo:

Debido a que los arreglos abiertos (open array) empiezan en 0, se debe adaptar el algoritmo de ordenación para usar estos índices, es por eso que dentro del procedimiento Ordenar se puede observar que el for empieza en 1, porque el segundo elemento de lalista se encuentra en el índice o posición 1, además dentro del bucle While para verificar que se llego al inicio de la lista la comparación de la variable j se hace con el valor 0, porque el primer elemento de la lista se encuentra en el índice o posición 0.

El compilador permite pasar una parte de un arreglo a una función o procedimiento que use arreglos abiertos. Esto se puede hacer especificando parte del rango del arreglo que se desea usar en el procedimiento o función. Por ejemplo, cuando se declara la siguiente variable:

Var lista : array [1..10] of integer;

y se tiene una función que calcule el promedio de los números de la lista, y queremos obtener el promedio sólo de los primeros 5 números, debemos hacerlo del siguiente modo:

Promedio(lista[1..5]);


 
 
 

Comments


  • b-facebook
  • Twitter Round
  • Instagram Black Round
bottom of page