![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Символьное выполнение
Символьное выполнение — это технология подстановки символов в формулы, зако дированные внутри языка программирования с выполнением алгебраического объе динения символов в соответствии с алгоритмом. Рассмотрим код функции вычисле ния синуса SINE, приведенный на рис. 9.6. Этот алгоритм содержит минимальное количество произведений, как показано в следующем выражении:
sin(x) =x*(l -х2 *(1/3! -х2 *(1/5! -х2 *(1/7! -х2 *(...))))).
REAL FUNCTION SINE (P, EPS)
ERROR = P
SUM = P
DO J = 3, 1000, 2
ERROR = ERROR * (P**2) / (J* (J+l))
SUM = SUM - ((J+l)/2) * ERROR
IF (ABS(ERROR).LT. EPS)
THEN
GO TO 30
ENDIF
ENDDO
30 SINE = SUM RETURN END
Рис. 9.6. Функция SINE, реализованная с использованием разложения вряд Тейлора
Программа символьного выполнения осуществляет математические упрощения для реализации приведенных в таблице 9.3 шагов алгоритма, который представляет собой известный метод разложения в ряд Тейлора.
Полученные результаты можно сравнить со значением функции sin(x), получен ным из большинства математических справочников, а именно:
sin(x) = х- x3/ З! +x5/5! + х7/7!...
Повторимся еще раз: из этого описания понятно, почему символьное выполнение является средством статического тестирования. Это связано с тем, что для выполне ния алгоритма не требуется ввод числовых данных.
Таблица 9.3. Символьное выполнение алгоритма, приведенного на рис. 9.6
|