Решение квадратного уравнения в комплексных числах - Prolog

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

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

Доброго времени суток. Помогите, пожалуйста, с программой, решающей квадратное уравнение в комплексных числах. Изначально было задание просто составить программу, решающую квадратное уравнение. Однако было добавлено еще условие, что при дискриминанте меньше 0 нужно решить квадратное уравнение в комплексных числах. Вопрос, как это сделать? Перепробовал много, вот текст программы.
Листинг программы
  1. predicates
  2. reshit(integer,integer,integer)
  3. reply(real,real,real) %Ветви вычислений
  4. clauses
  5. reshit(A,B,C):-
  6. D=B*B-4*A*C, %вычисление дискриминанта
  7. reply(A,B,D),nl. %запуск разветвлений
  8. reply(A,B,D):-D<0, W=sqrt(-D),X1=(-B+W*i)/(2*A), X2=(-B-W*i)/(2*A),
  9. write("Квадратное уравнение имеет корни X1=" ,X1, "X2= ",X2). %если дискриминант <0
  10. reply(A,B,D):-D=0, %если дискриминант=0
  11. X=-B/(2*A),write("Квадратное уравнение имеет один общий корень x1,2=",X).
  12. reply(A,B,D):-D>0,
  13. W=sqrt(D),
  14. X1=(-B+W)/(2*A),
  15. X2=(-B-W)/(2*A),
  16. write("Квадратное уравнение имеет два корня x1=",X1," i x2=",X2).
  17. GOAL
  18. write("Введите значения коэффициентов квадратного уравнения"),nl,
  19. write("Введите значение коэффициента А "),
  20. readint(A),
  21. write("Введите значение коэффициента B "),
  22. readint(B),
  23. write("Введите значение коэффициента С "),
  24. readint(C),
  25. reshit(A,B,C).

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

textual
Листинг программы
  1. reply(A,B,D):-
  2.     D < 0,
  3.     Im = sqrt(-D)/(2*A),
  4.     Re = -B/(2*A),
  5.     write("Квадратное уравнение имеет корни X1=", Re, "-", Im, "i, X2= ", Re, "+", Im, "i").

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

  1. В первой строке кода используется оператор < для сравнения значения переменной D с нулем.
  2. Если D < 0, то выполняется следующая инструкция.
  3. Значение переменной Im вычисляется с помощью функции sqrt(-D) и делится на 2*A.
  4. Значение переменной Re вычисляется с помощью формулы -B/(2*A).
  5. Выполняется функция write, которая выводит на экран сообщение Квадратное уравнение имеет корни X1=, за которым следуют значения переменных Re и Im, разделенные знаком -, а затем i, X2= и снова значения переменных Re и Im, разделенные знаком +, и снова i.
  6. Код завершается точкой.

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


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

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

12   голосов , оценка 4 из 5

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

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

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