Пример 1.5. Решить квадратное уравнение ax2 + bx + c = 0.

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

Номер теста Проверяемый случай Коэффициенты Результаты
a b c
1 d >0 1 1 -2 x1 = 1, x2 =  - 2
2 d=0 1 2 1 Корни равны:  x1 =  - 1, x2 =  - 1
3 d<0 2 1 2 Действительных корней нет
4 a=0, b=0, c=0 0 0 0 Все коэффициенты равны нулю. х -любое число.
5 a=0, b=0, c<>0 0 0 2 Неправильное уравнение
6 a=0, b<>0 0 2 1 Линейное уравнение. Один корень: x = - 0,5
7 a<>0, b<>0, с=0 2 1 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; 
  ReadLn
END.
 
QBasic

CLS
INPUT "Введите количество тестов : ", NTest
FOR 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 : PRINT
NEXT Test
ENDРезультаты работы 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> 
Действительных корней нет. 

Другие записи

10.06.2016. Пример 1.6. Две прямые описываются уравнениями a1 x + b1 y + c1 = 0; a2 x + b2 y + c2 = 0. Напечатать координаты точки пересечения этих прямых, либо сообщить, что эти прямые совпадают, не пересекаются или вовсе не cуществуют.
Система тестов Номер теста Проверяемый  случай Коэффициенты прямых Результаты a1 b1 c1 a2 b2 c2 1 Первая прямая не существует 0 0 1 1 2 2 Это не прямая 2 Вторая…