Студопедия — Использование функции
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Использование функции






Если вы собираетесь использовать в программе свою функцию, то в простейшем случае объявление функции следует поместить в текст программы, перед разделом инструкций (обычно объявление функции помещают после раздела Var – раздела объявления).

Инструкции функции будут выполнены, если в одном из выражений программы в качестве операнда будет указано имя этой функции (переход от инструкции основной процедуры программы к инструкциям функции называется вызовом функции или обращением к функции). Если в объявлении функции указаны параметры, то после инструкции вызова функции, которая представляет собой имя функции, в скобках должны быть указаны фактические параметры. Причем количество и тип параметров, задаваемых при вызове функции, должны соответствовать количеству и типу параметров, указанных в заголовке объявления функции. Параметры, задаваемые при обращении к функции, называются фактическими. В качестве фактических параметров обычно используют константы или переменные, реже – выражения.

Следующая программа использует определенную программистом функцию Nod для вычисления наибольшего общего делителя (НОД) двух целых положительных чисел. У функции Nod два параметра – числа, НОД которых надо вычислить. Возвращает функция наибольший общий делитель – значение типа integer. В основе вычисления НОД лежит алгоритм Евклида.

 

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

program p;

Var

c1, c2: integer; {числа НОД которых надо найти }

nd; integer; {наибольший общий делитель}

 

(функция программиста)

function Nod (a: integer; b: integer;): integer;

Var

r: integer; {остаток от деления числа a на b}

Begin

while (a mod b)< > 0 do

Begin

r: = a mod b; {остаток от деления}

a: =b;

b: =r;

end;

nod: =b;

end;

{основная программа}

Begin

writeln (‘Вычисление наибольшего общего делителя (НОД)’)

Write (‘Введите в одной строке два целых положительных числа через пробел’);

Readln (c1, c2);

nd: =Nod (c1, c2);

Writeln(‘НОД чисел ’, c1, ’ и ’, c2, ’ это ’, nd);

end;

Процедуры.

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

В Turbo Pascal процедурой называется имеющая имя последовательность инструкций, предназначенная для решения определенной задачи.

Основная программа и определенная программистом процедура взаимодействуют следующим образом (рис. 10). Если во время работы основной программы встречается инструкция вызова процедуры, то выполнение инструкции основной программы приостанавливается и выполняются инструкции процедуры. После того, как будут выполнены все инструкции процедуры, продолжается выполнение основной программы с той инструкции, которая следует за инструкцией вызова процедуры.

 

Рис.10. Взаимодействие основной программы и процедуры программиста

Объявление процедуры. В общем виде объявление процедуры программиста выглядит так:

 

procedure Имя (var параметр1: тип1; var параметр1: тип1; …; var параметрК: типК;)

Var

{здесь объявление внутренних переменных процедуры}

Begin

{здесь инструкция процедуры}

end;

 

где procedure – зарезервированное слово языка Pascal, обозначающее, что далее следует объявление процедуры программиста; Имя – имя процедуры, используется для вызова инструкций, находящихся между begin и end, реализующих процедуру; параметр1 – переменная, которая используется в инструкциях процедуры. Параметры используются для передачи в процедуру информации, а так же для передачи информации из процедуры в вызвавшую ее программу.

Указанные в объявлении процедуры параметры являются формальными параметрами. Слово var стоящее перед именем параметра, не является обязательным. Однако если оно стоит, то это означает, что при вызове процедуры параметром должна быть переменная основной программы, при этом изменение параметра внутри процедуры приведет к изменению значения переменной основной программы, указанной в качестве фактического параметра при вызове процедуры.

Ниже приведено объявление процедуры Line, которая выводит на экран строку символов. У процедуры два параметра: первый (n) задает длину выводимой строки (количество символов), второй (с) – символ, которым рисуется строка.

 

procedure Line (n: integer; c: char);

Var

i: integer;

Begin

for i: =1 to n do Write(c);

Writeln;

end;

 


Использование процедуры.

 

Инструкция вызова процедуры в общем виде выглядит так:

Имя {Список Параметров};

где Имя – имя вызываемой процедуры; Список Параметров – разделенные запятыми фактические параметры, в качестве которых, в зависимости от описания параметров в объявлении процедуры, могут быть использованы константа, переменная или выражение. Например, инструкции вызова приведенной выше процедуры Line могут быть такими:

Line (30, ’-‘); Line (n+2, ’*‘); Line (n, ch);

 

Следующая программа выводит таблицу квадратных корней. Для оформления таблицы используется процедура программиста Line.

 







Дата добавления: 2014-11-12; просмотров: 700. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...

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

Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...

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

Тактические действия нарядов полиции по предупреждению и пресечению групповых нарушений общественного порядка и массовых беспорядков В целях предупреждения разрастания групповых нарушений общественного порядка (далееГНОП) в массовые беспорядки подразделения (наряды) полиции осуществляют следующие мероприятия...

Механизм действия гормонов а) Цитозольный механизм действия гормонов. По цитозольному механизму действуют гормоны 1 группы...

Studopedia.info - Студопедия - 2014-2024 год . (0.013 сек.) русская версия | украинская версия