КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Ввод и вывод данных
Для ввода и вывода информации используются файлы. При выполнении программ на Паскале автоматически открываются два файла со специальными именами INPUT и OUTPUT. Файл INPUT обеспечивает ввод символов с клавиатуры, а файл OUTPUT – вывод символов на экран. Для ввода данных используются процедуры READ и READLN, а для вывода - WRITE и WRITELN. У компьютера есть и другие устройства ввода-вывода – дисководы, принтер и др. К каждому из них можно обратиться путем определения соответствующих файлов.
Процедуры ввода-вывода имеют следующий формат:
READ(<файловая переменная>,<список ввода>); READLN(<файловая переменная>,<список ввода>); WRITE(<файловая переменная>,<список вывода>); WRITELN(<файловая переменная>,<список вывода>);
В качестве файловой переменной для ввода данных с клавиатуры используется INPUT, а для вывода на экран – OUTPUT. Список ввода включает имена переменных, которым будут присвоены введенные данные. Список вывода включает имена переменных, содержимое которых будет выведено на экран. Для ввода данных с клавиатуры можно использовать как процедуру READ, так и READLN. При вводе числовых данных с клавиатуры с помощью процедуры READ введенные символы запоминаются в буфере и передаются программе только после нажатия на клавишу ENTER. Так как вводимые символы отображаются эхо-повтором на экране, то до момента нажатия на клавишу ENTER их можно удалять или изменять. Процедура READ хорошо приспособлена для ввода числовых данных. Она игнорирует все пробелы и символы конца строк, воспринимая остальные символы как вводимые данные. При этом пробелы и символы конца строк выступают как разделители данных. Рассмотрим работу программ READ_IN.PAS и READ_RE.PAS. Однако эти особенности процедуры READ существенно усложняют ввод символьных и строковых данных. Рассмотрим работу программ READ_CH.PAS и READ_ST.PAS. Процедура READLN может вводить данные любого типа, поэтому для ввода данных с клавиатуры предпочтительнее использовать именно ее. Рассмотрим работу программ READLN_I.PAS, READLN_R.PAS, READLN_C.PAS, READLN_S.PAS. Как только программа подходит к оператору READLN, компьютер приостанавливает свою работу и ждет ввода с клавиатуры соответствующих данных. После окончания ввода данных следует обязательно нажать клавишу [ENTER]. Только после этого вводимые данные присвоятся соответствующим переменным. Если при вводе в строке было введено больше данных, чем параметров в списке ввода, то лишние данные будут игнорироваться. При последующем появлении в программе новой процедуры READLN, вводить данные для нее придется снова. Если же при вводе данных с помощью процедуры READ в строке было введено больше данных, чем параметров в списке ввода, то оставшиеся лишние данные могут использоваться последующими процедурами READ. Числовые данные (целые или вещественные) можно вводить в одной строке, разделяя пробелом. Если происходит ввод значений символьных или строковых переменных, то разделять их пробелом нельзя, т.к. пробел сам является обычным символом. В этом случае следует обязательно использовать процедуру READLN и после каждого введенного символа (для символьной переменной) или строки символов (для строковой переменной) нажимать клавишу [ENTER]. Для вывода на экран можно использовать процедуры WRITE или WRITELN. Отличие их заключается в том, что после процедуры WRITE курсор остается в той же строке после последнего выведенного символа, а после процедуры WRITELN он переводится в начало следующей строки. На экран можно вывести любой текст, заключив его в ‘ ‘ (апострофы), например WRITELN(‘Программа разработана студентом гр. 232 Ивановым А.Р.’). Если в переменных X и Y хранятся целые числа, то вывести их на экран можно с помощью процедуры WRITELN(X,Y). Если в переменных X и Y хранятся соответственно значения 5 и 13, то после этой процедуры на экране будет 513, т.е. эти значения выведутся слитно. Чтобы не путаться в выведенных значениях их лучше разделить пробелом: WRITELN(X,’ ‘,Y). Можно сделать более полный комментарий: WRITELN(‘X=’,X,’ Y=’,Y). В этом случае на экране появится: X=5 Y=13. Рассмотрим работу программы WRITE1.PAS. В некоторых случаях требуется, чтобы выводимое значение занимало определенное число позиций. Оно задается через двоеточие после соответствующей переменной: WRITELN(‘X=’,X:3,’ Y=’,Y:3). Тогда под каждое значение на экране отведется по три позиции и в результате будет выведено: . Но если при выводе значение какой-то переменной не умещается в трех позициях, то будет выделено столько позиций, сколько нужно для вывода. При выводе вещественных чисел они выводятся в экспоненциальной форме (форме с плавающей запятой) с мантиссой и порядком, например 2.1345678912E+01. Можно ограничить общее число выводимых символов, указав его после двоеточия, например WRITELN(X:9). Тогда на экране в девяти позициях будет выведено значение вещественной переменной X , например . Первая позиция будет отводиться под знак мантиссы. Чтобы вывести вещественное число в форме с фиксированной запятой необходимо после общего числа выводимых символов поставить еще двоеточие и указать после него число разрядов, отводимых под дробную часть. Так после оператора WRITELN(X:7:3) на экране будет выведено:
|