Решение квадратного уравнения - Pascal (4345)
Формулировка задачи:
Написал, но работает не совсем исправно, подправьте, пожалуйста, где есть ошибки.
P.S Если k<0 , то что надо + "Первый корень:0 Второй корень:не*число"
var a, b, c, D, x1, x2, k: real; begin writeln('Введите A, B, C'); readln(a,b,c); D:=sqr(b)-4*a*c; k:=sqrt(D); writeln('Дискриминант:', D); if k>0 then x1:=(-b+k)/(2*a); begin x2:=(-b-k)/(2*a); end; if k=0 then x1:=-b/(2*a); if k<0 then writeln('Корней нет'); writeln('Первый корень:', x1, ' Второй корень:', x2); end.
Решение задачи: «Решение квадратного уравнения»
textual
Листинг программы
var a, b, c, D, x1, x2, k: real; begin writeln('Введите A, B, C'); readln(a,b,c); if a=0 then begin write('Это не квал\дратное уравнение'); exit end; D:=sqr(b)-4*a*c; writeln('Дискриминант:', D); if D>=0 then begin k:=sqrt(D); if k=0 then begin x1:=-b/(2*a); write('Один корень ',x1:0:2); end else begin x1:=(-b-k)/(2*a); x2:=(-b+k)/(2*a); write('Первый корень: ',x1:0:2,' Второй корень: ',x2:0:2); end end else write('Корней нет'); end.
Объяснение кода листинга программы
- Создается переменная
a
и присваивается ей значение 0. Еслиa
равно 0, то выводится сообщение о том, что это не квадратное уравнение, и программа завершается. - Вычисляется дискриминант
D
с помощью формулыD := sqr(b) - 4 * a * c
. - Проверяется значение
D
. ЕслиD
больше или равно 0, то выполняется следующий блок кода. - Создается переменная
k
и присваивается ей значение квадратного корня изD
с помощью функцииsqrt(D)
. - Проверяется значение
k
. Еслиk
равно 0, то выполняется следующий блок кода. - Вычисляются значения
x1
иx2
с помощью формулx1 := -b/(2*a)
иx2 := (-b+k)/(2*a)
. - Выводится сообщение с найденными значениями корней
x1
иx2
. - Если
k
не равно 0, то выполняется предыдущий блок кода. - Если
D
меньше 0, то выводится сообщение о том, что корней нет.