
Стандартные процедуры и функции
Стандартные (встроенные) процедуры и функции являются частью языка и могут вызываться по имени без предварительного описания.
Арифметические процедуры и функции реализуют математические операции, включая генерацию случайных чисел.
Abs(x) – вычисляет абсолютную величину x. Тип результата совпадает с типом параметра.
Int (x) – вычисляет целую часть x . Результат имеет вещественный тип.
Pi – возвращает значение числа pi =3,1415926…
Sqr(x) – возводит в квадрат значение x . Тип результата совпадает с типом параметра.
Sqrt(x) – извлекает квадратный корень из значения x . Результат имеет вещественный тип.
Random – генерирует значение случайного числа в диапазоне 0 .. 0,99. Тип результата вещественный.
Пример. for i :=1 to 3 do write ( Random :8:5);
Результат: 0.06919 0.78539 0.17197
Random(i) – генерирует значение случайного числа в диапазоне [0, i ). Тип результата целочисленный.
Пример. for i :=1 to 3 do write ( Random (10):3);
Результат: 7 2 9
Чтобы случайные числа были «более случайными», необходимо периодически менять базу генерации с помощью стандартной процедуры Randomize , которая при инициализации загружает новую базу в генератор случайных чисел.
Пример . for i:=1 to 10 do
begin
write ( Random (200):5);
Randomize ;
end ;
Скалярные процедуры и функции обрабатывают данные любого скалярного типа, кроме вещественного.
Процедура Dec(x, n) – уменьшает значение целочислен ной переменной x на n . При отсутствии n уменьшает на единицу.
Процедура Inc(x, n) – увеличивает значение целочислен ной переменной x на n. При отсутствии n увеличивает на единицу.
Функция Odd(x) возвращает значение булевского типа true при нечетном x и false при четном x .
Функции преобразования типов используются для преобразования значения одного скалярного типа в значение другого скалярного типа.
Функция Chr(x ) – возвращает символ ASCII с номером, равным значению x .
Функция Round(x) – возвращает значение x , округленное до ближайшего целого. Результат целочисленный.
Процедуры управления программой позволяют задерживать на определенное время выполнение операторов, досрочно выходить из подпрограммы, прекращать выполнение программы.
Delay(i) – задерживает выполнение программы на i миллисекунд.
Exit – осуществляет выход из текущего блока в окружающую среду. Если текущий блок – подпрограмма, выход происходит в основную программу. Если Exit стоит в операторной части основной программы, программа прекращает работу и передает управление в окно редактора кода.
Пример. if j=5 then Exit;
Задание 16. Составить программу, которая вводит с клавиатуры целое число и, в зависимости от его четности, вычисляет и выводит на экран либо сумму всех предшествующих введенному числу четных натуральных чисел, либо произведение всех предшествующих нечетных чисел. Вычисление суммы и произведения оформить в виде подпрограммы-функции Itog . В основной программе предусмотреть ввод с клавиатуры двух целых чисел и вызов для каждого из них функции Itog .
Задание 17. Построить процедуру Numbers , которая организует ввод n целых чисел и вычисление суммы всех четных и произведение всех нечетных чисел. Затем составить программу, которая принимает с клавиатуры количество целых чиселn, вызывает процедуру Numbers и выводит на экран результат ее работы, т.е. сумму всех четных и произведение всех нечетных чисел.
Задание 18* . Построить процедуру Game , моделирующую игру в кости двух игроков. Во время игры игроки ставят по $1 в банк и поочереди бросают кость (правильный кубик). Банк забирает тот, у кого выпало больше очков. При равном числе очков каждый вносит в банк еще по одному $, и игра продолжается. Игра заканчивается, когда у одного из игроков кончаются деньги. В основной программе осуществляется ввод с клавиатуры сумм денег каждого игрока, вызов процедурыGame и вывод на экран результата игры.