Решить невырожденное квадратное неравенство - Pascal ABC
Формулировка задачи:
Решить невырожденное (т.е. а не равно 0) квадратное неравенство ax2+bx+c>0
Решение задачи: «Решить невырожденное квадратное неравенство»
textual
Листинг программы
var a,b,c,d,x1,x2,x:real; begin repeat writeln('Введите коэффициенты a,b,c:'); readln(a,b,c); if a=0 then writeln('Это не квадратный трехчлен, повторите ввод.'); until a<>0; d:=b*b-4*a*c; if d>0 then begin x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); if x1>x2 then begin x:=x1; x1:=x2; x2:=x; end; end; if a>0 then begin if d>0 then write('x<',x1:0:1,' or x>',x2:0:1) else write('x-любое число'); end else begin if d>0 then write('x>',x1:0:1,' and x<',x2:0:1) else write('Решений нет'); end; end.
Объяснение кода листинга программы
- Создаются переменные a, b, c, d, x1, x2, x типа real.
- Запускается цикл repeat-until, который продолжается до тех пор, пока значение переменной a не станет равным нулю.
- Внутри цикла считываются коэффициенты a, b, c с помощью функции readln.
- Проверяется, является ли введенный трехчлен квадратным. Если a равно нулю, выводится сообщение об ошибке и цикл повторяется.
- Вычисляется значение переменной d как bb - 4a*c.
- Если значение переменной d больше нуля, то вычисляются значения x1, x2 с помощью формулы (-b + sqrt(d)) / (2a) для x1 и (-b - sqrt(d)) / (2a) для x2.
- Если x1 больше x2, то значения x1, x2 меняются местами.
- Если a положительное и d больше нуля, то выводится условие x < x1 или x > x2.
- Если a отрицательное и d больше нуля, то выводится условие x > x1 и x < x2.
- Если a равно нулю, то выводится сообщение о том, что решений нет.