Вычислить через for и repeat в паскале (1+sin⁡0,1 )(1+sin⁡0,2 )…(1+sin⁡10)

0 голосов
39 просмотров

Вычислить через for и repeat в паскале
(1+sin⁡0,1 )(1+sin⁡0,2 )…(1+sin⁡10)


Информатика (89 баллов) | 39 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
PascalABC.NET 3.4.0, сборка 1672 от 10.06.2018
Внимание! Если программа не работает, обновите версию!

Цикл for

begin
  var p:=1.0;
  for var i:=1 to 100 do p*=(1+Sin(i/10));
  Writeln(p)
end.

Результат
1.72984094681772E-14

Цикл repeat

begin
  var (p,i):=(1.0,0.1);
  repeat
    p*=(1+Sin(i));
    i+=0.1
  until i>10;
  Writeln(p)
end.

Результат
1.72984094681773E-14

Контрольное решение с точностью 20 цифр приведено во вложении. В соответствии с ним верные цифры в результатах подчеркнуты.

image
(150k баллов)