Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




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

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

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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...