[ Foro de Pascal ]

bucle_For_vectores

06-Feb-2014 05:14
Invitado (ARONI)
4 Respuestas

Buenas Noches estimado, por favor quisiera que me des una ayuda de cómo hacer el siguiente ejercicio propuesto en su página de Pascal:
Crea un programa que sume dos vectores, cuyos componentes indicará el usuario. Por ejemplo, la suma de (1,2,3) y (7,11,-1) sería (8,13,2)



-Otra pregunta: ¿El array también es indispensable en el ejercicio planteado líneas arriba?

¡¡Saludos!!


06-Feb-2014 17:53
Nacho Cabanes (+31)

Se puede hacer con "array" de modo que cada dato contendría 3 valores numéricos (por ejemplo, dato[0], dato[1] y dato[2]), que representarían sus componentes x,y,z

Así, cada componente del resultado se calcularía con operaciones como

 
resultado[1] := dato1[1] + dato2[1];
 


De forma alternativa, Pascal también permite que el índice de un array sea cualquier dato "enumerable", no sólo un número, así que podrías llegar a plantear usando letras para los índices, así:

 
resultado['x'] := dato1['x'] + dato2['x'];
 


Alternativamente, se puede hacer con "record", de modo que cada número tendría componentes x,y,z

 
resultado.x := dato1.x + dato2.x;
 


(y en ese caso, no necesitarías usar ningún array).


07-Feb-2014 04:36
Invitado (ARONI)

Buenas  Noches,  avancé un poco con  este ejercicio, pero aún no lo resuelvo. Mi duda es si puedo utilizar un FOR con VECTORES y cómo sería la Sintaxis, y si no es así por favor necesito que me  den más pistas. Aquí adjunto el código:

 
program for_vector;       (*/Crea un programa que sume 2 vectores, cuyos componentes indicara
                                      el usuario.Por ejemplo, la suma de (1,2,3) y (7,11,-1)seria (8,13,2)*)
var vector1:array[1..3] of integer;
    vector2:array[1..3] of integer;
    resultado:array[1..3] of integer;
 
begin
    writeln();
    writeln('Introduce el primer elemento');
    readln(vector1[1]);
    writeln('Introduce el segundo elemento');
    readln(vector1[2]);
    writeln('Introduce el tercer elemento');
    readln(vector1[3]);
 
    writeln('Introduce el primer elemento');
    readln(vector2[1]);
    writeln('Introduce el segundo elemento');
    readln(vector2[2]);
    writeln('Introduce el tercer elemento');
    readln(vector2[3]);
 
    resultado[1]:=vector1[1]+vector2[1];
    resultado[2]:=vector1[2]+vector2[2];
    resultado[3]:=vector1[3]+vector2[3];
 
    for  ?????  to  do     // --------------------->  ahí  es mi duda
    writeln();
    write(resultado,' ');
 
end.
 



08-Feb-2014 12:30
Nacho Cabanes (+31)

¡Pero si ya lo tienes hecho!

Puedes mostrar todos los datos uno tras otro (sencillo, ya que son pocos):

 
writeln(resultado[1]); 
writeln(resultado[2]); 
writeln(resultado[3]); 
 


O bien usar un "for", por eso de que son datos repetitivos:

 
for i:=1 to 3 do
    writeln(resultado[i]); 
 



08-Feb-2014 16:50
Albert Aroni

Sí,  ya lo resolví. Mi duda era si  podía colocar un vector  después del FOR, pero con su segundo ejemplo lo entendí.  Y me salió  gracias. ¡Saludos!






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)