36569

Функции: описание и вызов функции

Контрольная

Информатика, кибернетика и программирование

В отличие от процедур функции не являются отдельными операторами. Функции возвращают значения результат обращения к ним и предназначены для использования в составе выражений или в качестве выражений. Это накладывает определенный отпечаток на синтаксическую структуру описания функций которая имеет вид: function имя функции [ список формальных параметров ]: тип функции ; описание локальных имён begin тело функции последовательность операторов end; В заголовке описания функции обязательно указывается тип вырабатываемого функцией...

Русский

2013-09-22

32 KB

5 чел.

Функции: описание и вызов функции.

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

function < имя функции >[(<список формальных параметров>)]:<тип функции >;

< описание локальных имён >

begin

< тело функции - последовательность операторов >

end;

В заголовке описания функции обязательно указывается тип вырабатываемого функцией результата, которым может быть любой простой тип Турбо Паскаля, а также строковый тип и тип указатель.

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

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

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

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

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

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

Замечание: Используя так называемый расширенный синтаксис, можно вызывать функцию как процедуру (т.е. как оператор). Для включения расширенного синтаксиса имеется директива компилятора {$X+}. Это находит применение при инициализации динамических объектов.

Приведем пример программы triangle2, отличающейся от triangle1 тем, что вместо процедуры d использована функция dist:

 

program triangle2; {Программа, вычисляющая длины сторон треугольника АВС}

 uses CRT;

 type point = array [1..2] of real; {тип- точка на плоскости}

 var A,B,C:point; {вводимые точки}

ch:char;

function dist(X,Y:point):real;{ расстояние между точками X и Y }

 begin dist:= sqrt(sqr(X[1]-Y[1])+sqr(X[2]-Y[2]))

 end { dist};

 BEGIN TextBackground(cyan);TextColor(white);ClrScr;

window(10,5,60,10);TextBackground(green); ClrScr;

 repeat

writeln(' Введите координаты вершин A,B,C:');

writeln('A[1] A[2] B[1] B[2] C[1] C[2] ');

readln(A[1],A[2],B[1],B[2],C[1],C[2]);

 writeln(' Длины сторон треугольника АВС:');

 writeln(' AB=',dist(A,B):2:2,' AC=',dist(A,C):2:2,' BC =',dist(B,C):2:2);readln(ch)

 until ch=' ';

END {triangle}.

Задача 4.2.6(7)

program alex7;

type mas=array[1..5,1..4]of integer;

var a:mas;

i,j,x,y:integer;

procedure raz(b:mas;n,m:Integer;var d:integer);

var i,j:integer;

begin

d:=0;

for j:=n to m do

for i:=1 to 5 do

if b[i,j]=0 then d:=d+1;

end;

begin

for i:=1 to 5 do

for j:=1 to 4 do

read(a[i,j]);

raz(a,1,2,x);

raz(a,3,4,y);

if x>y then Writeln('v levoi bolshe')

else if x<y then Writeln('v pravoi bolshe');

if x=y then Writeln('odinakovo');

readln;

end.


 

А также другие работы, которые могут Вас заинтересовать

36333. Англійська мова. 8 клас. Підсумкові контрольні роботи. Відповіді з коментарями 16.62 MB
  Доценко І. В. Англійська мова. 8 клас (Підсумкові контрольні роботи. Відповіді з коментарями) Видання містить відповіді до завдань закритої форми і пропонує перекоади усхних відповідей до завдань відкритої форми. Для полегшення роботи додається переклад українскою мовою і коментарі до найскладніших моментів у завданнях
36334. Классификация САПР по типу и разновидности объектов проектирования 12.38 KB
  Классификация САПР по типу и разновидности объектов проектирования. САПР классифицируются по ГОСТ 23 501. Основные признаки характеризующие САПР: Тип. Число уровней в структуре технического обеспечения САПР.
36335. Методы измерения температуры, бесконтактный метод 56.5 KB
  О температуре нагретого тела можно судить на основании измерения параметров его теплового излучения представляющего собой электромагнитные волны различной длины. Термометры действие которых основано на измерении теплового излучения называются пирометрами. Физические тела характеризуются либо непрерывным спектром излучения твердые и жидкие вещества либо избирательным газы. Эта связь описывается законом Планка: где М0λТ плотность мощности излучения испускаемого телом находящимся при температуре Т на длине волны λ Т ...
36336. Методы измерения температуры 12.61 KB
  Методы измерения температуры. Существует два метода измерения температуры: контактный метод и бесконтактный. Из всего многообразия методов измерения температуры и измерительных средств в металлургии широкое распространение получили термопреобразователи сопротивления термоэлектрические преобразователи и пирометры излучения. Первые две разновидности датчиков используются для контроля температуры охлаждающей воды подогретых газов и воздуха поступающих к горелочным устройствам отходящих продуктов сгорания футеровки агрегатов жидких металлов...
36337. Назначение и правила выполнения структурной схемы комплекса технических средств автоматизации 54.21 KB
  Назначение и правила выполнения структурной схемы комплекса технических средств автоматизации. В самом общем виде структурная схема системы автоматизации представлена на рисунке 9. Система автоматизации состоит из объекта автоматизации и системы управления этим объектом. Благодаря определенному взаимодействию между объектом автоматизации и системой управления система автоматизации в целом обеспечивает требуемый результат функционирования объекта характеризующийся параметрами х1 х2хn Работа комплексного объекта автоматизации...
36338. Поясните понятие устойчивости линейной САУ. Дайте классификацию методов определения устойчивости и поясните их 41.01 KB
  Дайте классификацию методов определения устойчивости и поясните их. Устойчивость СУ по начм условиям по Ляпунову это свво системы без которого она не работоспособна. устойчива то затухают все составляющее свободных движений вызванных любыми ненулми начми условиями.
36340. Функциональная схема САР развернутым способом с изображением технологического оборудования. 37.53 KB
  Развернутый способ как правило применяют для наиболее сложных объектов автоматизации. Упрощенный способ применяют в основном для несложных объектов автоматизации. Изображение приборов и средств автоматизации при этом способе производят непосредственно на изображении технологического оборудования и трубопроводах. Приборы и средства автоматизации осуществляющие сложные функции контроль регулирование сигнализацию и т.
36341. Приведите классификацию, формулировки критериев устойчивости и поясните их 46.57 KB
  Для более сложных случаев разработаны критерии устойчивости т. Алгебраические позволяют судить об устойчивости по коэффициентам Ар. Критерий Гурвица: Для асимптотической устойчивости необходимо чтобы все миноры данной матрицы были положительными.