Организация ввода и вывода данных
Компьютерные программы обрабатывают (изменяют) различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные.
Следовательно, любой язык программирования должен иметь инструменты как для ввода данных, так и их вывода.
Зная со структуру программы на языке Паскаль, описав данные и вычислив с помощью оператора присваивания достаточно для того, чтобы записать простую программу преобразования данных. Но результат этих преобразований нам виден не будет.
I. Для вывода данных из оперативной памяти на экран монитора используется оператор вывода write:
WRITE (A1, A2,…, AN); - вывод значений переменных A1, A2,…, AN в строку экрана;
WRITELN (A1, A2,…, AN); - вывод значений переменных A1, A2,…, AN в строку экрана с переводом строки;
WRITELN; - перевод строки.
Здесь в круглых скобках помещается список вывода — список выражений, значения которых выводятся на печать. Это могут быть числовые, символьные и логические выражения, в том числе переменные и константы.
Произвольный набор символов, заключенный в апострофы, считается строковой константой. Строковая константа может содержать любые символы, набираемые на клавиатуре, выводится без изменений.
Пример 1. Необходимо вывести следующие значения:
А=10; B=20; C=30;
D=-25,11
R='IBM PC';
L:=TRUE;
G:=FALSE.
Процедура: Будет выведено:
WRITELN (A, B, C); 102030
WRITELN (A, ':2,B,' ':2 C); 10 20 30
WRITELN (A, ', ',B,', ', C) ; 10,_20,_30
WRITELN ('Компьютер ', R); Компьютер IBM PC
WRITELN (‘D=’,D:8:2); D= 25.11
WRITELN (L,’ ‘:2, G); TRUE FALSE
Формат вывода позволяет установить количество позиций на экране, занимаемых выводимой величиной. write (s:x:y)
x - общее количество позиций, отводимых под число;
y - количество позиций в дробной части числа.
Пример 2. Необходимо вывести следующие значения:
Процедура: WRITELN (‘A=’,A :3,’ ‘:2,’B=’B:4:1,’C=’, C:13);
Будет выведено: A= 25 B=-3.5 C= -0.1221E-0002
II. Для вывода данных из оперативной памяти на экран монитора используется оператор вывода read:
READ (A1, A2,…, AN); - ввод N значений и присваивание их переменным A1, A2,…, AN;
READLN (A1, A2,…, AN); - ввод N значений и присваивание их переменным A1, A2,…, AN с пропуском остальных данных до конца строки;
READLN; - пропуски строки.
При выполнении оператора read компьютер переходит в режим ожидания данных: пользователь должен ввести данные с клавиатуры и нажать клавишу Enter. Несколько значений переменных числовых типов могут вводиться через пробел или через запятую. При вводе символьных переменных пробел и запятая воспринимаются как символы, поэтому ставить их нельзя.
Первое введённое пользователем значение переменной помещается в ячейку памяти, имя которой расположено первым в списке ввода, и т. д. Поэтому типы вводимых значений (входного потока) должны соответствовать типам переменных, указанных в разделе описания переменных.
Пример 3. Необходимо ввести следующие значения:
A=5,1; B=-12,21*10-2; I=5; J=20; G=’R’; H=’S’;
* * *
Var
A, B :real;
I, J :integer;
G,H :char;
* * *
Read (A,B);
Readln (I,J);
Readln (G,H);
* * *
Вводим с клавиатуры:
5.1 12.21E-2 5 20 нажимаем Enter
RS нажимаем Enter
Данные примут значения:
A=5,1; B=-12,21*10-2; I=5; J=20; G=’R’; H=’S’.
Пример 4. Пользуясь рассмотренными операторами, составим программу, вычисляющую длину окружности и площадь круга радиуса 5,4 см.
Исходными данными в этой задаче является радиус: г = 5,4 см. Результатом работы программы должны быть величины С — длина окружности и S — площадь круга. С, S и г — величины вещественного типа. Исходные данные и результаты связаны соотношениями, известными из курса математики: С = 2Пr, S=Пr2. Для возможности внесения радиуса разной величины организуем в ней ввод данных с помощью оператора read. А чтобы пользователь знал, для чего предназначена программа, и понимал, какое именно действие ожидает от него компьютер, выведем соответствующие текстовые сообщения с помощью оператора writeln.
Программа, реализующая вычисления по этим формулам, будет иметь вид:
program n_1;
const pi=3.14;
var r, c, s: real;
begin
writeln ('Вычисление длины окружности и площади круга');
write ('Введите r>>');
readln (r);
c:=2*pi*r;
s:=pi*r*r;
writeln ('c =', с:6:4);
writeln ('s=', s:6:4)
end.
Пример 5. Программа перевода чисел из десятичной системы в двоичную.
Обозначим число идентификатором А и ограничим его диапазоном от 0 до 15. Значит, его двоичный код будет содержать 4 разряда. (24=16). В данной программе подключим стандартный модуль CRT для управления экраном, чтобы использовать оператор очистки экрана ClrScr.
Program Primer5;
Uses Crt; {подключение модуля стандартных подпрограмм}
Var A, R0, R1, R3, R4: integer; {R0-R4 – разряды двоичного кода}
Begin
ClrScr; {Очистка экрана}
Writeln (‘Введите число’);
Readln (A);
B:=A;
R0:=B mod 2; B:=B div 2;
R1:=B mod 2; B:=B div 2;
R2:=B mod 2; B:=B div 2;
R3:=B mod 2; B:=B div 2;
Writeln(‘Двоичный код числа ’; A; ‘равен ‘, B, R3; R2; R1; R0);
End.