Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Символьное выполнение






 

Символьное выполнение — это технология подстановки символов в формулы, зако­ дированные внутри языка программирования с выполнением алгебраического объе­ динения символов в соответствии с алгоритмом. Рассмотрим код функции вычисле­ ния синуса 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. Технологии статического тестирования и советы  

 

 

Программа символьного выполнения осуществляет математические упрощения для реализации приведенных в таблице 9.3 шагов алгоритма, который представляет собой известный метод разложения в ряд Тейлора.

 

Полученные результаты можно сравнить со значением функции sin(x), получен­ ным из большинства математических справочников, а именно:

 

sin(x) = х- x3/ З! +x5/5! + х7/7!...

 

Повторимся еще раз: из этого описания понятно, почему символьное выполнение является средством статического тестирования. Это связано с тем, что для выполне­ ния алгоритма не требуется ввод числовых данных.

 

Таблица 9.3. Символьное выполнение алгоритма, приведенного на рис. 9.6

 

J   Ошибка   Сумма
    Р*(Р2 /12) = Р3 /12 Р-(4/2)*(Р3 /12) = Р - Р 3 /6
    3 /12)*Р 2 /30 - Р 5 /360 P - P 3 /6 + (6/2)*P5 /360 =
        P - P 3 /3! + P5 /120
    Р5 /360*Р2 /56 = Р7/20160 P - P s / 6 + P5 /120-4*(P7 /20160) =
        Р - Р 3 /З! + Р 5 /5! - Р 7 /7!
J P J / (J! * (J + l) / 2) д л я j = 3, n, 2 P-SUM(pj/J!)для J=3, n, 2
         

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.