ayuda con funciones
Publicado por manu (4 intervenciones) el 07/12/2006 18:39:37
Hola tengo un problema al realizar un ejercicio de pascal que consiste en producto escalar de dos vectores,debo hacerlo con funciones y sin estas si me sale bien ,pero al intentar realizarlo con funciones ,me da como resultado 0 o un numero muy grande q siempre es el mismo aunque introduzca distintos valores,si alguien puede decirme donde esta el error por favor que conteste.muchas gracias,el programa q yo he hecho es el siguiente:
program productoescalar;
type
vector = array [1..100] of integer;
var
v1,v2:vector;
n:integer;
function producto (v1,v2:vector;n :integer):integer;
var
r,i:integer;
begin
r:=0;
for i:=1 to n do
begin
r:=r + v1[i] * v2[i];
end;
producto:=r;
end;
procedure lee (var v1,v2:vector;n:integer);
var
i:=integer;
begin
writeln('dime el tamaño de los vectores : ');
readln(n);
for i:=1 to n do
begin
writeln('dame el valor del elemento ',i,' de v1: ');
readln(v1[i]);
end;
for i:=1 to n do
begin
writeln('dame el valor del elemento ',i,' de v2: ');
readln(v2[i]);
end;
end;
begin
lee(v1,v2,n);
writeln('el resultado del producto es : ',producto(v1,v2,n));
readln;
end.
program productoescalar;
type
vector = array [1..100] of integer;
var
v1,v2:vector;
n:integer;
function producto (v1,v2:vector;n :integer):integer;
var
r,i:integer;
begin
r:=0;
for i:=1 to n do
begin
r:=r + v1[i] * v2[i];
end;
producto:=r;
end;
procedure lee (var v1,v2:vector;n:integer);
var
i:=integer;
begin
writeln('dime el tamaño de los vectores : ');
readln(n);
for i:=1 to n do
begin
writeln('dame el valor del elemento ',i,' de v1: ');
readln(v1[i]);
end;
for i:=1 to n do
begin
writeln('dame el valor del elemento ',i,' de v2: ');
readln(v2[i]);
end;
end;
begin
lee(v1,v2,n);
writeln('el resultado del producto es : ',producto(v1,v2,n));
readln;
end.
Valora esta pregunta


0