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.


 

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

42686. Работа в операционной системе Windows XP2000 79 KB
  С помощью проводника WinE создали на диске С: каталог Группа АП10Б. В каталоге группы на двух членов бригады создали файл с помощью редактора Notepd. В файле записали: Стерлик Дмитро Александрович Алексей Кунченко Михайлович Созданный файл открыли с помощью редактора WordPd и отредактировали его. С помощью графического редактора Pint нарисовали картинку размножили ее по экрану и сохранили в каталоге Группа АП10Б.
42687. ИССЛЕДОВАНИЕ ОДНОПОЛУПЕРИОДНОГО И ДВУХПОЛУПЕРИОДНОГО ВЫПРЯМИТЕЛЕЙ С ПРИМЕНЕНИЕМ СИСТЕМЫ СХЕМОТЕХНИЧЕСКОГО МОДЕЛИРОВАНИЯ «ELECTRONICS WORKBENCH» 159 KB
  Краткие теоретические сведения Среднее значение выходного напряжения постоянная составляющая в схеме однополупериодного выпрямителя рисунок 2. Среднее значение выходного напряжения постоянная составляющая мостового выпрямителя рис.3 Частота выходного сигнала для схемы с однополупериодным или двухполупериодным выпрямителем а так же для схемы с двухполупериодным мостовым выпрямителем вычисляется как величина обратная периоду выходного сигнала: . Если на выход любого из выше рассмотренных выпрямителей включить конденсатор то...
42688. Meeting people for the first time. Talking about what you do. Opening a meeting 150.5 KB
  When a person has been introduced to you, Pleased to meet you /Nice to meet you are both semi-formal responses. They sound natural and are useful for most situations. Less formal responses include Good to meet you / Great to meet you. The most formal response is How do you do? This is used less in modern business. When introducing two people, it is helpful to say a little about what they do, e.g. This is Jane, she s organising training courses for our Singapore branch. The information should be brief but include enough detail to encourage conversation between the two people being introduced.
42689. Getting through to the right person. Taking / Leaving a message. Checking information. 74.5 KB
  Mаking telephone clls in nother lnguge cn mke some Ss nervous t this level becuse of the lck of visul clues tht usully help with context nd understnding. Hve ll documents nd informtion tht you need t close hnd s well s prepred list of ny useful phrses. When exchnging informtion check nd clrify tht you hve understood been understood correctly. If someone clls you nd you re unprepred sy tht you re busy t the moment nd will cll them bck.
42690. Greeting visitors. Making polite offers and requests. Making small talk 63.5 KB
  Greeting someone for the first time Very good thnks. Thnksfor meeting me. Greeting someone you know It's good to see you too Yn Very well thnks nd you I'm fine thnks. Thnks for meeting me.
42691. Showing appreciation. Taling about likes and dislikes. Describing products and giving opinions 177.5 KB
  Choose word or phrse in itlics to mke sentences tht re true in your country. However it is importnt to remember tht it is still business. If you re visiting people in nother country do some reserch to check on wht behviour is expected for exmple: Is it OK to discuss business during the mel Will your host hostess be offended if you refuse food or drink If you visit your host hostess t home should you tke gift It is good ide to order dish tht is not difficult to et. You cn concentrte on the people tht you re hving lunch with insted of...
42692. Talking about company history. Introducing a talk. Sequencing events. Presenting a company history 154 KB
  Tlking bout compny history. Introducing tlk Sequencing events Presenting compny history Introducing tlk Good business prctice. This lbortory work looks in prticulr t introducing tlk or presenttion. In n introduction it is importnt for the speker to: Introduce himself; Give cler overview of the subject; Tell the udience the structure tht the tlk will follow; Tell the udience whether they cn sk questions during the presenttion or whether there will be n opportunity to sk questions t the end of the tlk.
42693. Participating in meeting. Giving your opinion. Asking for opinions. Agreeing and disagreeing 128 KB
  Discussion You re prticipting in meeting where people hve lots of different opinions. Listen to wht people sy. Listen to wht people re sying Be discourged if people interrupt you. Four people give their opinion.
42694. Тестирование с целью определения характеристик компьютерной системы 146 KB
  4 dobe Bridge 1.0 dobe Common File Instller 1.0000 dobe Flsh Plyer 10 ctiveX 10.64 dobe Flsh Plyer 10 Plugin 10.