Помощь - Поиск - Пользователи - Календарь
Полная версия: вычисление произведения
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
marwell
Напишите подпрограмму вычисления произведения вида (прикрепил) где u – заданный вектор, N – верхний предел интегрирования.
т.е. U и N просто числа?
Нажмите для просмотра прикрепленного файла
volvo
Поскольку Ui - то U - это массив, а N - его размер ...
Romtek
Иными словами, вектор - это одномерный массив. И в задании подразумевается, что он задан изначально (или вводится пользователем).
marwell
понял, спасибо
marwell
не пойму, что я не так делаю...
var N,i,x:integer;
U:array [1..100] of integer;
function mas(U:array of integer):integer;
begin
for i:=1 to N do
x:=x*(1-sqr(U[i]));
end;
begin
x:=1;
write('введите N = ');
readln(N);
randomize;
for i:=1 to N do
U[i]:=2+random(4);
for i:=1 to N do
write(U[i],' ');
mas(U);
writeln ('произведение равно = ',x);
readln;
end.

результат неверный...
Ozzя
function mas(U:array of integer):integer;
Это у тебя открытый массив, нумерация которого начинается с нуля. А в функции ты работаешь с обычным. У него с 1-цы.
Как-то так:


type
massiv=array [1..100] of integer;
var
n,q,i:integer;
U:massiv;
function mas(n1:integer; U:massiv):integer;
var
j,t,x:integer;
begin
x:=1;
for j:=1 to N1 do
begin
t:=1-sqr(U[j]);
x:=x*t;
end;
mas:=x;
end;

begin
write('??????? N = ');
readln(N);
randomize;
for i:=1 to N do
U[i]:=2+random(4);
for i:=1 to N do
write(U[i],' ');
q:=mas(n,U);
writeln ('???????????? ????? = ',q);
readln;
end.
marwell
аа, вот оно что! спасибо good.gif
TarasBer
> function mas(n1:integer; U:massiv):integer;

Тогда уж const U: massiv
Зачем лишний раз массив в стек копировать?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.