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> Действительных корней нет.
|
Пример 1.6. Две прямые описываются уравнениями
a1 x + b1 y + c1 = 0;
a2 x + b2 y + c2 = 0.
Напечатать координаты точки пересечения этих прямых, либо сообщить, что эти прямые совпадают, не пересекаются или вовсе не cуществуют.