Информатика, вопрос задал ayratgarayzxc , 8 лет назад

Помогите решить задачу Pascal

Приложения:

Ответы на вопрос

Ответил Аноним
0
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var x:=ReadReal('x=');
  var n:=ReadInteger('n=');
  var s:=ArrGen(n,i->Exp(Cos(x**(2*(i+1))))*Sin(x**(3*(i+1))));
  Writeln('Max=',s.Max,', min=',s.Min);
  var imin:=s.Select(t->Abs(t-t.Round)).ToArray.IndexMin;
  Writeln('Наиболее близкое к целому значение ',s[imin])
end.

Пример
x= 1.18
n= 15
Max=1.48553688166094, min=-1.27821497881311
Наиболее близкое к целому значение -0.919158357440861

Вариант без массива (экономия памяти)

begin
  var x:=ReadReal('x=');
  var n:=ReadInteger('n=');
  var s:=SeqGen(n,i->Exp(Cos(x**(2*(i+1))))*Sin(x**(3*(i+1))));
  Writeln('Max=',s.Max,', min=',s.Min);
  var imin:=s.Select(t->Abs(t-t.Round)).ToArray.IndexMin;
  Write('Наиболее близкое к целому значение ');
  if imin=0 then Writeln(s.First)
  else Writeln(s.Skip(imin).Take(1).Single)
end.
Ответил ayratgarayzxc
0
Спасибо большое
Ответил Аноним
0
Пожалуйста
Новые вопросы