Процедуры ввода
End.
Begin
Var
r:real; i:integer;
s:string[10];
i:=12;
r:=100;
s:= 'r=';
write(s,r);
writeln('i=',i);
write(i+1,r+i);
writeln();
write(i,', ',i);
При выполнении программы на экране будут появляться выводимые процедурами вывода значения (таблица 4).
Таблица 4 – Пошаговое выполнение процедур вывода
Выполняемый оператор | Экран программы | |
write(s,r); | r=1.0000000000E+02 | |
writeln('i=',i); | r=1.0000000000E+02i=12 | |
write(i+1,r+i); | r=1.0000000000E+02i=12 13 1.1200000000 E+02 | |
writeln(); | r=1.0000000000E+02i=12 13 1.1200000000 E+02 | |
write(i,', ',i); | r=1.0000000000E+02i=12 13 1.1200000000 E+02 12, 12 |
Read(Пр1, [,Пр2,..., Прn ]) – считывает одно или более значений из текстового файла в одну или более переменных.
Каждый параметр Пр№ является переменной символьного, строкового, целого или вещественного типа.
Процедура останавливает выполнение программы до тех пор, пока пользователь не введёт с клавиатуры требуемое количество значений и нажмёт <Enter>. Числовые значения при вводе должны разделяться пробелом (<Space>) или окончанием строки (клавиша <Enter>). При считывании строковых и символьных значений символ пробел считается частью вводимой строки, а не разделительным символом.
|
|
Readln(Пр1, [,Пр2,..., Прn]) – данная процедура является расширением процедуры Rеаd. После выполнения процедуры Rеаd процедура Rеаdln делает пропуск всех введённых с клавиатуры символов до начала следующей строки.
Пример использования процедур ввода:
Рассмотрим по шагам выполнение следующей программы:
program Rd;
var
r:real; i,i2:integer; c: char; s:string[3];
begin
read(c,r,i,i2);
read(i);
readln(s,r);
read(i);
end.
При выполнении программы пользователь должен будет вводить определённые значения, которые будут сохраняться в соответствующие переменные (таблица 5).
Таблица 5 – Пошаговое выполнение процедур ввода
Выполняемый оператор | Вводимое пользователем с клавиатуры | Состояние переменных | ||||
r | i | i2 | c | s | ||
read(c,r,i,i2); | 234.5 3 22<Enter> | 34.5 | ’2’ | ’’ | ||
33 101<Enter> | 34.5 | ’2’ | ’’ | |||
read(i); | программа не останавливается для ввода данных | 34.5 | ’2’ | ’’ | ||
readln(s,r); | st2.25 2.3 13<Enter> | 0.25 | ’2’ | ’st2’ |
Окончание таблицы 5
Выполняемый оператор | Вводимое пользователем с клавиатуры | Состояние переменных |
read(i); | 2.5<Enter> | Ошибка: invalid numeric format (попытка записать вещественное число в переменную целого типа) |
Процедура Ехit – позволяет немедленно выйти из текущего блока (процедуры, функции или программы).
Процедура Раndомizе – инициализирует генератор случайных чисел.
Функция Random [ (Range: Word)]: word – возвращает случайное число, равномерно распределённое в диапазоне от 0 до значения Range. Если генератор случайных чисел не инициализирован, то при последовательном обращении к данной функции будет возвращаться псевдослучайная последовательность значений (т. е. при каждом новом запуске программы эта последовательность не изменится).
|
|
Рассмотренного в предыдущих разделах достаточно, чтобы составить полноценную программу решения задачи.
В качестве примера разработаем программу для решения следующей задачи:
Даны катеты прямоугольного треугольника a и b. Найти его гипотенузу c и периметр P.
Для решения задачи необходимо припомнить формулы вычисления гипотенузы с и периметра Р:
,
.
Текст программы на языке Pascal выглядит следующим образом:
program Lin;
var
a,b,c:real;
P:real;
begin
writeln('введите длины двух сторон треугольника');
readln(a,b);
c:=sqrt(sqr(a)+sqr(b));
P:=a+b+c;
writeln('гипотенуза-',c,' периметр-',P);
end.