|
Тогда при вводе с первой позиции:
ТЕЛЕФОН-2223344
получим: POLE= `ТЕЛЕФОН`,
OBL=`-`
VT=2223344
Однако, если ввести:
Т Е Л Е Ф О Н - 222-33-44
возникнет ситуация «несовпадение типов» из-за восприятия пробелов как значимых символов и, соответственно, неправильного присвоения значений переменным.
Чтобы избежать подобных ситуаций, рекомендуется использовать 2 самостоятельные разновидности процедуры READ:
А) для ввода символов (тип CHAR):
READ(KBD, < имя символьной переменной >);
Здесь KBD – имя логического устройства, соответствующего клавиатуре (K ey B oar D). Когда указывается это имя, ввод с клавиатуры ведется только одного символа без его отображения на экране дисплея.
Б) для ввода строки (тип STRING):
READ(< имя строковой переменной >);
Данная процедура обеспечивает считывание стольких символов из входного потока данных, сколько определено максимальной длиной переменной при ее объявлении, с возможностью редактирования.
Примечания:
1. во внутреннем представлении строка ввода хранится с
добавлением в ее конец специального символа (Ctrl-Z),
обозначающего завершение строки ввода и, одновременно,
маркер конца всей последовательности данных (файла). Поэтому,
если количество значений в строке ввода меньше числа
переменных в списке процедуры READ, то все лишние
переменные:
- для типа CHAR получают значение управляющего
символа Ctrl-Z;
- для типа STRING – становятся пустыми;
- для целых и вещественных типов остаются неизменными.
2. Хотя длина вводимой строки по умолчанию ограничена 127
символами, эту граничную величину можно уменьшить с
помощью стандартной переменной BUFLEN. Она определяет
длину буфера в диапазоне от 0 до 127 байтов и распространяется
только на одну, следующую за ней процедуру READ:
…
BUFLEN:=30;
READ(NAIM_E); => буфер ввода уменьшится до 30
символов. Но после этого опять
станет равным 127.
Еще одним примечательным вариантом процедуры ввода является READLN:
READLN[(< список имен переменных через запятую >)];
Она осуществляет присвоение значений из строки ввода переменным из списка, а затем (!) вызывает переход к следующей строке. При этом оставшиеся значения на текущей строке ввода пропускаются.
Если список имен переменных отсутствует, то очередная строка ввода пропускается.
Для типа BOOLEN значениями ввода могут быть только TRUE и FALSE.
Для интервальных и перечисляемых типов допустим только ввод соответственно, лежащих в заданном интервале или перечисленных значений.
Дата добавления: 2015-07-11; просмотров: 127 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Ввод данных. | | | Вывод данных. |