Зворотний зв'язок

ОБЧИСЛЕННЯ ВИРАЗІВ У ПРОГРАМУВАННІ

Побудову ЗПЗ оформимо функцією 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 розкривається в наступних двох підрозділах.

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

Напишемо функцію ipllx читання та побудови ЗПЗ виразу, з якої повертається ознака відсутності помилок у виразі. Зробимо уточнення постановки задачі: будемо вважати, що вхідні вирази не містять імен змінних, а елементарними позначеннями операндів є лише числові сталі.

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

Вважатимемо, що модуль Sllx містить усе необхідне для роботи з послідовністю та магазином лексем, які подаються змінними типів Sqlx і Stlx відповідно. Ініціалізація порожніх послідовності та магазина задається процедурами із заголовками відповідно

procedure initl( var Llx : Sqlx );

procedure inits( var Slx : Stlx );

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

procedure push( var Slx : Stlx; lx : Tlx );

вилучення лексеми з магазина та повернення її типу – функцією

function pop( var Slx : Stlx; var lx : Tlx) : Ttlx;

добування лексеми з верхівки магазина без вилучення та повернення її типу – функцією

function gett(Slx : Stlx; var lx : Tlx ) : Ttlx;


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат