UkrReferat.com
найбільша колекція україномовних рефератів

Всього в базі: 75843
останнє поновлення: 2016-12-04
за 7 днів додано 10

Реферати на українській
Реферати на російській
Українські підручники

$ Робота на замовлення
Реклама на сайті
Зворотній зв'язок

 

ПОШУК:   

реферати, курсові, дипломні:

Українські рефератиРусские рефератыКниги
НазваПрограма обчислення виразів (реферат)
Авторdimich
РозділІнформатика, компютерні науки
ФорматWord Doc
Тип документуРеферат
Продивилось1394
Скачало313
Опис
ЗАКАЧКА
Замовити оригінальну роботу

Реферат на тему:

 

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

 

Програма буде розроблятися із застосуванням так званого методу

послідовних уточнень – коли задача розбивається на підзадачі,

розв'язання яких перекладається на підпрограми. Програма розв'язання

задачі має досить просту структуру та містить виклики цих підпрограм.

Далі розробляються підпрограми для розв'язання підзадач, у яких

виділяються свої підзадачі. Для їх розв'язання розробляються відповідні

підпрограми тощо.

 

Таким чином, програма та її складові частини не записуються одразу, а

розробляються послідовним їх уточненням. У процесі розробки можливі

повернення до підпрограм, розроблених раніше, та їх уточнення.

Зауважимо, що в цьому процесі окремі частини програми можуть

розроблятися одночасно різними програмістами.

 

Алгоритм обчислення значення виразу в його інфіксній формі уточнимо

програмою, у тіло якої запишемо лише виклики двох підпрограм. Перша з

них уточнює алгоритм побудови ЗПЗ, друга – алгоритм обчислення значення

за ЗПЗ.

 

В обох алгоритмах неважко виділити операції, які виконуються над

послідовністю та магазином лексем – додавання елементів, їх вилучення

тощо. Нехай усі ці операції разом із необхідними означеннями, зокрема,

типу послідовності лексем Sqlx, зібрано в модулі Sllx. Використання

цього модуля укажемо в програмі, а його розробка залишається вправою.

 

Крім модуля Sllx, у програмі використовується модуль Glx. У ньому мають

міститится всі означення, необхідні для читання виразу "з зовнішнього

світу". Це читання буде здійснюватися багаторазовим викликом підпрограми

getlx читання чергової лексеми виразу. Розробку цього модуля

представлено в підр. 20.9–20.10.

 

Побудову ЗПЗ оформимо функцією ipllx, з якої повертається значення true,

якщо в процесі читання виразу не було якихось помилок, і false у

противному разі. Побудована послідовність запам'ятовується в змінній

Llx. Значення виразу обчислюється за виконання виклику функції llxval і

друкується. Отже, програма має вигляд:

 

program calcul ( input, output );

 

uses Glx, Sllx;

 

var Llx : Sqlx;

 

function ipllx … end;

 

function llxval … end;

 

begin

 

if ipllx( Llx )

 

then writeln( llxval( Llx ) )

 

end.

 

Розробка функцій ipllx і llxval розкривається в наступних двох

підрозділах.

 

Уточнення алгоритму побудови ЗПЗ

 

Напишемо функцію ipllx читання та побудови ЗПЗ виразу, з якої

повертається ознака відсутності помилок у виразі. Зробимо уточнення

постановки задачі: будемо вважати, що вхідні вирази не містять імен

змінних, а елементарними позначеннями операндів є лише числові сталі.

 

Читання чергової лексеми виразу задається функцією getlx із модуля Glx,

в якому також означено типи Tlx і Ttlx лексем та їхніх різновидів.

 

Вважатимемо, що модуль Sllx містить усе необхідне для роботи з

послідовністю та магазином лексем, які подаються змінними типів Sqlx і

Stlx відповідно. Ініціалізація порожніх послідовності та магазина

задається процедурами із заголовками відповідно

 

procedure initl( var Llx : Sqlx );

 

procedure inits( var Slx : Stlx );

 

запис лексеми в магазин – процедурою із заголовком

-----> Page:

0 [1]

ЗАМОВИТИ ОРИГІНАЛЬНУ РОБОТУ