Стандартные процедуры и функции
Стандартные (встроенные) процедуры и функции являются частью языка и могут вызываться по имени без предварительного описания. Арифметические процедуры и функции реализуют математические операции, включая генерацию случайных чисел. 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 программы.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|