Программа


' Поиск корня уравнения методом секущих

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

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