Программа


'Вычисление интеграла методом Симпсона
'с заданной точностью
DECLARE FUNCTION Integral! (Left!, Right!, Break%)
DECLARE FUNCTION ExactIntegral! (Left!, Right!, Eps!)

DEF FNFun! (X!) = X!  'Вычисление интегрируемой функции

'Ввод данных:
INPUT "Введите левую границу интервала интегрирования ", Left!
INPUT "Введите правую границу интервала интегрирования ", Right!

PRINT "="; ExactIntegral!(Left!, Right!, 0.01)
                                             'Вычисление и вывод результата
END

FUNCTION ExactIntegral! (Left!, Right!, Eps!)
                       ' Функция вычисления интеграла с заданной точностью
  Break% = 1           ' Оперделение начального разбиения
  IntegralBuf! = Integral!(Left!, Right!, Break%)
                       ' Предварительное вычисление интеграла
  DO
    PredInt! = IntegralBuf!      ' Сохранение предыдущего значения интеграла
    Break% = Break% * 2          ' Увеличение разбиения
    IntegralBuf! = Integral!(Left!, Right!, Break%)
                                 ' Вычисление нового значения интеграла
  LOOP UNTIL ABS(IntegralBuf! - PredInt!) <= Eps!
                            ' Выход из цикла при достижении заданной точности
  ExactIntegral! = IntegralBuf!   ' Определение значения функции
END FUNCTION

FUNCTION Integral! (Left!, Right!, Break%) 'Вычисление интеграла
  LengthStep! = (Right! - Left!) / Break% / 2
                                     'Вычисление длины шага интегрирования
  X! = Left! + LengthStep!  'Начальное определение промежуточной абсциссы
  Sum1! = 0      'Обнуление промежуточной суммы 1
  Sum2! = FNFun!(X!)    'Начальное определение промежуточной суммы 2
  FOR i% = 2 TO Break%     'Цикл набора промежуточных сумм
    X! = X! + LengthStep!    'Переопределение абсциссы
    Sum1! = Sum1! + FNFun!(X!)   'Набор промежуточной суммы 1
    X! = X! + LengthStep!   'Переопределение абсциссы
    Sum2! = Sum2! + FNFun!(X!)   'Набор промежуточной суммы 2
  NEXT i%
  Integral! = LengthStep! / 3 * (FNFun!(Left!) + FNFun!(Right!) + 2 * Sum1! + 4 * Sum2!)
                                             'Определение значения интеграла
END FUNCTION


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