Ver Mensaje Individual
  #4  
Antiguo 05-10-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 27
Delphius Va camino a la fama
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');
  // También puede hacerse con la comparación
  // if (V1 = nil) OR (V2 = Nil)

  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,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 05-10-2007 a las 16:27:33. Razón: Un pequeño desliz matemático :P
Responder Con Cita