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

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

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

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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы