Нахождение целых корней уравнения на заданном промежутке - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста! Вводятся целые числа a, b, c, d, e, f, каждое из которых не превосходит по модулю 1000, и рассматривается уравнение a*x5+b*x4+c*x3+d*x2+e*x+f=0. Требуется написать программу, которая будет находить все его целые корни в промежутке от -10 до 10. Если уравнение не имеет целых корней в указанном промежутке, то вывести фразу «Нет таких корней».

Решение задачи: «Нахождение целых корней уравнения на заданном промежутке»

textual
Листинг программы
uses System.Linq; // for Enumerable
 
begin
  var c := Enumerable.Range(1, 6).Select((i : integer) -> ReadInteger({тут можно добавить приглашение})).ToList(); 
  c.Reverse();
   
  var roots := Enumerable.Range(-10, 21).Where(x -> 
                                         c.Aggregate((acc, coeff) -> acc * x + coeff) = 0);
    
  if roots.ToArray().Length > 0 then
    writeln(string.Join(NewLine, roots.Select((v, i) -> Format('x{0} = {1}', i, v))))
  else writeln('Нет таких корней');
end.

Объяснение кода листинга программы

  1. Объявляется переменная c типа Enumerable.Range(1, 6) и инициализируется с помощью метода Select и лямбда-выражения, которое читает целое число с помощью функции ReadInteger.
  2. Затем переменная c инвертируется с помощью метода Reverse.
  3. Далее объявляется переменная roots типа Enumerable.Range(-10, 21) и инициализируется с помощью метода Where. Лямбда-выражение проверяет, равно ли значение Aggregate нулю, применяя его к каждому элементу c.
  4. Если длина массива ToArray корней больше нуля, то выводится список корней с помощью метода Select и лямбда-выражения, которое выводит индекс и значение корня.
  5. Если длина массива корней равна нулю, то выводится сообщение Нет таких корней.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы