Процедура Read обеспечивает ввод данных с клавиатуры в ОП. Формат записи процедуры:
Read(х1, х2, х3…хn)-позволяет ввести в ОП значения переменных х1, х2, х3…хn.
При выполнении процедуры Read компьютер приостанавливает свою работу и ждет ввода значений указанных переменных. Значения набираются с клавиатуры через пробел. Ввод всех значений списка, заканчивается нажатием клавиши Enter.
Зам! Ввод данных производится в строгом соответствии с описанием.
Пример,
Var C: char;
T: integer;
D:real;
….
Read(d,t,c); И ВВОДИМ ДАННЫЕ: ю 64000 34
Возникнет ошибка выполнения программы, так как d- переменная типа real и мы не имеем права вводить символ «ю», кроме того, значение переменной Т выходит за диапазон значений типа.
Если в программе имеются несколько операторов Read, то данные считываются потоком, т.е. после считывания данных для одного оператора данные для другого читаются из той же строки.
Read(x,y);
Read(z,d,f);
Если введем данные 1 2 3
4 5 6
то получим x=1, y=2, z=3, d=4, f=5.
Оператор readln отличается от оператора read только тем, что после считывания последнего в списке значения для одного оператора readln, данные для следующего оператора считываются с новой строки.
Readln(x,y);
Readln(z,v);
Если введем 2 4 6 7
3 9
то получим в памяти x=2, y=4, z=3, v=9.
Примечание, по возможности, показать все на компьютере при помощи Debug® Watch.
Оператор вывода имеет следующий формат записи
Write(<список вывода>) ;
Элементами списка вывода могут быть постоянные, переменные, выражения.
Фрагмент программы
| На экране.
|
Write(7);
|
|
Write(‘привет’);
| привет
|
Const n=10;
…
Write(n);
|
|
Var x: byte;
….
X:=5;
Write(x);
|
|
Const n=15;
Var x: word;
….
X:=10;
Write(x+n);
|
|
При выводе на экран нескольких выражений, они отделяются друг от друга запятой. При появлении этих выражений не экране они записываются подряд, не отделяясь друг от друга пробелами.
X:=4;
Y:=5;
Z:=7;
Write(x,y,z);
На экране 457.
Чтобы «отделить» числа друг от друга можно выводить пробелы- Write(x,’ ‘,y,’ ‘,z,’ ‘); или использовать форматы вывода.
Формат вывода определяет представление информации на экране и записывается в списке вызова через двоеточие.
Write(x:r)- значение х выводится в крайние правые позиции поля шириной R.
X:=14;
Write(x:5);
НА экране _ _ _ 14
Наш пример можно записать Write(x:2,y:3,z:4).
НА ЭКРАНЕ: _ 4_ _5_ _ _ 7
Кроме того, форматы вывода очень важны при выводе действительных (вещественных) чисел. В общем случае, вещественное число выводится в форме с плавающей точкой (запятой).
Пример,
Const n=0.2;
…
write(n);
НА ЭКРАНЕ: 2.0000000Е-01
Такое представление информации является не привычным для нас. Поэтому будем использовать следующий формат вывода:
Write(x:r:w)- значение х выводится крайние правые позиции поля шириной R, причем W знаков отводится под дробную часть.
write(n:6:2);
НА ЭКРАНЕ: _ _ _ _0.2 0
Оператор Writeln работает так же как и оператор Write, только после вывода всего списка он передает курсор на следующую строку.
Пример,
X:=3;
Y:=x/2;
Z:=x*2;
Write(‘x=’,x);
Write(z:2, y:4:2)
НА ЭКРАНЕ: х=3_ 6_ 1 ,50
X:=3;
Y:=x/2;
Z:=x*2;
Writeln(‘x=’,x);
Writeln(z:2, y:4:2)
НА ЭКРАНЕ: х=3
_ 6_ 1 ,50