Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Решение уравнения четвёртой степени на Prolog.docx
Скачиваний:
0
Добавлен:
02.01.2026
Размер:
1.12 Mб
Скачать

1. Задание структуры данных и предикатов

Программа начинается с определения доменов и предикатов, необходимых для работы с многочленами:

Домены:

  • realnum -вещественные числа (коэффициенты и корни);

  • file_pointer -указатель на файл;

  • int -целые числа для итераций и служебных параметров;

  • real_list -список вещественных чисел (например, для хранения корней).

Предикаты разделены на функциональные группы:

  • чтение коэффициентов из файла;

  • определение типа уравнения;

  • вычисление значения многочлена;

  • метод хорд для поиска корня;

  • схема Горнера для понижения степени;

  • схема Кардано для кубического уравнения;

  • расчёт квадратных и линейных формул;

  • вывод решений.

2. Загрузка входных данных

Программа считывает коэффициенты из файла coeffs.txt по следующему алгоритму:

  • проверяется существование файла;

  • файл открывается для чтения;

  • последовательно считываются пять строк -коэффициенты  ;

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

3. Определение типа уравнения и ветвление логики

После чтения коэффициентов программа анализирует их значения:

  • Если   - уравнение 4-й степени: запускается метод хорд и схема Горнера.

  • Если   - кубическое уравнение: используется схема Кардано.

  • Если   - квадратное уравнение: применяется классическая формула для квадратного корня.

  • Если   - линейное уравнение: корень вычисляется по формуле  .

  • Если   - выводится «Решений нет».

  • Если   - выводится «Любое число».

4. Вычисление корней уравнения

Для уравнения 4-й степени ( ):

а) Метод хорд (поиск одного корня):

  • выбираются два начальных приближения;

  • выполняются итерации, пока не достигнута точность;

  • найденный корень используется далее.

б) Понижение степени по схеме Горнера:

  • исходный многочлен делится на  ;

  • получается кубическое уравнение, решаемое стандартными методами;

  • вычисляются оставшиеся три корня.

Для кубического уравнения ( ):

Используется схема Кардано:

  • приводится к каноническому виду;

  • вычисляются параметры  , дискриминант;

  • в зависимости от знака дискриминанта находятся три или один корень.

Для квадратного уравнения ( ):

Корни вычисляются по формуле:

Для линейного уравнения ( ):

Для вырожденных случаев:

  • корректные сообщения: «Решений нет», «Любое число».

5. Получение результатов

На экран выводятся:

  • считанные коэффициенты из файла;

  • определённый тип уравнения;

  • используемый метод решения;

  • найденные корни (1, 2, 3 или 4);

  • либо текстовые сообщения при вырожденных случаях

Перечень предикатов (функций)

Для реализации программы решения уравнения четвёртой степени были определены следующие предикаты, сгруппированные по функциональным блокам.

1. Предикаты ввода-вывода и управления

• go - основной запуск программы • process_file - обработка файла с коэффициентами • read_coefficients(A, B, C, D, K) - чтение коэффициентов из файла • read_number(Number) - считывание одного вещественного числа • print_equation(A,B,C,D,K) - вывод уравнения в стандартном виде • print_root(Label, Value) - вывод найденного корня • print_message(Text) - вывод служебного сообщения • wait_for_enter - ожидание нажатия клавиши перед выходом