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.


 

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

42770. Розрахунок фізичних властивостей вільного та супутнього вуглеводневих газів одного з родовищ України за їх компонентним складом 1.97 MB
  Процес експлуатації нафтових і газових свердловин вимагає виконання низки розрахунків фізичних властивостей компонентів, що видобуваються, які істотно залежать від термобаричних умов, за яких вони знаходяться.
42771. Технология производства и характеристики качества стального гнутого швеллера 100x80x3,0мм из стали марки Ст3пс 391.61 KB
  В наибольшей степени этим требованиям соответствуют стальные конструкции выполненные из холодногнутых профилей ХГП так как данный вид профилей обладает широкими конструктивными достоинствами: высокая точность размеров хорошее качество поверхности повышенное сопротивление различного рода нагрузкам обеспечивают преимущества холодногнутых профилей перед горячекатаными. Одной из разновидностью сортовых гнутых профилей является швеллер. Механические свойства гнутых профилей определяют на заготовке в соответствии с ГОСТ 16523[10]. На...
42772. ТРАНСПОРТНЫЙ НАЛОГ: ОБЩАЯ ХАРАКТЕРИСТИКА И ОСОБЕННОСТИ ИСЧИСЛЕНИЯ И ВЗИМАНИЯ С ФИЗИЧЕСКИХ ЛИЦ НА ТЕРРИТОРИИ ИРКУТСКОЙ ОБЛАСТИ 881.15 KB
  Налогоплательщики транспортного налога Объект налогообложения транспортного налога Налоговые ставки транспортного налога Транспортный налог является основным источником финансирования дорожной отрасли, и от своевременности его поступления напрямую зависят сроки и качество исполнения строительных программ
42773. Социальная реабилитация инвалидов и методика её осуществления 441.99 KB
  Сущность и содержание социальной реабилитации Основные цели и задачи социальной реабилитации Принципы социальной реабилитации Инвалиды составляют особую категорию населения, численность которой постоянно увеличивается. Мировым сообществом социальная защита инвалидов рассматривается как проблема первостепенной важности.
42774. Проектирование системы теплоснабжения промышленного предприятия 219.1 KB
  Определение количества теплоты на подогрев воды для горячего водоснабжения Выбор основного и вспомогательного оборудования системы транспорта теплоты Выбор основного и вспомогательного оборудования источника теплоты.Определение потребности в топливе для производства теплоты.
42775. Организация работы коктейль-бара «Малибу» 804 KB
  Целью работы является рассмотрение вновь созданного коктейль - бара на 50 посадочных мест. Моему коктейль-бару я решил дать название «Малибу», так как моим основным спонсором является «Allied Distillers Limited»
42776. Компьютерная реализация решения инженерной задачи по решению дифференциальных уравнений в частных производных 1.38 MB
  Микроэлектроника является одной из наиболее динамично развивающихся и востребованных отраслей науки и техники. Элементы современных СБИС и микрооптикоэлектромеханических систем (МОЭМС) представляют собой сложные структуры, в основу функционирования которых положены разнообразные физические эффекты. Разработка подобных элементов практически невозможна без решения уравнений математической физики, представляющих
42777. Разработка технологического процесса механической обработки шкива в условиях ЗАО «МРК» 190.3 KB
  Технический прогресс в машиностроении характеризуется как улучшением конструкций машин, так и непрерывным технологии их производства. Развитие новых прогрессивных технологических процессов обработки способствует конструированию современных машин и снижению их себестоимости. Актуальной является задача повышения качества выпускаемых машин и, в первую очередь, их точности