Студопедия

КАТЕГОРИИ:


Архитектура-(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 и Readln.

Возможны следующие способы записи указанных процедур:

· Read (A1, A2, …, AK);

· Readln (A1, A2, …, AK);

· Readln;

Первая запись реализует чтение К значений исходных данных и присваивание этих значений переменным А1, А2, …, АК. Вторая запись реализует чтение К значений исходных данных, пропуск остальных значений до начала следующей строки, присваивание считанных значений переменным А1, А2, …, АК. Третий оператор реализует пропуск строки исходных данных.

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

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

Пример: Запрос у пользователя 2-ух вещественных и 2-ух целых значений, а также 2-ух символов.

var x, y: real;

a, b: integer;

c1, c2: char;

Read(x, a, c1);

Readln(c2, b, y);

При вводе данных пользователю требуется ввести значение именно того типа данных, который ожидается программой. В случае же, если требуется ввести, например, значение целого типа, а пользователь вводит символ «a», то произойдет исключительная ситуация (т.е. ошибка). В этом случае на экран будет выведено соответствующее сообщение и работа программы будет остановлена, что недопустимо, когда речь идет о «реальных» разработках для заказчика. Программист должен быть готов к таким ситуациям и предусмотреть действия программы на такой случай. Так, можно воспользоваться директивой компилятора I.

Перед вводом данных можно отключить контроль правильности ввода-вывода с помощью записи {$I-}. После осуществления ввода данных с помощью функции IOResult можно самостоятельно проверить корректность последней операции ввода/вывода: если функция возвращает 0, значит, все в порядке, иначе – была ошибка. Обратите внимание: после вызова функции ее результат сбрасывается, а это означает, что повторный вызов функции IOResult, без осуществления новых операций ввода/вывода, всегда будет возвращать значение 0. Если же код ошибки требуется использовать неоднократно, то его следует запомнить в некоторую переменную. Вновь включить контроль правильности ввода-вывода можно с помощью записи {$I-}.

Пример: Организовать ввод целого значения и проверить корректность вводимого значения.

var k, temp: integer;

begin

{$I-}

readln(k);

temp:=IOResult; {запоминаем код ошибки, т.к. IOResult сбросится в 0}

if temp>0 then writeln (‘Ошибка ввода!!!’); {проверяем код ошибки}

{оператор if будет рассмотрен позже}

{$I+}

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

Пример:

writeln (‘Введите длину забора (в метрах, целое значение)’);

write (‘l=’);

readln (l);




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


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


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



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




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