Решение любой задачи на ЭВМ не обходится без операций ввода-вывода информации. Ввод данных – это передача информации с периферийного устройства в оперативную память для обработки. Вывод – обратный процесс, когда данные передаются после обработки из оперативной памяти на периферийное устройство, которым может служить монитор, принтер, магнитный диск и другие устройства.
Данные и результаты вычислений относятся к определённому типу. Тип данных определяет множество значений, которые могут принимать переменные, константы, функции, выражения; объём требуемой памяти и совокупность операций, допустимых над этими значениями. Все типы данных языка Паскаль можно разделить на простые и сложные (структурированные). К простым типам относятся целые, вещественные, логический, символьный. Сложные типы данных представляют собой различные комбинации простых типов (строки, массивы, множества, записи, файлы и др.). Основные простые типы данных представлены в табл. 2.1.
Таблица 2.1
Характеристика простых типов данных языка Паскаль
Тип
Тип
Диапазон
Объём
Примеры записи
данных
Паскаля
значений
памяти, Байт
На Паскале
Обычная
Целый
Byte
0…255
Integer
–32768…32767
–1025
–1025
LongInt
–2147483648… …2147483647
Вещест-
Real
±2,9×10-39…1,7×1038
2.0
2,0
венный
Single
±1,5×10-45…3,4×1038
–358.742
–358,742
Extended
±3,4×10-3942…1,1×104932
–3.58742E+02
–3.58742×102
Логичес-кий
Boolean
False True
True False
Истина Ложь
Символьный
Char
Набор символов кодовой таблицы
‘S’ ‘f’ ‘5’ ‘в’ ‘Я’ ‘%’
S f 5 в Я %
Строковый
String
Произвольная комбинация символов
1…255
‘Паскаль’
Паскаль
Для выполнения операций ввода-вывода в алгоритмическом языке Pascal используются 4 оператора: Read; ReadLn; Write; WriteLn.
Операторы чтения (ввода) – Read, ReadLn – обеспечивают ввод данных (чисел, символов, строк и т.д.) для последующей обработки их программой. Ввод данных производится с клавиатуры или из файла.
Для ввода данных с клавиатуры используется оператор ReadLn(X);, где X – переменная допустимого типа. При исполнении этого оператора выполнение программы будет приостановлено, от пользователя требуется набрать с клавиатуры данные, которые будут отображаться в позиции курсора, и нажать Enter. Значение, набранное с клавиатуры, будет присвоено переменной X, выполнение программы будет продолжено, а курсор перейдет в начало следующей строчки на экране.
Тип вводимых данных должен строго соответствовать типу переменных. Если соответствие нарушено (например, Х1 имеет тип Integer, а при вводе набирается значение типа Char, String или Real, то возникают ошибки ввода-вывода. Сообщение об ошибке имеет вид: I/O error XX, где ХХ – код ошибки.
Для ввода данных из файла применяется оператор Read(f, X1 [,X2,…,XN]);, где f – указатель на файл (переменная файлового типа). При этом выполнение программы не останавливается, а значение переменных X1, X2,…, XN считывается из файла на магнитном диске.
Оператор ReadLnможно использовать для организации пауз произвольной длины при выполнении программы. Для этого достаточно включить в программу оператор ReadLn;. Программа продолжит работу только после нажатия клавиши Enterна клавиатуре.
Операторы записи (вывода); Write, WriteLn производят вывод числовых данных, символов, строк и булевских значений на экран, в файл или на принтер. При использовании оператора Write курсор помещается за последним знаком выводимой переменной. Оператор WriteLn аналогичен оператору Write, но после завершения вывода для текущего оператора WriteLn происходит переход на новую строку на экране или принтере.
Формат команд для вывода:
· Вывод на экран: Write(X1 [,X2,…,XN]);WriteLn(X1 [, X2,…,XN]);
· Вывод в файл: Write(f, X1 [, X2,…,XN]);
· Вывод на принтер: Write(Lst, X1[,X2,…,XN]);WriteLn(Lst, X1, [X2,…,XN]);
где X1, X2,…,XN – выражения простого типа (Char, Boolean, Integer, Real, String) или текстовая строка, заключённая в апострофы; f –файловая переменная. Здесь и далее необязательные параметры приводятся в квадратных скобках.
При выводе на принтер в секции Uses нужно указать модуль Printer:
Uses Crt, Printer;
Оператор WriteLn, записанный без параметров, вызывает переход на новую строку на экране или на принтере.