Процедуры ввода – вывода в Pascal

Процедуры ввода информации Read, ReadLn в Pascal

Процедура ввода обеспечивает ввод числовых данных, символов, строк, и т.д. для следующей их обработки программой.
Формат:
Read(X1, X2,…,Xn);
Значения X1, X2,…,Xn набираются минимум через один пробел на клавиатуре пользователем. После набора данных для одной процедуры Read  нажимается клавиша ввода. Значения переменных должны вводится в строгом соответствии с синтаксисом языка Pascal. Если соответствие нарушается ( например X1 имеет тип Integer, а при вводе набирается значение типа Char), то возникает ошибка ввода.

Пример:
Var :
      I: Real;
  J: Integer;
  K: Char;
Begin
  Read(I,J,K);
  …
End. 

Процедуру Read можно использовать для организации пауз произвольной длины при выполнении программы. Для этого достаточно записать: Read(Kbd,Ch). Ch- литерная переменная, Kbd – имя стандартного файла клавиатуры. Программа продолжит работу только после того, как будет нажата любая клавиша на клавиатуре. Введенный символ на клавиатуре не отобразится.
Для ввода данных можно использовать процедуру ReadLn. Она аналогична процедуре Read. После выполнения данной процедуры курсор автоматически перейдет на новую строку.


Процедуры записи Write, WriteLn в Pascal

Процедура производит вывод числовых данных, символов, строк.
Формат:
Write(Y1,Y2,…,Yn);
Например:
Write(234);
Write(A+B-2);   {выводится результат выражения}
Write(List,Summa,A1,A2);
Write(List,’Результат вычислений=’,Rez);
После записи каждого выражения можно задать целочисленное выражение, определяющее ширину поля вывода.
I,p,q –  целочисленное выражение
R -  выражение вещественного типа
Ch – выражение символьного типа
S – выражение строкового типа.

Форматы процедуры вывода Write



1.             I – выводится десятичное представление величины I, начиная с позиции положения курсора.
Значение I
Выражение
Результат
134
287
Write(I)
Write(I,I,I)
134
287287287
2.             I:p – выводится десятичное представление величины I в крайние правые позиции поля шириной p.
Значение I
Выражение
Результат
134
1
70
Write(I:6)
Write(I:7)
Write(I+I:4)
VVV134
VVVVVV1
V140
3.             R – в поле шириной 18 символов выводится десятичное представление R в формате с плавающей точкой.
Значение R
Выражение
Результат
715.432
-1.919E+01
Write(R)
Write(R)
VV7.1543200000E+02
V-1.9190000000E+01
4.             R:p – в крайние правые позиции поля шириной p символов выводится десятичное представление значения R  в формате с плавающей точкой. Если R>=0 минимальная длина поля вывода 7 символов, если R <=0, то минимальная длина поля вывода 8 символов.
Значение R
Выражение
Результат
511.04
46.78
Write(R:15)
Write(-R:12)
5.110400000E+02
-4.67800E+01
5.             R:p:q – в крайние правые позиции поля шириной p символов выводится значение R  в формате с фиксированной точкой, причем после десятичной точки выводится q цифр. Если q> 24, то при выводе используется формат с плавающей точкой.
Значение R
Выражение
Результат
511.04
-46.78
Write(R:8:4)
Write(-R:7:2)
511.0400
V-46.78
6.             Ch – начиная с позиции курсора выводится значение Ch.
Значение Ch
Выражение
Результат
'X'
‘!’
Write(Ch)
Write(Ch,Ch,Ch)
X
!!!
7.             Ch:p – в крайнюю правую позицию поля шириной p выводится значение Ch
Значение Ch
Выражение
Результат
'X'
‘!’
Write(Ch:3)
Write(Ch:2,Ch:3)
VVX
V!VV!
8.             S – начиная с позиции курсора выводится значение S
Значение S
Выражение
Результат
'Группа 1’
‘Лицей №2’
Write(S)
Write(S,S)
Группа 1
Лицей №2Лицей №2
9.             S:p - значение S выводится в крайние правые позиции поля шириной p символов.
Значение S
Выражение
Результат
'Группа 1’
Write(S:12)
VVVVГруппа 1

 Процедура записи WriteLn аналогична процедуре Write,  но после вывода последнего в списке значения для текущей процедуры WriteLn происходит перевод курсора к началу следующей строки.