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.


 

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

81811. Сциентизм и антисциетизм. Наука и паранаука 34.61 KB
  Эйнштейн ищут основания знания в философии и художественной литературе. Анти-фундаменталистская тенденция просматривается в истолковании всех важнейших областей научного познания: математического естественнонаучного гуманитарного. В то время как сциентизм базируется на абсолютизации рациональнотеоретических компонентов знания антисциентизм опирается на ключевую роль этических правовых культурных ценностей по отношению к идеалу научности. Следует отметить направление теории познания имеющее долгую историю в котором акцент делается на...
81812. Наука как социокультурный феномен. Становление науки как социального института 38.59 KB
  Становление науки как социального института. Именно деятельностное понимание науки особо отмечал В. Вернадский: Ее содержание не ограничивается научными теориями гипотезами моделями создаваемой ими картиной мира в основе она главным образом состоит из научных фактов и их эмпирических обобщений и главным живым содержанием является в ней научная работа живых людей Во втором истолковании когда наука выступает как система знаний отвечающих критериям объективности адекватности истинности научное знание пытается обеспечить себе...
81813. Историческое развитие институциональных форм научной деятельности. Научные сообщества и их исторические типы 37.76 KB
  Возникновение науки как социального института связывают с кардинальными изменениями в общественном строе и в частности с эпохой буржуазных революций которая дала мощный толчок развитию промышленности торговли строительству горному делу мореплаванию. Способы организации и взаимодействия ученых менялись на протяжении всего исторического развития науки. Само существование науки в качестве социального института говорило о том что в системе общественного разделения труда она должна выполнять специфические функции а именно отвечать за...
81814. Наука и экономика. Наука и власть.Проблема государственного регулирования науки 28.08 KB
  Проблема государственного регулирования науки. Отношения науки и экономики всегда представляли собой большую проблему. Традиционное представление о том что технология является неотъемлемым приложением науки сталкивается с эмпирическими и практическими возражениями. Однако если прикладные науки обслуживая производство могут надеяться на долю в распределении его финансовых ресурсов то фундаментальные науки напрямую связаны с объемом бюджетного финансирования и наличием тех планов и программ которые утверждены государственными структурами.
81815. Поиск нового типа цивилизационного развития и новые функции науки в культуре 42.75 KB
  Наука действительно являет собой сложный полиструктурный организм целый мир в недрах которого бушуют познавательные страсти схлестываются несовместимые точки зрения ведется кропотливая экспериментаторская и теоретическая работа. Наука обладает способностью поглощать своих субъектов делать их фанатиками исследования. Однако на самом деле наука лишь один из видов человеческой соотнесенности с миром возникший исторически довольно поздно и выполняющий в жизни общества совершенно конкретные функции. Коренное различие состояло в том что...
81816. Роль науки в преодолении глобальных проблем современности 27.77 KB
  Ученые во всеуслышание заявляют о глобальных проблемах современности к которым относят проблемы охватывающие систему мир человек в целом и которые отражают жизненно важные факторы человеческого существования. Глобальные проблемы имеют не локальный а всеохватывающий планетарный характер. К глобальным проблемам современности относят экологические демографические проблемы войны и мира проблемы кризиса культуры. В силу этого глобальные проблемы должны решаться комплексно координированно усилиями всего мирового сообщества.
81817. Предмет современной философии науки 31.34 KB
  Создавая образ философии науки следует четко определить о чем идет речь: о философии науки как направлении западной и отечественной философии или же о философии науки как о философской дисциплине наряду с философией истории логикой методологией культурологией исследующих свой срез рефлексивного отношения мышления к бытию в данном случае к бытию науки. Философия науки как направление современной философии представлена множеством оригинальных концепций предлагающих ту или иную модель развития науки и эпистемологии. Она сосредоточена на...
81818. Понятие науки. Основные аспекты бытия науки 34.37 KB
  Наука как социальный институт или форма общественного сознания связанная с производством научнотеоретического знания представляет собой определенную систему взаимосвязей между научными организациями членами научного сообщества систему норм и ценностей. Они участвуют в разнообразных формах научного общения дискуссии конференции издания монографии учебники читают лекции и т. Выделим самые характерные черты научного знания. Еще Кант в качестве неотъемлемой черты науки отмечал систематичность научного знания: именно этим как он...
81819. Виховне середовище школи як інтегрований чинник впливу на соціальне становлення та розвиток учнівської молоді 74 KB
  У статті розглядається вплив виховного середовища в школі на соціальне становлення та розвиток учнівської молоді. Розкрито залежність типу виховного середовища школи від особистісної центрації педагога та педагогічного колективу загалом.