1. Процедура length. Значением данной процедуры является число символов в текстовом значении, если текстовое значение равно notext, то значение процедуры будет 0.
text t1; integer n;
t1:- blanks(10);
n := t1.length;
В данном примере значение nравно10.
2. Процедура pos. Результатом процедуры является текущее значение указателя позиции.
text t1; integer k;
t1 :- text(''симула-67'');
k := t1.pos;
Значение k в данном примере равно 1, так как процедура text устанавливает указатель позиции в 1.
3. Процедура setpos. При исполнении оператора t.setpos(n) указатель позиции принимает значение n, если n меньше 1 или больше длины текста, то указателю присваивается значение t.length+1.
4. Процедура more. Значение данной процедуры истинно (true), если t.pos>=1 и t.pos<=t.length, и ложно (false) в противном случае.
Символы текста доступны по одному, переменные, которые принимают значения одного символа, можно описывать с помощью описателя character, присвоение значений данным переменным осуществляется с помощью оператора присваивания.
character a1,b1;
a1:='a';
b1:=a1;
Над символьными переменными определены следующие процедуры: digit и letter.
Значением процедуры digit будет true, если символ является цифрой, и false - в противном случае, значением процедуры letter будет true, если символ является буквой.
Для считывания символов из текста и записи символов в текст используются процедуры getchar и putchar.
Процедура getchar доставляет в качестве своего значения символ, на который указывает текущий указатель позиции. Процедура putcharзаменяет символ, на который указывает текущий указатель позиции, каждая из процедур увеличивает на 1 текущий указатель позиции.
text t;
character c;
c := 'ы';
t:- text(''дом'');
t.setpos(2);
t.putchar (c);
c := getchar;
В результате выполнения данной процедуры переменная t получит значение ''дым'', а с - 'm'.
Взаимное преобразование текстовых и арифметических значений
Данные процедуры позволяют прямые и обратные преобразования.
Процедура getint. Процедура разыскивает в текстовом значении первую запись целого числа, т.е. последовательность цифр, перед которой может стоять любое количество пробелов и знак. Если в тексте первой записью не является последовательность цифр, перед которой стоит любое количество пробелов и знак, то обращение к данной процедуре приведет к ошибке, указатель позиции принимает значение на единицу больше, чем последний символ найденной записи.
Процедура getreal. Данная процедура разыскивает в тексте запись целого или вещественного значения с десятичной точкой и/или с указанием порядка (порядок представляет с помощью символа Е).
Следующие процедуры служат обратной цели – преобразованию арифметических символов в текстовые. Процедуры заполняют указанный текст полученной записью числа, отредактированная запись числа выравнивается по правому краю, если в тексте слева остается свободное место, то оно заполняется пробелами. Указатель позиции после редактирования принимает значение t.length+1, если длина текста недостаточна, то выдается сообщение об ошибке.
Процедура putint. Процедура putint(k) преобразует целое число k в символьный вид целого числа.
Процедура putfix. Процедура putfix(r,n) преобразует число r в символьный вид числа с фиксированной точкой, число n указывает число символов после точки.
Процедура putreal. Процедура putreal(r,m) формирует запись числа следующего вида:
<знак>d.dd…ddE<знак>dd
Если m=0, то перед Е устанавливается знак числа только в том случае, если число отрицательное. Если m=1, то перед символом порядка ставится запись целого, состоящего из одной цифры, если m>1,то в дробной части записывается m-1 цифра.
text t1,t2,t3,t4,t5;
integer c;
real a,b;
t1 :- text(' -128,5+6,17e1')
t2 :- blanks(5);
t3 :- blanks(6);
t4 :- blanks(11);
t5 :- t1.sub(9,7);
c := t1.getint;
a := t1.getreal;
b := t5.getreal;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.