Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Процедуры ввода данных



Ввод данных в языке Турбо Паскаль выполняется стандартными процедурами (операторами) READ или READLN, вывод - процедурами WRITE или WRITELN. Процедуры READ и READLN используют для ввода символов (тип данных CHAR), строк (тип данных STRING) или числовых данных (тип данных INTEGER, BYTE, REAL и др.).

Вызов процедуры READ имеет следующий вид:

READ ([< имя файла >,]< список переменных >);

Для процедуры READLN соответственно:

READLN ([< имя файла >,]< список переменных >);

При отсутствии < имени файла > считывание данных производится из стандартного файла INPUT; при этом стандартными устройствами считаются клавиатура или дисплей, связанные с файлом INPUT.

Каждому оператору ввода соответствует свой поток данных, в котором перечисляются значения констант, присваиваемые переменным, указанным в списке переменных. Присваивание значений из входного потока происходит слева направо в соответствии с порядком следования переменных в списке переменных.

Необходимо помнить:

- Типы переменных и констант должны совпадать (исключение составляет только тип данных REAL, для которых можно при вводе указывать переменные и константы типа INTEGER).

- Вводимые числовые данные должны быть разделены одним или несколькими пробелами; нельзя отделять пробелами знак от числа и цифру от цифры одного и того же числа.

- Если вводится строка (тип данных STRING), то READ считывает столько символов, сколько допустимо по максимальной длине, заданной в описании VAR.

- При вводе последовательности символов (тип данных CHAR или STRING) пробел воспринимается как символ.

Например.

А) Ввод числовых данных:

Var B,A,D: Real;

K:Integer; Входной поток данных:

... 2.5 –4.95 20 1.25Е2

Read(A,D); После ввода:

Read(K,B); A=2.5; D=-4.95; K=20; B=125

Б) Ввод числовых и строковых данных.

Var A: Real;

B:Integer;

C1,C2,C3: Char; Входной поток данных:

D: String[5]; 2.5 10 KLMКОШКА

... После ввода:

Read(A,B,C1,C2,C3,D); A=2.5; B=10; C1=’ ’;

C2=’K’;C3=’L’;

D=’MКОШК’

Из примера видно, что ввод смешанных данных (и числовых и строковых) из одного входного потока осуществляется не совсем верно. Если же во входном потоке данных после 0 не поставить пробел, то это приводит к ошибке ввода данных (ERROR 106). Поэтому рекомендуется вводить числовые значения отдельно от символов или строк.

При выполнении оператора READ конец строки ввода (нажатие клавиши <Еnter>) приравнивается к вводу пробела, разделяющего элементы данных во входном потоке; в этом случае нет перехода к следующей строке данных во входном потоке, а входные данные последовательно считываются в соответствующие переменные.

Например, для одних и тех же операторов ввода входной поток может быть разным:

Read(A,B,C); Входной поток:2 9 5 3 7 или

Read(D,Е); Входной поток 1 строка:2 9 5

2 строка 3 7

Отличие оператора READ от READLN состоит в том, что после считывания последней переменной при READLN остаток строки ввода игнорируется. Следующий за ним оператор READ или READLN считывает данные с начала новой строки, т.е. оператор READLN реагирует на конец строки (нажатие клавиши <Еnter>) и в случае его обнаружения происходит переход к следующей строке данных во входном потоке данных. Возможно использование оператора READLN без параметров; в этом случае обеспечивается безусловный переход к следующей строке данных во входном потоке.

Например, рассмотрим ввод элементов двумерного массива разными способами:

1) For I:=1 to 2 DO

Begin

For J:=1 to 3 do

Read (A[I,J]);

Readln

End;

Входной поток: 3 5 1

-4 7 9

2) For I:=1 to 2 do

For J:=1 to3 do

Read (A[I,J]);

Входной поток: 3 5 1

-4 7 9

3) For I:=1 to 2 do

For J:=1 to 3 do

Readln(A[I,J]);

Входной поток: 3

-4

В следующем примере наглядно показано, что при использовании READLN данные, находящиеся в конце строки, игнорируются.

Var A,B,C,D:integer; Входной поток:

1 строка: 10 20 30 40 50

2 строка:60





Дата публикования: 2014-11-04; Прочитано: 407 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...