next up previous contents
Siguiente: Porción de una formación Subir: Formación (array) Anterior: Inicialización   Índice General

Copia

Para copiar los elementos de una formación en otra podemos:

Por ejemplo, si tenemos las siguientes declaraciones:

      type T_Vector100 is array (1 .. 100) of Float; 
      type T_Vector300 is array (1 .. 300) of Float; 

      Vector_1, Vector_2, Vector_3 : T_Vector100; 
      Vector_4, Vector_5           : T_Vector300;

Vector_1, Vector_2 y Vector_3 son del tipo T_Vector100 y por tanto podemos escribir Vector_1 := Vector_3 para copiar toda la formación mediante una única asignación. De forma similar podemos escribir Vector_5 := Vector_4, pero no Vector_4 := Vector_1.

Sin embargo, no es necesario que los índices coincidan (sólo deben coindicir el número de elementos y sus tipos). Por ejemplo:

  declare
      type T_Vector is array(Integer range <>) of Float; 
      Vector_1 : T_Vector(1 .. 5); 
      Vector_2 : T_Vector(2 .. 6) := (others => 0.0); 
 
      Frase_1 : String(1 .. 5); 
      Frase_2 : String(2 .. 6) := (others => ' '); 
   begin
      Vector_1 := Vector_2;
      Frase_1  := Frase_2;
      Frase_1  := "Hola Ada";       -- Constraint_Error
      Frase_1 (1 .. 8) := "Hola Ada";
      Frase_1  := "Hola";           -- Constraint_Error 
      Vector_1 := (1.0, 2.0, 3.0);  -- Constraint_Error
    end;


Javier Miranda 2002-10-03