Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
технологии программирования.docx
Скачиваний:
10
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Стандартные процедуры и функции

     Стандартные (встроенные) процедуры и функции являются частью языка и могут вызываться по имени без предварительного описания.

     Арифметические процедуры и функции реализуют математические операции, включая генерацию случайных чисел.

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 и вывод на экран результата игры.

Модули

      Кроме программ, структура которых рассмотрена выше, средства языка по­зволяют создавать модули. В отличие от программы, модуль не может быть запущен на выполнение. Модуль содержит элементы, например, перемен­ные и подпрограммы, которые можно использовать в программе или в дру­гих модулях. Чтобы можно было использовать средства модуля, его необхо­димо подключить, указав имя этого модуля в разделе uses. Типичными примерами модулей являются модули System и SysUtils, содержащие большое количество стандартных подпрограмм. Некоторые из них уже были рассмотрены. Напомним, что для каждой формы приложения создается от­дельный модуль.

      Компилятор распознает модуль по его заголовку, и в результате компиляции создается не исполняемый файл (exe), как это было для приложения, а файл модуля с расширением dcu.

      Модуль состоит из заголовка и 4 разделов: интерфейса (interface), реали­зации (implementation), инициализации (initialization) и деинициализации (finalization). В заголовке указывается слово unitи имя модуля. Мо­дуль имеет следующую структуру:

          Unit <Имя модуля>;

          // Раздел интерфейса

          Interface

          Uses<Список модулей>;

          Const<Список констант>;

          Туре<Описание типов>;

          Var<Объявление переменных>;

          <Заголовки процедур>;

          <3аголовки функций>;

          // Раздел реализации

          Implementation

          Uses<Список модулей>;

          Const <Список констант>;

          Туре<0писание типов>;

          Vаг<0бъявление переменных>;

          <Описание процедур>;

          <0писание функций>;

          // Раздел инициализации

          Initialization

          <Операторы>

          // Раздел деинициализации

          Finalization

          <0ператоры>

          End.

      В разделе интерфейса размещается описание идентификаторов, которые должны быть доступны всем модулям и программам, использующим этот модуль и содержащим его имя в списке. Кроме того, в нем объявляются типы, константы, переменные и подпрограммы. При этом для подпрограмм указываются только их заголовки. Другие используемые модули указываются в списке uses. Раздел интерфейса начинается словом Interface.

      В разделе реализации располагается код подпрограмм, заголовки которых были приведены в разделе интерфейса. Порядок следования подпрограмм может не совпадать с порядком расположения их заголовков, указанных в разделе интерфейса. Допускается оставлять в заголовке только имя подпрограммы, так как список параметров и тип результата функции уже был предварительно указаны. В разделе реализации можно также описывать типы, объявлять константы и переменные и описывать подпрограммы, которые используются только в этом модуле и за его пределами не видны. Раздел реализации начинается словом Implementation.

      В разделе инициализации располагаются операторы, выполняемые в начале работы программы, которая подключает эти модули. Разделы инициализации модулей выполняются в том порядке, в котором они перечислены списке разделаuses программы. Раздел инициализации начинается словом Initialization и не является обязательным.

      При наличии раздела инициализации в модуле можно использовать раздел деинициализации, который начинается словом Finalization. В нем указываются операторы, выполняемые при завершении программы. Разделы деинициализации модулей выполняются в порядке, обратном порядку их перечисления в списке usesпрограммы.