BigEdu.ru
» » » Обчислення иразів у програмуванні
Вернуться назад

Обчислення иразів у програмуванні

ОБЧИСЛЕННЯ ВИРАЗІВ

У ПРОГРАМУВАННІ

1. Задача обчислення виразів

Числовий вираз – це запис, складений за певними правилами зі сталих, імен, знаків операцій та дужок. Сталі та імена у виразі позначають операнди, а знаки операцій з дужками задають послідовність операцій, виконання яких породжує значення виразу. У цьому розділі ми займемося питанням, як за виразом відтворити виконання операцій та обчислити його значення.

Зробимо деякі уточнення. Будемо вважати, що структура виразів і правила вилучення зайвих дужок відповідають означенням із підрозділу 2.2.4. Вирази містять:

- цілі й дійсні сталі та імена змінних;

- символи "+", "-", "*", "/" двомісних арифметичних операцій;

- імена (ідентифікатори) одномісних функцій sin та cos;

- дужки "(" та ")".

Задачу обчислення значення виразу розіб'ємо на дві підзадачі:

1) прочитати вираз і побудувати його внутрішнє подання;

2) за внутрішнім поданням виразу обчислити його значення.

Для початку будемо вважати, що вирази читаються з "зовнішнього світу", не уточнюючи поки що, звідки саме.

Існує кілька способів представити послідовність операцій, задану виразом. Один із них – це подання виразу його зворотним польським записом. Саме ним ми і скористаємося.

2. Зворотний польський запис

та алгоритм його побудови

2.1. Зворотний польський запис.

Звичною формою виразів є інфіксна , коли знак бінарної операції записується між позначеннями операндів цієї операції, наприклад, a +b . Розглянемо запис знаків операцій після позначень операндів , тобто постфіксний запис , наприклад, ab +. Такий запис має також назву зворотного польського , оскільки його запропонував польський логік Ян Лукасевич. Далі словосполучення "зворотний польський запис" позначатимемо ЗПЗ.

Опишемо відповідність між звичними інфіксними виразами та їх ЗПЗ. Нехай E , E1 , E2 позначають вирази в інфіксній формі, <op1 >, <op2 > – знаки унарної та бінарної операцій, <opf> – ім'я функції. Виразу E залежно від його вигляду відповідає ЗПЗ L (E ) згідно з правилами:

E L (E )
стала чи ім'я змінної E
'(' E1 ')' L (E1 )
<op1 >E1 L (E1 ) <op1 >
E1 <op2 >E2 L (E1 ) L (E2 ) <op2 >
<opf>'('E1 ')' L (E1 ) <opf>

Як бачимо, ці правила рекурсивні, і ЗПЗ складніших виразів описуються за допомогою ЗПЗ їх простіших підвиразів.

У наступних прикладах покажемо застосування наведених правил з урахуванням старшинства та властивості лівостороннього зв'язування операцій :

L ( b * c ) = b c * ;

L ( -(-a ) ) = L ( (-a )) - = a --;

L ( a + b * c ) = L (a ) L (b *c ) + = a b c * + ;

L ( a + b - c ) = L ( a + b ) L ( c ) - = a b + c - ;

L ( 1-sin( a +b ) ) = L (1) L ( sin( a +b ) ) - = 1 L ( a +b ) sin - =1 a b + sin - .

Вирази зі знаками унарних операцій далі не розглядаються.

2.2. Алгоритм побудови ЗПЗ.

Вираз є послідовністю символів – цифр, букв та інших знаків. Але вони утворюють лексичні одиниці, або лексеми, чотирьох різновидів: сталі, імена (позначення функцій), знаки операцій та дужки. Будемо дивитися на вираз саме як на послідовність лексем, які ми одержуємо послідовним читанням виразу зліва направо.

Розглянемо докладніше побудову вихідної послідовності лексем L (E ) за лексемами виразу E .

З правил побудови L (E ) випливає, що порядок елементарних позначень операндів (сталих чи імен змінних) у виразах E і L (E ) однаковий, тому сталі й імена змінних можна одразу записувати у вихідну послідовність.

Порядок знаків операцій змінюється: у вхідному виразі вигляду E 1 op2 E 2 знак op2 передує знакам операцій виразу E 2 , а у вихідному виразі L (E 1 ) L (E 2 ) op2 – навпаки. Тому знак op2 треба запам'ятати, видати L (E 2 ), а після нього – op2 . Знаки операцій у виразах E <

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать
Рефераты по астрономии ОБЧИСЛЕННЯ ВИРАЗІВ У ПРОГРАМУВАННІ 1. Задача обчислення виразів Числовий вираз – це запис, складений за певними правилами зі сталих, імен,
Оценок: 1009 (Средняя 5 из 5)

Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.

© 2016 - 2022 BigEdu.ru