ПРОЦЕДУРЫ ВВОДА-ВЫВОДА
Для выполнения операций ввода-вывода служат 4 процедуры: Read, ReadLn, Write, WriteLn.
Процедура чтения Read обеспечивает ввод числовых данных, символов, строк и т.д. для последующей их обработки программой. Формат:
Read (X1,X2,…,Xn);
где X1, X2, …, Xn – переменные допустимых типов.
Значения X1,…,Xn набираются минимум через один пробел на клавиатуре пользователем и высвечиваются на экране. После ввода данных для одной процедуры Read нажимается клавиша ввода Enter. Значения переменных должны вводиться в строгом соответствии с синтаксисом языка.
Если в программе имеется несколько процедур Read, данные для них вводятся потоком, т.е. после считывания значений переменных для одной процедуры Read данные для следующей процедуры Read набираются в той же строке, что и для предыдущей до окончания строки, затем происходит переход на следующую строку.
Пример.
Var A,B: Integer; C,D: Real; Begin Read (A,C); Read (B,D); End. | Поток ввода: 25 2.34<Enter> 451 25.685<Enter> |
Процедура чтения ReadLn аналогична процедуре Read, единственное отличие заключается в том, что после считывания последнего в списке значения для одной процедуры ReadLn данные для следующей процедуры ReadLn будут считываться с начала новой строки. Заменим в предыдущем примере процедуры Read на процедуры ReadLn:
Var A,B: Integer; C,D: Real; Begin ReadLn (A,C); ReadLn (B,D); End. | Поток ввода: 25 2.34 <Enter> 451 25.685 <Enter> |
Процедура записи Write производит вывод числовых данных, символов, строк и булевских значений. Формат:
Write (Y1,…,Yn);
где Y1,…,Yn – выражения целочисленного, вещественного, символьного, строкового, булевского и др. типов.
Форматы вывода:
Процедура Значение Поток вывода
Write (I); 134 134
Write (I:5); 134 _ _134
(Для вывода целого числа отводится 5 позиций. При выводе число автоматически прижимается к правому краю).
Write (R); 715.342 _ _7.153420000E+02
Write (R:12); 46.78 4.678000E+01
(На вещественное число отводится 12 позиций).
Write (R:6:2); 46.78 _46.78
(На вещественное число отводится 6 позиций, из них 2 знака после запятой. Число прижимается к правому краю).
Write (CH); 'X' X
Write (CH:4); 'X' _ _ _X
Write (S); 'Привет !' Привет !
Write (S:10); 'Привет !' _ _ _Привет !
Write (B); True True
Write (B:6); True _ _True
Процедура записи WriteLn аналогична процедуре Write, но после вывода последнего в списке значения для текущей процедуры WriteLn происходит перевод курсора к началу следующей строки. Процедура WriteLn, записанная без параметров, вызывает перевод строки.
Пример:
Write ('A=',A:3);
WriteLn ('_C=',C:3);
WriteLn ('D=',D:6:2);
Поток вывода
A=_23_C=_34
D=_ _3.24
Пример. Вычислить значения функций f и g:
Написать две программы, использующие:
· вещественные значения;
· целочисленную арифметику (целочисленные данные, промежуточные и конечные результаты, операции целочисленной арифметики, константу MAXINT, диапазоны оператора выбора Case).
Program example1;
{Программирование ветвящихся вычислительных процессов}
{использование вещественных значений }
Uses Crt;
Var
x,y,f,g:Real;
Begin
Clrscr; {Очистка экрана}
WriteLn('Введите значения x,y');
ReadLn (x,y);
WriteLn ('При x=',x:5:2,' y=',y:5:2);
If x+y<0 then
Begin
WriteLn ('x+y=',x+y:5:2,'<0');
f:=1/sqrt(x*x+y*y);
g:=x-y;
End
Else
If x+y<=5 then
Begin
WriteLn ('0<=x+y=',x+y:5:2,'<=5');
f:=2*x*y;
g:=2*x+3;
End
Else
Begin
WriteLn ('x+y=',x+y:5:2,'>5');
f:=1/(x+y);
g:=1/sqrt(x*x+1);
end;
WriteLn ('f=',f:6:4);
WriteLn ('g=',g:6:4);
ReadLn; {Задержка экрана}
End.
Program example2;
{Программирование ветвящихся вычислительных процессов}
{использование целочисленной арифметики }
Uses Crt;
Var
x,y,f,g:Integer;
Begin
Clrscr; {Очистка экрана}
WriteLn('Введите значения x,y');
ReadLn (x,y);
WriteLn ('При x=',x,' y=',y);
Case x+y of
-Maxint..-1: begin
WriteLn ('x+y=',x+y,'<0');
f:=1 div round(sqrt(x*x+y*y));
g:=x-y;
end;
0..5 : begin
WriteLn ('0<=x+y=',x+y,'<=5');
f:=2*x*y;
g:=2*x+3;
end;
6..Maxint : begin
WriteLn ('x+y=',x+y,'>5');
f:=1 div (x+y);
g:=1 div round (sqrt(x*x+1));
End
end;
WriteLn ('f=',f);
WriteLn ('g=',g);
ReadLn; {Задержка экрана}
End.
Дата добавления: 2015-04-15; просмотров: 950;