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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



Dec(X{,n}) — процедура уменьшает значение целочисленной переменной Х на величину n. При отсутствии необязательного параметра n значение Х уменьшается на единицу.

Inc(X{,n}) — процедура увеличивает значение целочисленной переменной Х на n. При отсутствии необязательного параметра n значение Х увеличивается на единицу.

Pred(S) — функция возвращает элемент, предшествующий S в списке значений типа. Тид результата совпадает с типом параметра. Если предшествующего S элемента не существует, возникает программное прерывание.

Succ(S) — функция возвращает значение, следующее за S в списке значений типа. Тип результата совпадает с типом параметра. Если следующее за S значение отсутствует, возникает программное прерывание.

Odd(I: integer): boolean — возвращает True, если I нечетное, и False, если I четное.

Функции преобразования типов

Chr(I:byte):char — возвращает символ стандартного кода обмена информацией с номером, равным значению I. Если значение параметра больше 255, возникает программное прерывание.

Ord(S):longint — возвращает порядковый номер значения S в множестве, определенном типом S.

Round(X:real):longint — возвращает значение X, округленное до ближайшего целого числа.

Trunc(X:real):longint — возвращает ближайшее целое число, меньшее или равное X, если Х >= 0, и большее или равное X, если Х< 0.

Процедуры управления программой

Delay(I:word) — задержка выполнения программы на I мс.

Exit — выход из выполняемого блока в окружающую среду. Если текущий блок является процедурой или функцией, выход производится во внешний блок. Если Exit указана в операторной части основной программы, программа прекращает работу, и управление передается системе программирования.

Halt(N:word) — прекращение выполнения программы и передача управления системе программирования (если выполнялся.PAS-файл) или DOS (если выполнялся.ЕХЕ-файл). N — код завершения программы, передаваемый в операционную систему.

RunError(ErrCode:word) — прекращение выполнения программы и генерация ошибки времени выполнения. ErrCode — параметр типа byte, содержащий номер ошибки.

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

FillChar(P,Dl,Z) — заполняет побайтно область основной памяти заданным значением (заполнителем). Является одной из самых быстродействующих процедур. Область начинается с первого байта указанной переменной Р и имеет размер, заданный параметром Dl. Р — переменная любого типа; Dl — целочисленное выражение, указывающее длину; Z — заполнитель, выражение литерного или байтового типа.

Hi(I:integer):byte — выделяет старший байт значения I и помещает его в младший байт результата. Старший байт результата равен 0.

Lo(I: integer): byte — выделяет младший байт значения I и помещает его в младший байт результата. Старший байт результата равен 0.

SizeOf(IT:integer):word — вычисляет объем основной памяти в байтах, которую занимает указанная переменная или тип. IT — идентификатор переменной или типа данных.

Swap(I: integer): integer — обменивает содержимое младшего и старшего байтов целочисленного выражения, заданного параметром I типа integer.

Вызов стандартной процедуры или функции

Для использования стандартной процедуры или функции к программе подключается тот или иной специализированный библиотечный модуль, в котором записана данная стандартная процедура или функция (исключение составляет модуль System, так как он подключается к программе автоматически), для чего имя специализированного библиотечного модуля указывается в разделе uses. Затем в программе записывается вызов процедуры или функции, для чего записывается ее имя и указываются фактические параметры, например: Pi, Sin(X), Chr(125), Inc(X,5). Так как после выполнения функции ее значение присваивается имени, то имя функции используется в выражении.

Порядок выполнения работы

1. Изучить теоретические сведения по теме: “Написание программы на Паскале с использованием встроенных функций ”.

2. Разработать программу, в которой реализовать все описанные в работе стандартные (встроенные) функции и процедуры.

3. Показать работающую программу преподавателю.

4. Ответить на контрольные вопросы.

Контрольные вопросы

1. Понятие структурного программирования. Определение подпрограмм.

2. Функции. Особенности использования.

3. Стандартные библиотечные модули. Понятие стандартных функций и процедур.

 

Лабораторная работа № 14

Написание программы на Паскале с использованием функций, определенных пользователем

 

Цель работы: формирование знаний и умений по работе с подпрограммами. Приобретение навыков написания программ с использованием функций.

Краткие теоретические сведения

Функция, определенная пользователем, состоит из заголовка и тела функции.

