Что-то сама написала, компилирует, но решает неправильно при n=1, а при n=2 вообще подвисает. Ковыряла сама, может уже просто переклинило? В чем ошибка? Подскажите, сдавать завтра.
Задание: Разработать алгоритм на паскале: Дано натуральное число n, вычислить значение у
y=(n+(1/(1*1)))*((n-1)+(1/(2*2)))*...*(1+(1/(n*n)))
Что наваялось у меня:
program Inform_2;
var i:integer;
var n,y,y1:real;
begin
writeln ('Введите натуральное число n');
readln (n);
while n>i do
begin
i:=0;
y1:=((n-i)+(1/((i+1)*(i+1))));
i:=i+1;
y:=y1;
end;
y:=y*y1;
writeln ('y=', y:7:4);
readln;
end.
Только сильно не бейте))).
Вычисление у по натуральному числу n
y:=1
while n>i do
begin
i:=0;
y1:=((n-i)+(1/((i+1)*(i+1))));
i:=i+1;
y:=y*y1;
end;
{ y:=y*y1; - здесь уже не надо}
А вообще можно было сделать цикл for ... to или for ... downto
while n>i do
begin
i:=0;
y1:=((n-i)+(1/((i+1)*(i+1))));
i:=i+1;
y:=y*y1;
end;
{ y:=y*y1; - здесь уже не надо}
А вообще можно было сделать цикл for ... to или for ... downto
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Вбила так. На ввод n=1 считает правильно. При попытке ввода 2 или 3 выдает error 205: Floating point overflow.
Переводчик - ошибка 205: переполнение Плавающей запятой.
Все спасибо, сама поняла, i надо с нулевым присвоением вынести наверх
Переводчик - ошибка 205: переполнение Плавающей запятой.
Все спасибо, сама поняла, i надо с нулевым присвоением вынести наверх