Программа


' Поиск корня уравнения
' методом половинного деления
' (меод дихотомии) 
DECLARE FUNCTION Root! (a!, b!)
DEF FnF (X) = X * X - 100 ' Вычисление функции

' Ввод интервала локализации корня:
INPUT "Введите левую границу интервала локализации корня ", a
INPUT "Введите правую границу интервала локализации корня ", b
Result = Root(a, b)           ' Вычисление корня
PRINT "x="; Result; "  F(x)="; FnF(Result)  ' Вывод корня и проверки
END

FUNCTION Root (a, b) ' Нахождение корня
  Eps = 0 ' Точность вычислений
  WHILE ABS(b - a) > Eps  ' Сужение интервала до заданной точности
    c = (a + b) / 2 ' Определение средней точки интервала локализации корня
    IF (c = a) OR (c = b) THEN
                      a = c: b = c  ' Блокирование сбоя при потере точности
      ELSEIF FnF(a) * FnF(c) < 0 THEN ' Если функция меняет знак
      ' на левом участке, то переопределение правой границы
                                  b = c
        ELSEIF FnF(b) * FnF(c) < 0 THEN ' иначе - если функция меняет знак
                         ' на правом участке то переопределение левой границы
                                     a = c
          ELSE ' Блокирование сбоя при потере точности
               ' или случайном нахождении корня :
            IF FnF(a) = 0 THEN c = a: b = a
            IF FnF(b) = 0 THEN c = b: a = b
            IF FnF(a) * FnF(b) * FnF(c) = 0 THEN a = c: b = c
    END IF
  WEND
  Root = (a + b) / 2 ' Определение значения функции
END FUNCTION


Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию