Сторінка
6

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

Unit Inbuf ( input, output ); Interface const finch=chr(0); var tempc : char; function getc : char; Implementation

const bufml = 80;

type Str=string[bufml]; var buf : Str; bufl, bufp : integer; f : text; nam : Str; procedure bufinit; begin buf := ''; {спочатку буфер – порожній рядок}

bufl := 0; bufp := 0; tempc := ' '; {штучний пропуск перед початком першого рядка} writeln('Уведіть ім''я текстового файла з виразом'); readln(nam); assign(f, nam); reset(f)

end; function newln : char; … end; function getc; … end; Begin

bufinit End. Наведемо, нарешті, функції getc і newln. function getc : char; begin bufp := bufp + 1; if bufp <= bufl then tempc := buf[bufp] else { рядок вичерпано } tempc := newln; getc := tempc end; При виконанні функції newln у разі наявності наступного рядка повертається пропуск. Він штучно додається перед першим символом рядка, аби той не продовжував лексему в попередньому рядку. У разі кінця файла повертається finch – ознака закінчення виразу: function newln : char; begin if eof(f) then tempc := finch

else

begin

readln (f, buf );

bufp := 0; bufl := length ( buf ); tempc := ' '

end; newln := tempc end

Перейти на сторінку номер:
 1  2  3  4  5  6 


Інші реферати на тему «Інформатика»: