Читайте также:
|
|
Для выполнения операций ввода-вывода служат 4 процедуры: Read, ReadLn, Write, WriteLn.
Процедура чтения Read обеспечивает ввод числовых данных, символов, строк и т.д. для последующей их обработки программой. Формат:
Read (X1, X2, …, Xn);
где X1, X2, …, Xn — переменные допустимых типов.
Значения X1, X2, …, 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.154320000E+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:5:2, ' y= ', y:5:2);
case x+y of
-Maxint-1 .. -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-02-16; просмотров: 71 | Поможем написать вашу работу | Нарушение авторских прав |
<== предыдущая лекция | | | следующая лекция ==> |
Структурные операторы | | | Выражения с множествами |