Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Ввод данных – это процесс передачи их со внешних носителей информации или устройств ввода в ячейки оперативной памяти для дальнейшей обработки.

 

Ввод данных со внешних устройств в объявленные в программе переменные осуществляется с помощью встроенных процедур ввода или чтения (от англ. read – читать).

 

Процедура ввода read имеет синтаксис

read ( имя1, имя2,..., ім'яN);

где read – имя процедуры, стандартный идентифика-

тор;

имя1, имя2,..., ім'яN – список ввода.

Важно:

В список ввода могут входить переменные целого, действительного, символьного или строкового типа.

Переменные, идентификаторы которых являются параметрами процедуры чтения, не могут быть булевого типа.


Действие процедуры:

Программа приостанавливает свою работу и ждет, пока на клавиатуре будут набраны нужные данные.

Ввод символов сопровождается отображением их на экране.

Набранные символы запоминаются в буфере и передаются процедуре ввода только после нажатия клавиши Enter.

После нажатия клавиши Enter введенные значения присваиваются переменным, имена которых приведены в списке параметров процедуры read.

Важно:

Буфер – это область памяти для временного хранения данных. Благодаря наличию буфера возможно редактирование данных во время их ввода.

Данные, которые вводятся с клавиатуры, представлены как символьная строка, независимо от того содержат ли они числа или символы. Во время выполнения процедуры read эти строковые значения автоматически преобразовываются к типу переменных, которым они предназначены.

 

Если список переменных насчитывает несколько переменных, то пользователь набирает значения через пробел или нажимает после каждого данного клавишу Enter.


 

Например, фрагмент программы:

var x0: byte;

x, z: real;

y: integer;

begin

read (x0);

read (x, y, z);

...

end.

На экране должно быть, например:

5.25 –10 0.05

 

или,

 

5.25

–10

0.05

 

Для выполнения первой команды read (x0) мы вводим число соответственно типу byte – 32 – и нажимаем клавишу Enter. Дальше для выполнения команды read (x, y, z) есть два пути. Первый – ввести все данные через пробел и нажать клавишу Enter, второй – после каждого значения нажимать клавишу Enter.


Если в строке экрана после запуска программы набрано больше чисел, чем задано элементов в списке ввода процедуры read, то остаток строки будет проигнорирован или обработан следующей процедурой read, если такая есть.

Например, если I, K, L – целого типа, то в результате выполнения процедур:

read (I, K);

read (L);

 

и ввода с клавиатуры строки

 

5 10 15

 

переменные получат следующие значения:

I = 5, K = 10, L = 15.

 

Если команда read (L) отсутствовала бы, то число 15 было бы проигнорировано программой.


 

В отличие от процедуры read процедура readln (от read line – читать строку) после ввода всех указанных в процедуре элементов списка осуществляет переход к следующей строке дисплея.

 

Это происходит потому, что процедура readln считывает все символы строки, включая символ завершения строки.

 

Символ завершения строки формируется во время нажатия клавиши Enter.

 

В противоположность процедуре readln, процедура read считывает все символы строки, кроме символа его завершения.

 

Процедура readln имеет синтаксис:

readln ( имя1, имя2,..., ім'яN );

где readln – имя процедуры, стандартный

идентификатор;

имя1, имя2,..., ім'яN - список ввода.


 

Предыдущий пример с процедурой readln (I, K, L – целого типа) после выполнения процедур:

 

readln (I, K);

read (L);

 

и ввода из клавиатуры строки

 

5 10 15

обеспечит значения переменных

 

I = 5, K = 10.

 

После этого программа будет ждать нажатия клавиши Enter и ввода нового числа с новой строки, чтобы присвоить его переменной L.

 

Также возможно после каждого значения нажимать клавишу Enter.

 

А если при поточном вводе будет введено данных меньше, чем задано переменных в соответствующем списке ввода, процедура чтения будет ждать продолжения ввода.


 

Рассмотрим решение следующей задачи. Необходимо ввести данные:

a = 3,7; b = –1,6×10-6; k= 101; L = –25; c = ‘*’; d = ‘?';

p= true

и воссоздать строки данных на экране дисплея.

 

Необходимо учитывать, что данные целого и действительного типа отделяются друг от друга пробелами в строке ввода. Это значения переменных a, b, k и m.

 

Целая часть от дробной отделяется точкой.

 

Данные символьного типа (значения переменных c и d) записываются в строке ввода подряд, без использования пробела в качестве разделителя.

 

Данные логического типа (переменная р) нельзя вводить с клавиатуры, т.е. с использованием процедуры ввода.


 

Одним из вариантов решения задачи может быть следующий:

 

Program Ex_2;

const p=true;

var a, b: real;

k, m: integer;

c, d: char;

begin

readln (a, b, k, m);

readln(c, d);

end.

 

Строка ввода данных:

 

3.7 -1.6e-6 101 -25

*? // без кавычек

 

Если вызвать процедуру readln без параметров, программа будет ждать нажатия клавиши Enter для продолжения своей работы.


 




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 343; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.144 сек.