Система тестов. Номер теста Проверяемый случай Коэффициенты Результаты a b c d >0 -2 x1 = 1
Номер теста
Проверяемый случай
Коэффициенты
Результаты
a
b
c
d >0
-2
x1 = 1, x2 = - 2
d=0
Корни равны: x1 = - 1, x2 = - 1
d < 0
Действительных корней нет
a=0, b=0, c=0
Все коэффициенты равны нулю. х — любое число.
a=0, b=0, c<>0
Неправильное уравнение
a=0, b<>0
Линейное уравнение. Один корень: x = - 0,5
a <> 0, b <> 0, с = 0
x1 = 0, x2 = - 0,5
Демонстрация
Школьный АЯ (упрощенный алгоритм)
алг Квур (арг вещ а, b, c, рез вещ x1, x2, рез лит t) дано a <> 0нач вещ d d := b**2-4*a*c | d - дискриминант квадратного уравнения если d<0 то t := "Действительных корней нет" иначе если d=0 то t := "Корни равны"; x1 := -b/(2*a); x2 := x1 иначе t := "Два корня" x1 := (-b + sqrt(d)) / (2*a) x2 := (-b - sqrt(d)) / (2*a) все всекон
Turbo Pascal
Program QuadraticEquation; Uses Crt; { подключение библиотеки Crt } Var a, b, c : Real; {a, b, c - коэффициенты уравнения} Discr : Real; x1, x2 : Real; {x1, x2 - корни } Test, NTest : Integer; {Ntest - количество тестов }BEGIN ClrScr; Write('Введите количество тестов : '); ReadLn(NTest); For Test := 1 to NTest do {цикл по всем тестам задачи } begin Write('Тест ', Test, '. Введите коэффициенты a, b, c : '); ReadLn(a, b, c); If (a=0) and (b=0) and (c=0) then begin Write('Все коэффициенты равны нулю.'); WriteLn('x - любое число ') end else If (a=0) and (b<>0) then WriteLn('Линейное уравнение. Oдин корень: x =', (-c/b):6:2) else If (a=0) and (b=0) and (c<>0) then WriteLn('Неправильное уравнение.') else begin Discr := b*b - 4*a*c; If Discr > 0 then begin x1:=(-b + Sqrt(Discr)) / (2*a); x2:=(-b - Sqrt(Discr)) / (2*a); WriteLn('x1=' , x1:6:2 , '; x2=' , x2:6:2) end else If Discr = 0 then begin x1 := -b/(2*a); WriteLn('Корни равны: x1=', x1:6:2, ' x2=', x1:6:2) end else WriteLn('Действительных корней нет.'); end; WriteLn end; ReadLnEND.
QBasic
CLSINPUT "Введите количество тестов : ", NTestFOR Test = 1 TO NTest ' цикл по всем тестам задачи PRINT "Тест" ; Test ; ". Введите коэффициенты a, b, c : " ; INPUT a, b, c IF (a = 0) AND (b = 0) AND (c = 0) THEN PRINT "Все коэффициенты равны нулю. x - любое число" ELSE IF (a = 0) AND (b <> 0) THEN PRINT "Линейное уравнение, корень один : x = "; -c / b ELSE IF (a = 0) AND (b = 0) AND (c <> 0) THEN PRINT "Неправильное уравнение." ELSE Discr = b * b - 4 * a * c IF Discr > 0 THEN x1 = (-b + SQR(Discr)) / (2 * a) x2 = (-b - SQR(Discr)) / (2 * a) PRINT "x1 = "; x1; "; x2 = "; x2 ELSE IF Discr = 0 THEN x1 = - b / (2 * a) PRINT "Корни равны: x1 = "; x1; "; x2 = "; x1 ELSE PRINT "Действительных корней нет." END IF END IF END IF END IF END IF : PRINTNEXT TestEND
Результаты работы QBasic-программы (фрагмент):
Тест 1 . Введите коэффициенты a, b, c : ? 1, 1, –2 <Enter>x1 = 1 ; x2 = – 2Тест 2 . Введите коэффициенты a, b, c : ? 1, 2, 1 <Enter>Корни равны: x1 = – 1 ; x2 = – 1Тест 3 . Введите коэффициенты a, b, c : ? 2, 1, 2 <Enter>Действительных корней нет.