Система тестов


Номер теста Проверяемый случай Коэффициенты Результаты
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> Действительных корней нет.

 

Пример 1.6.