Решение квадратных уравнений. Проверка иррациональности числа - Pascal
Формулировка задачи:
Приветствую всех, друзья. Недавно занялся тем, что начал изучать паскаль и вот написал свою первую, как я считаю, неплохую программу для решения квадратных уравнений.
Со своими обязанностями программа справляется на ура, но вот незадача- зачастую в ответе получается число с корнем, который не извлекается, однако паскаль считает этот корень.
Например, если нам дано уравнение 2x^2+4x-7=0, то, решив его на бумажке? ну или как это сделал я через Вольфрам Альфа мы получим ответ: x1= (-2+3sqrt(2)/2); x2= (-2-3sqrt(2)/2), но вот моя программа посчитает это как-то так:
Первый корень уравнения x1= 4.48528137423857
Второй корень уравнения x2 =-12.4852813742386
Как быть? Прошу помочь знающих.
P.s. древние свитки гласят, что это делается при помощи div & mod, но я как-то не понял, как их применять.
program math; var a, b, c, d, x1, x2, ax1:real; begin writeln('Введите коэффициент а.'); read(a); writeln('Введите коэффициент b.'); read(b); writeln('Введите коэффициент c.'); read(c); d := b*b-4*a*c; writeln('Дискриминант D= ', d); if d > 0 then begin x1 := (-b+sqrt(d))/2*a; x2 := (-b-sqrt(d))/2*a; writeln('Первый корень уравнения x1= ', x1); writeln('Второй корень уравнения x2 =', x2); end else if d = 0 then begin ax1 := -b/2*a; writeln('Корень уравнения x1= ', ax1); end else if d < 0 then begin writeln('Уравнение не имеет корней'); end; end.
Решение задачи: «Решение квадратных уравнений. Проверка иррациональности числа»
textual
Листинг программы
if q1 = 1 then q := true else q := false;
Объяснение кода листинга программы
- Переменная q1 инициализируется значением 1.
- Если значение переменной q1 равно 1, то переменная q инициализируется значением true.
- В противном случае, когда значение переменной q1 не равно 1, переменная q инициализируется значением false.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д