36569

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

Контрольная

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

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

Русский

2013-09-22

32 KB

3 чел.

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

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

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.


 

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

29203. Процессуальный порядок, основные тактические приемы предъявления для опознания 26 KB
  Следователь может предъявить для опознания лицо или предмет свидетелю потерпевшему подозреваемому или обвиняемому. Для опознания может быть предъявлен и труп. Опознающие предварительно допрашиваются об обстоятельствах при которых они видели предъявленные для опознания лицо или предмет а также о приметах и особенностях по которым они могут его опознать.
29204. Обыск — следственное действие 26.5 KB
  Поскольку обыск связан с принудительным вторжением в жилище гражданина и неизбежным вмешательством в его личные интересы для этого требуется санкция прокурора. Лишь в случаях не терпящих отлагательств обыск может быть произведен без такой санкции но следователь обязан в течение суток уведомить прокурора о произведенном обыске. В ходе обыска могут и должны решаться следующие задачи: отыскание и изъятие орудий преступления предметов и ценностей добытых преступным путем а также других предметов и документов которые могут иметь значение...
29205. Тактика следственного эксперимента 30.5 KB
  СЭ могут быть нескольких видов: эксперимент по установлению возможности восприятия какого либо факта или явления по установлению возможности совершения какого либо действия эксперимент по установлению возможности существования какого либо явления эксперимент по установлению отдельных элементов механизма события. эксперимент по установлению механизма образования отдельных следов события общий порядок производства СЭ предусмотрен ст.
29206. Следственный эксперимент 26 KB
  Принимается решение о проведении эксперимента 2. уясняется цель данного эксперимента 3. определение участников эксперимента и роли каждого из них. подготовка технических средств хода процессуального результата эксперимента а так же составление письменного плата то есть сценария.
29207. Криминалистическая следственная тактика 58.5 KB
  тактика решает задачи: подготовка наиболее эффективных рекомендаций по организации планированию расследования и проверки версий разработка наиболее оптимальных приемов следственных действий поиск взаимодействия следователя с оперативными работниками использование оперативнорозыскной информации в тактике следственных действий Структура научных основ криминалистической тактики включает: процессуальные основы психологические основы логические основы тактические основы нравственные основы Структура и система криминалистической тактики:...
29209. Тактика допроса подозреваемого и обвиняемого 66.5 KB
  Как и допрос свидетеля и потерпевшего допрос обвиняемого и подозреваемого помимо подготовки включает 4 стадии те же: установление психологического контакта свободный рассказ постановка вопросов ознакомление допрашиваемого с протоколом. убеждение допрашиваемого в неправильности занятой им позиции. разумное использование доказательств предъявление доказательств после получения о допрашиваемого всех сведений относительно данного доказательства. установление виновной осведомленности допрашиваемого вопреки его воли.
29210. Сле́дователь — должностное лицо 61 KB
  К органам дознания относятся: 1 органы внутренних дел Российской Федерации а также иные органы исполнительной власти наделенные в соответствии с федеральным законом полномочиями по осуществлению оперативнорозыскной деятельности; 2 органы Федеральной службы судебных приставов; 3 командиры воинских частей соединений начальники военных учреждений или гарнизонов; 4 органы государственного пожарного надзора федеральной противопожарной службы.
29211. Эксперт в криминалистике 62.5 KB
  Следователь вправе присутствовать при производстве судебной экспертизы получать разъяснения эксперта по поводу проводимых им действий. Факт присутствия следователя при производстве судебной экспертизы отражается в заключении эксперта. Вопервых следователь могут и обязан проверить соблюден ли при назначении и производстве экспертизы установленный законом процессуальный порядок призванный обеспечить полноту объективность и достоверность полученных результатов а также права сторон прежде всего обвиняемого.