No es por querer hacer problemas... pero independientemente si se trata de sumar los vectores geométricos o los de la estructura de datos. La suma se procede igual.
Es decir que la solución de Jhonny es válida para ambos vectores.
Pues de hecho, la suma de los vectores geométricos se obtiene sumando cada elemento.
Es decir que la suma del vector v = (3,2,4) y u = (-1,3,0) da como resultado un vector w = (3 + (-1),2 + 3,4 + 0) = (2,5,4)
La idea de la programación de esto ya la ha aportado jhonny, aunque yo prefiero otra variante: en vez de usar como tipo de parámetro Array of... prefiero asignar un tipo definido. O incluso, algo mejor... porque no emplear ya los definidos en types: TXXXDynArray. Siendo XXX el tipo del contenido a almacenar. Por ejemplo TIntegerDynArray.
Código Delphi
[-]
types
TVector = array of real;
procedure Suma(V1, V2: TVector; var V3: TVector);
var i, Tam1, Tam2: integer;
begin
Tam1 := Length(V1);
Tam2 := Length(V2);
if (Tam1 = 0) OR (Tam2 = 0)
then Exception.Create('Al menos un vector no existe');
if (Tam1 = Tam2)
then begin
SetLength(V3,Tam1);
for i := 0 to Tam1 - 1 do
V3[i] := V1[i] + V2[i];
end
else Exception.Create('Las dimensiones no coinciden');
end;
Ha... antes que se me olvide, Bienvenido/a Rasecma a ClubDelphi.
Saludos,