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

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

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






Если вы собираетесь использовать в программе свою функцию, то в простейшем случае объявление функции следует поместить в текст программы, перед разделом инструкций (обычно объявление функции помещают после раздела 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; просмотров: 693. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

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

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Билет №7 (1 вопрос) Язык как средство общения и форма существования национальной культуры. Русский литературный язык как нормированная и обработанная форма общенародного языка Важнейшая функция языка - коммуникативная функция, т.е. функция общения Язык представлен в двух своих разновидностях...

Патристика и схоластика как этап в средневековой философии Основной задачей теологии является толкование Священного писания, доказательство существования Бога и формулировка догматов Церкви...

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

Закон Гука при растяжении и сжатии   Напряжения и деформации при растяжении и сжатии связаны между собой зависимостью, которая называется законом Гука, по имени установившего этот закон английского физика Роберта Гука в 1678 году...

Характерные черты официально-делового стиля Наиболее характерными чертами официально-делового стиля являются: • лаконичность...

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

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