Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Ряды

Автор: kess 18.04.2007 2:19

Даны действительные число а и натуральное n .Вычислить :
P=a(a-n)(a-2n)...(a-a2) (a в квадрате)

Автор: volvo 18.04.2007 2:23

Выделяешь общий член последовательности, и смотришь в поиске, как вычисляются ряды... Программы уже выкладывались.

Автор: kess 1.05.2007 21:52

Цитата(volvo @ 17.04.2007 23:23) *

Выделяешь общий член последовательности, и смотришь в поиске, как вычисляются ряды... Программы уже выкладывались.

вот так можно или это бред??
Program vosem;
Var i,n:integer;
p,a:real;
begin
WriteLn('Vvedite a');
Read(a);
WriteLn('Vvedite n');
Read(n);
for i:=1 to n do
begin
a:=a-i*n;
p:=a*(a-(i*n));
end;
WriteLn('Otvet=',p:3:3);
End.

Автор: Lapp 2.05.2007 3:03

Цитата(kess @ 17.04.2007 23:19) *

P=a(a-n)(a-2n)...(a-a2) (a в квадрате)

Квадрат обычно обозначается так: a^2.
Мне не совсем понятно условие. Это перемножение скобок вида (a-i*n) до тех пор, пока i*n не превысит a^2? Странно это как-то.. Может, последняя скобка - это (a-n^2) - так?
Цитата(kess @ 1.05.2007 18:52) *

вот так можно или это бред??

Все же лучше, чем ничего smile.gif.
Почему ты меняешь а? Оно же не должно меняться!
Считай все в р, а перед циклом присваевай ему 1.
Program vosem;
Var
i,n:integer;
p,a:real;
begin
WriteLn('Vvedite a');
Read(a);
WriteLn('Vvedite n');
Read(n);
p:=1;
for i:=1 to n do p:=p*(a-(i*n));
WriteLn('Otvet=',p:3:0);
End.

Автор: kess 2.05.2007 3:11

Цитата
Квадрат обычно обозначается так: a^2.
Мне не совсем понятно условие. Это перемножение скобок вида (a-i*n) до тех пор, пока i*n не превысит a^2? Странно это как-то.. Может, последняя скобка - это (a-n^2) - так?
да)))

Цитата
Program vosem;
Var
i,n:integer;
p,a:real;
begin
WriteLn('Vvedite a');
Read(a);
WriteLn('Vvedite n');
Read(n);
p:=1;
for i:=1 to n do p:=p*(a-(i*n));
WriteLn('Otvet=',p:3:0);
End.

а если так?
Program vosem;
Var i,n:integer;
p,a:real;
begin
WriteLn('Vvedite a');
Read(a);
WriteLn('Vvedite n');
Read(n);
p:=a;
for i:=1 to n do
begin
p:=p*(a-i*n);
end;
WriteLn('Otvet=',p);
End.

Автор: Lapp 2.05.2007 3:37

Цитата(kess @ 2.05.2007 0:11) *

а если так?
...
p:=a;

Да, так лучше! good.gif
Действительно, нужно либо в р класть а, либо начинать цикл с 0.
Моя ошибка, спасибо за исправление! smile.gif