Реферат на тему:
Аналіз та обчислення дужкових виразів
У розділі 9 розглядалися дужкові арифметичні вирази, мова яких породжується розширеною LA(1)-граматикою G2:
( { 0, … , 9, ., c, i, n, o, s, +, *, -, /, (, ) },
{ E, T, F, A, C, D, N },
{ E T { +T | -T }, T F { *F | /F }, F (E) | C | A,
C N (E), N 'sin' | 'cos',
A D { D } [ . { D } ], D 0 | … | 9 },
E ).
Імена A, C, N є скороченнями фраз "Arithmetic constant", "Call of function", "Name of function" відповідно, тобто "Арифметична стала", "Виклик функції", "Ім'я функції".
Побудуємо програму Aexval аналізу та обчислення арифметичних виразів на основі програми Aexan із попереднього підрозділу. Нехай вираз подається в кількох рядках, і ознакою кінця є порожній рядок. Читання лексем виразу задається модулями Glx та Inbuf, означеними в розділі 20. Замість функції getc добування наступного символу з програми Aexan використовується функція getlx добування наступної лексеми, а замість поточного символу ch – поточна лексема lx типу Tlx. Ознака наявності лексеми, що повертається з функції getlx, присвоюється бульовій змінній islx.
Підпрограми для нетерміналів A, N тут не створюються, оскільки аналіз лексем, позначених ними, уже задаєно в модулі Glx. Кожна з процедур E, T, F перетворюється на функцію обчислення тієї частини виразу, яка аналізується при виконанні її виклику. Побудуємо їх таким чином, щоб за помилкового виразу з них поверталося значення 1.
Згідно з продукціями граматики G2, функція F обчислення множника у виразі має такий вигляд:
function F : real;
begin
if ( lx.lxt = par ) and ( lx.prt = '(' ) then
begin
islx := getlx ( lx ); F := E;
if islx and ( lx.lxt = par ) and ( lx.prt = ')' )
then islx := getlx ( lx )
else begin error; F := 1 end
end
else
if lx.lxt = con then
begin F := lx.numb; islx := getlx ( lx ) end
else
if lx.lxt = nam then F := C
else begin error; F := 1 end
end
Функція C задає обчислення значення, що має повернутися з указаного у виразі виклику функції sin чи cos:
function C : real;
var lx1 : Tlx; v : real;
begin
lx1 := lx; islx := getlx ( lx );
if islx and ( lx.lxt = par ) and ( lx.prt = '(' ) then
begin
islx := getlx ( lx ); v := E;
if islx and ( lx.lxt = par ) and ( lx.prt = ')' )
then islx := getlx ( lx )
else begin error; C := 1 end;
if ok then
if lx1.name = 'sin' then C := sin ( v )
else C := cos ( v )
else begin error; C := 1 end
end
else begin error; C := 1 end
end
Функція E задає обчислення виразу, вивідного з E:
function E : real;
var lx1 : Tlx; v : real;
begin
v := T;
while ok and ( lx.lxt = ops )
and ( lx.sig in ['+', '-'] ) do
begin
lx1 := lx; islx := getlx ( lx );
case lx1.sig of
'+' : v := v + T;
'-' : v := v - T
end
end;
if ok then E := v else E := 1
end
Функцію T обчислення доданка у виразі, яка має аналогічну функції E структуру, залишаємо для самостійної розробки. Головна програма подібна до програми Aexan:
program Aexval ( input, output );
uses Inbuf, Glx
var islx, ok : boolean;
v : real; lx : Tlx;
procedure error;
begin ok := false; islx := falseend;
function E : real; forward;
function C : real; … end;
function F : real; … end;
function T : real; … end;
function E; { скорочений заголовок } … end;
begin
ok := true;
v := 0;
islx := getlx ( lx );
v := E;
if ok andnot islx then writeln ( v )
else writeln ( '***error***' )
end.
Другие работы по теме:
Теорія економічного аналізу
Сутність та предмет економічного аналізу. Визначення понять "технологія", "фактор", "резерв", "аналіз". Класифікація господарських резервів. Управлінський та оперативний аналіз. Основні джерела інформації у процесі здійснення аналітичного дослідження.
Комплексний аналіз часових рядів
ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД «ЗАПОРІЗЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ» МІНІСТЕРСТВА ОСВІТИ І НАУКИ УКРАЇНИ Лабораторна робота № 6 Тема : «Комплексний аналіз часових рядів»
Контрольная работа по Строительству 2
Завдання Сходні данні: Розрахункова схема представлена на (рис. 1). Рис.1 1.1 Ступінь статичної невизначуваності (розрахункова схема (рис.1)): де С – кількість опорних в’язей. С= 7 – число в’язей. Т
Проведення відбору експертів в галузі Архітектура компютерів
Контрольна робота №1 Предмет «Системний аналіз» Проведення відбору експертів в галузі «Архітектура комп’ютерів» «Архітектура комп’ютерів» Дана тема вибрана мною тому, що є зараз актуальною в епоху розвитку комп’ютерних технологій, і на мою думку кожен, хто хоча б якось пов’язує свою роботу з комп’ютерними технологіями, комп’ютерною технікою, повинен знати будову і функціонування комп’ютера.
Зміст і методика обчислення кошторису виробництва
Собівартість валової товарної і реалізованої продукції та порядок їх обчислення. Собівартість валової продукції як показник , засовується для внутрішніх потреб підприємств, на яких не є стабільною величина залишків незавершеного виробництва. По валовій продукції обчислюється виробнича собівартість, по товарній і реалізованій — повна.
Складання сценаріїв в операційній системі LINUX
Знайомство із текстовою операційною оболонкою bash, вивчення мови програмування оболонки bash та практичне складання найпростіших сценаріїв за допомогою редактора vi (vim). Створення файла сценарію. Змінні середовища, оператор-перемикач та оператор циклу.
Теорія множин. Операції над множинами та їх властивості
Теоретичні основи теорії множин. Основні операції над множинами та їх властивості. Складання програми для обчислення результуючої множини за вихідним і спрощеним виразами. Виконання операцій над множинами, застосування їх властивостей, спрощення виразів.
Проектування ітераційних алгоритмів
Використання ітерацій для обчислення приблизних значень величин. Розробка ітераційних алгоритмів з перевіркою правильності введення даних. Побудова блок-схеми і програмування мовою Turbo Pascal обчислення значення функції, розкладеної в степеневий ряд.
Завдання з програмування на Visual Basic
Обчислення наближеного значення суми спадного ряду. Складання блок-схеми та програми, яка б виводила на друк сгенерований, сформований та впорядкований масиви. Використання операторів умовного переходу If - Then - Else. Розроблення програми на VBA.
Емпіричне дослідження програмного забезпечення
Аналіз методів емпіричної інженерії програмного забезпечення. Призначення та властивості програмного забезпечення та метрик проектів Openproj-1.4-src, TalendOpen Studio 3.2.1 та Рlazma-source 0.1.8, їх статистичний, кореляційний та регресійний аналіз.
Основи роботи в системі символьної математики MATLAB 5.2
Основи роботи з векторами і матрицями. Способи будування математичних виразів. Константа як заздалегідь визначене числове або символьне значення, представлене унікальним ім’ям. Знаходження матриці обернення та множення їх на скаляр в пакеті Matlab.
Дослідження чисельних методів інтегрування
Дослідження методів чисельного інтегрування Чебишева та Трапеції, порівняння їх точності. Способи розробки програми на компіляторі Turbo C++, яка знаходить чисельне значення вказаного інтегралу. Обґрунтування вибору інструментальних засобів програми.
Програмування рекурентні послідовності та співвідношення
Реферат з інформатики Програмування: рекурентні послідовності та співвідношення 1.Рекурсії. Для обчислення степеня в алгоритмі накопичування добутку (див. П. 3.3) змінна p приймала значення 1, a, a2, a3, … , an. У цій послідовності перший член 1, а кожний наступний дорівнює попередньому, помноженому на a.
Лісп мова функціонального програмування
Реферат на тему: Лісп – мова функціонального програмування 1. Місце Ліспу у класифікації мов програмування За однією з класифікацій мови програмування діляться на
Побудова алгоритму LA-аналізу
Реферат на тему: Побудова алгоритму LA(1)-аналізу 1. Правила побудови Нехай G=(X, N, P, S) – LA(1)-граматика без -правил, можливо, розширена. Опишемо побудову програми синтаксичного аналізу слів мови L(G). Програма буде містити процедури, іменами яких є відповідні їм нетермінали граматики.
Програмування основних алгоритмічних структур
Тема. . 1. Оператори присвоювання, вводу-виводу; запис лінійних алгоритмів. Практично кожна програма повинна виконувати такі дії: вводити вихідні дані, проводити опрацювання цих даних (як правило, обчислення) та виводити результати роботи. Для виконання цих дій використовуються оператори вводу, присвоювання та виводу.
Критерії оцінювання навчальних досягнень у системі загальної середньої освіти
МАТЕМАТИКА Складовими запровадження тематичного обліку знань, що потребують розробки нових форм і методів контролю та сучасної системи оцінювання навчальних досягнень учнів з курсу математики, є засвоєння ними теоретичного матеріалу та сформованість умінь і навичок застосовувати набуті знання до розв’язування задач і повсякденному житті.
Абсолютні величини в статистиці
Реферат на тему: Абсолютні величини в статистиці. План. Поняття статистичних величин. Види абсолютних величин. І статистичні ряди і статистичні таблиці містять підсумкові дані, які характеризують сукупність одиниць спостереження.
Оператор присвоювання
Реферат на тему: Оператор присвоювання В будь-якій мові програмування можна виділити чотири типи елементів, що використовуються при побудові описів програм:
Про систему задач для вивчення інтеграла
Система задач для вивчення первісної та інтеграла в навчальному посібнику (1) недостатньо досконала. Завдання тут в основному зводяться до обчислення площ фігур (№1022-1027, 1037-1042, 1081-1087) і інтеграла (1028-1036, 1071-1080), тобто, так як і в задачниках з математичного аналізу для втузів, мають тренувальний характер.
Мова Паскаль
КОЛОМИЙСЬКЕ ВПУ-17 РЕФЕРАТ НА ТЕМУ: МОВА ПАСКАЛЬ Виконав: учень групи : №13 Гаврищук Ігор Юрович Викладач: Остапчук С.М. КОЛОМИЯ 2002р. ВСТУП Мова ПАСКАЛЬ, затвердженна в якості стандартної в 1979р.
Табличний редактор Microsoft Excel
Теоретичні відомості 1.1. Табличний редактор Microsoft Excel Microsoft Excel – це складова частина пакето-прикладних програм Microsoft Office. Microsoft Excel – призначений для створення електронних таблиць і найбільшою перевагою є можливість досліджувати, аналізувати дані і виконувати обчислення.
Інтегрування ірраціональних виразів
Пошукова робота на тему: Інтегрування ірраціональних виразів. План Інтегрування деяких ірраціональних функцій Інтеграли від виразів Підстановки Чебишева