Заголовок содержит зарезервированное слово function, идентификатор (имя) функции, заключенный в круглые скобки, необязательный список формальных параметров и тип возвращаемого функцией значения. Тело функции представляет собой локальный блок, по структуре аналогичный программе. В целом структура функции, определенной пользователем имеет вид:

function <имя> (Формальные параметры): <тип результата>;

const...

type...

var

begin

<операторы>

end;

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

Обращение к функции осуществляется по имени с необязательным указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип.

Пример программы с использованием функции, определенной пользователем

Пусть требуется разработать программу вычисления выражения:

Z=( + )/2* ,

в которой возведение в степень выполняется функцией Step.

program DemoFunc;

Var

М: integer;

А,Z,R: real;

{Функция вычисления степени. N - степень, X – число, возводимое в данную степень. N, X — формальные параметры; результат, возвращаемый функцией в точку вызова, имеет вещественный тип}

function Step(N: integer; X: real): real;

Var

I: integer;

Y: real;

begin

Y:=1;

for I:=1 to N do {Цикл вычисления N—й степени числа X)

Y:=Y*X;

Step:=Y; {Присваивание функции результата вычисления степени}

end; {Конец функции}

Begin {Начало основной программы}

Write('Введите значение числа А и показатель степени М');

Readln(A,M);

Z:=Step(5,А); {Вызов функции с передачей ей фактических параметров N=5, X=А}

Z:=Z+ Step(3,l/A); {Вызов функции с передачей ей фактических параметров N=3, X=1/А}

if M=0 then R:=l {если число возводится в нулевую степень, то результат всегда равен 1}

else if M>0 then R:=Step(M,A) {Вызов функции Step с передачей ей фактических параметров М, А}

else R:=Step(-M,A); { Вызов функции с передачей ей фактических параметров: - М, отрицательная степень}

Z:=Z/(2*R);

Writeln(' Для А= ',А,'М= ',М,' Значение выражения= ',Z);

end.

В начале программы описываются переменная целого типа М и переменные вещественного типа А, Z, R, после этого описывается функция вычисления степени числа Step с формальными параметрами N и X, результат, возвращаемый функцией в точку вызова, - вещественного типа.

В описании функции вводятся две локальных (местных) переменных I и Y. Переменная I служит для подсчета числа повторений цикла, а в Y накапливается значение степени как произведения N одинаковых сомножителей. В заключение функции присваивается значение вычисленного произведения.

В начале выполнения основной программы на экран выводится запрос "Введите значение числа А и показатель степени М" и считывается с клавиатуры значение вещественного числа А и целого числа М.

Затем выполняется оператор:

Z:=Step(5,A);

Осуществляется вызов функции Step с передачей ей фактических параметров 5, А. Их значения присваиваются формальным параметрам функции N и X. По окончании вычисления степени числа значение функции Step, вычисленное для фактических параметров 5 и А, присваивается переменной Z. Аналогично в операторе:

Z:= Z + Step(3,l/A);

сначала осуществляется вызов функции Step с передачей ей фактических параметров 3, 1/A, после чего значение переменной Z увеличивается на величину возвращенного в основную программу результата вычисления функции Step.

Операторы:

if M=0 then R:=1

else if M>0 then R:=Step(M,A)

else R:=Step(- M,A);

проверяют условия М=0, М>0 и в зависимости от их соблюдения либо при­сваивает переменной R значение 1 (при М=О), либо выполняет вызов функции Step для фактических значений М, А или -М, А, а после вычисления значения функции Step присваивает его переменной R.

Оператор:

Z:=Z/(2*R);

выполняет вычисление значения выражения, а затем присваивает вычисленное значение переменной Z.

В заключение программы стандартная процедура Writeln выводит на экран сообщение о результате вычислений степени М числа А.

Порядок выполнения работы

1. Изучить теоретические сведения по теме: “Написание программы на Паскале с использованием функций, определенных пользователем”.

2. Получить индивидуальное задание у преподавателя и разработать программу в соответствии с поставленной задачей.

3. Показать работающую программу преподавателю.

4. Ответить на контрольные вопросы.

Контрольные вопросы

1. Структура функции, определенной пользователем.

2. Пример программы с использованием функции, определенной пользователем.

 

Лабораторная работа № 15



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 168; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.12.172 (0.022 с.)