Предмет: Информатика, автор: ayratgarayzxc

Помогите решить задачу 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
Пожалуйста
Похожие вопросы
Предмет: Химия, автор: 531dasha135
Предмет: Алгебра, автор: kuklin2003mailrucom
Предмет: Математика, автор: Алина13071