Функция 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.
Составные операторы задают последовательный порядок выполнения операторов, являющихся их элементами (как и в разделе операторов: слева-направо, сверху-вниз). Составные операторы обрабатываются, как один оператор, что имеет решающее значение там, где синтаксис языка Pascal допускает использование только одного оператора.
Синтаксис составного оператора:
Оператор позволяет организовать ветвление в программе.
Синтаксис оператора if:
if лог_выражение then оператор1 [else оператор2];
Если результатом выражения является значение False и присутствует ключевое слово else, то выполнятся оператор, следующий за ключевым словом else (оператор2). Если ключевое слово else отсутствует, то управление передаётся на следующий оператор, минуя оператор, следующий за ключевым словом then (оператор1).
Замечания:
§ Результат вычисления лог_выражение должен, иметь логический тип (boolean). Если результатом выражения является истинное значение (Тrue), то выполняется оператор, следующий за ключевым словом then (оператор1).
§ Следует обратить особое внимание на то, что после ключевых слов then и else согласно синтаксису может находиться только один оператор.
Рисунок 2 – Блок-схема оператора ветвления: a) полная форма (с ветвью else); b) сокращённая форма (без ветви else)
В качестве примера использования оператора if приведём решение следующей задачи: Даны три числа. Найти и вывести максимальное из них и среднеарифметическое двух оставшихся.
Для трёх различных входных значений количество разветвлений алгоритма также равно трём. После ввода данных (рис. 3, блок 2) в блоке 3 проверяется условие максимальности значения в переменной а. Если условие верно, т. е. из трёх значений а является максимальным, то управление передаётся блокам 5 и 6. В противном случае остаётся два варианта: либо максимальным является значение в переменной b, либо – в переменной c. Блок 4 выполняет такую проверку и, в зависимости от результата, передаёт управление либо на блок 9 и далее на блок 10, либо на блоки 7 и 8.
В каждой из веток алгоритма вычисляется среднеарифметическое значение, которое и выводиться перед окончанием алгоритма в блоке 11.