Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Процедуры ввода данных с клавиатуры. Эти процедуры обеспечивают чтение данных из стандартного файла INPUT и присвоение прочитанных значений соответствующим переменным списка ввода в порядке их

 

Эти процедуры обеспечивают чтение данных из стандартного файла INPUT и присвоение прочитанных значений соответствующим переменным списка ввода в порядке их следования. Формат обращения к процедуре ввода: READ/READLN (X1, X2, XI…X N);,

где READ, READLN – служебные слова, X1, X2, XI…XN – переменные.

Переменные списка X1, X2, XI…XN могут быть типа REAL, INTEGER, CHAR, STRING. Типы вводимых значений необходимо согласовать с типами соответствующих переменных. Пример: READ (X, Y, K); READLN (a, b, c);.

Выполнение процедур ввода зависит от типа переменной XI списка ввода. Если XI имеет тип INTEGER или REAL, то считывается одно число соответствующего формата и его значение присваивается переменной XI. Если XI типа CHAR, то считывается один символ и присваивается переменной XI. Если XI типа STRING длиной n, то строковой переменной XI считывается максимум n символов. Данные вводятся с клавиатуры в процессе выполнения программы и одновременно отображаются на экране дисплея.

Процедура READLN действует так же, как и процедура READ, но с последующим переходом на начало новой строки файла ввода INPUT. Процедура READLN может не иметь совсем списка переменных. Тогда осуществляется переход к началу новой строки файла INPUT. Вводимые данные (числа) должны быть разделены хотя бы одним пробелом или нажатием клавиши ENTER (но не запятой!). Конец ввода обозначается нажатием клавиши ENTER (¿).

Пример: PROGRAM VVOD1;

VAR R, S: REAL; C, D: CHAR; I, J: INTEGER;

BEGIN

READ (C, D, R, I); READ (J, S); … и т. д.

Исходные данные подготовлены в файле INPUT так:

QL 32.71 10 25¿

0.402E - 1¿

Тогда после выполнения процедур ввода переменные получат значения: C=’Q’ D=’L’ R=32.71 I=10 J=25 S=0.0402.

А что получится, если READ (J, S) заменить на READLN (J, S)? При вводе J возникает ошибка. Почему?

Процедуры READ, READLN требуют обязательного ввода данных. Если просто нажимать клавишу ENTER без предварительного ввода данных, то работа процедур ввода не заканчивается: они ожидают ввода информации. Прервать ожидание можно либо вводом данных, либо использованием команды аварийного завершения работы – прерывания пользователя (USER BREAK) путём нажатия пары клавиш Ctrl+Break.

Значения переменных списка ввода могут располагаться в нескольких строках. Пример: PROGRAM VVOD2;

VAR I, N, NUM: INTEGER; A, B, C, D: CHAR;

BEGIN READLN(N): {N-число строк ввода}

FOR I: =1 TO N DO

BEGIN READLN(A, B, C);

READLN(D, NUM); {NUM- номер строки ввода}

WRITELN(NUM; A, B, C, D);

END; … и т. д.

Исходные данные в файле INPUT : 2¿ SUM¿ 1 100¿ SUM¿ 2 200¿

Файл OUTPUT вывода результатов будет: 100SUM1¿ 200 SUM2¿.

При вводе данных типа CHAR каждый символ во входном потоке (в том числе пробел и конец строки) становится значимым. Разделителей между символьными данными не существует, символы следуют друг за другом, занимая позицию за позицией.

Если очередным символом во вводимом файле INPUT является символ конца строки (¿), то соответствующей переменной списка присваивается значение “пробел”.

Пример: PROGRAM VVOD3;

VAR CA, CB, SA, SB: CHAR;

BEGIN READ (SA, SB, CA); READ (CB); и т. д.

Исходные данные (файл INPUT): L i ¿ K ¿.

После выполнения ввода переменные получат значения: SA=¢ L¢, SB=¢ ¢, CA=¢ i ¢, CB=¢ ¢. Чтобы не произошло ошибок при чтении символов перед вводом каждой новой строки символьных данных, лучше использовать процедуру READLN без списка переменных. В приведенном выше примере лучше использовать READ (SA, SB, CA); READLN; READ (CB);. Тогда при тех же исходных данных переменные списка ввода получат значения: SA=¢ L¢, SB=¢ ¢, CA=¢ i ¢, CB=¢ K¢.

 

<== предыдущая лекция | следующая лекция ==>
Процедуры ввода данных с клавиатуры | Вопрос 1.1.2. особ-ти произв-ва элек.ап-ры
Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал