Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Поиск по сайту

Активно и часто использую
Использую редко
Обхожусь стандартным рубрикатором
Не знаю, что это такое
Я и сам не знаю, что ищу


Результаты
Другие опросы

Всего голосов: 488
Комментарии: 0


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Книги-online



Практикум — Глава 1. Алгоритмы линейной и разветвляющейся структуры
[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]

Пример 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> 
Действительных корней нет. 

 
[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]


Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать