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.


 

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

13824. Анализ рынка плиточного шоколада в России на примере шоколада Nesquik от Nestle 62.5 KB
  Анализ рынка плиточного шоколада в России на примере шоколада Nesquik от Nestle эссе Москва 2011 Кондитерские изделия всегда были и остаются популярными товарами потребительской России. С конца 90х годов наблюдается стабильный рост на этом рынке см. таблицу 1. В настоящее ...
13825. Анализ разогревающего крем - геля ультра очищение Pure zone от L’oreal 536.5 KB
  Эссе по микроэкономике №1Анализ разогревающего крем геля ультра очищение Pure zone от Loreal План 1.Введение актуальность выбора 2.Основная часть: Анализ выбора потребителя 2.1.Описание товара 2.2.Важные свойства товара для потребителей результат цена
13826. Экономический анализ товара ноутбук Sony Vaio VPCEA3Z1R/N 1.88 MB
  Экономический анализ товара ноутбук Sony Vaio VPCEA3Z1R/N В настоящее время компьютеризация прочно вошла в нашу жизнь. Она проникла во все сферы окружающие нас. Невозможно представить как провести хотя бы день без компьютера. Садимся печатать материал компьютер садимся и...
13827. Анализ продукта: компьютер MacBook Air с диагональю экрана 11,6 дюйма компании Apple 132 KB
  Эссе по микроэкономике на тему: Анализ продукта: компьютер MacBook Air с диагональю экрана 116 дюйма компании Apple Оглавление Марка Apple. Описание товара. Важные свойства. Покупатели. Субституты и комплементы. Субституты: Комплементы: Заключение
13828. Анализ iPhone 4 70.5 KB
  ПРЕДМЕТ МикроэкономикаЭссе На тему:Анализ iPhone 4 Врятли ктолибо поспорит что компания Apple на сегодняшний день является одной из самых успешных и знаменитых компаний на планете если не самой успешной и знаменитой. Любой проект зарожденный в ее недрах благодаря иде
13829. Garnier skin naturals 53.02 KB
  Эссе по микроэкономике Garnier skin naturals Содержание. Введение Мой выбор Как же оно действует Свойства молочка Гарньер Кто пользуются Субституты и Комплименты Продажи Список используемой литературы Garnier skin naturals Введение В...
13830. Анализ спроса на бритвы Gillette на российском рынке 221 KB
  Эссе по микроэкономике на тему: Анализ спроса на бритвы Gillette на российском рынке. Содержание: Введение. Рассмотрение товара с точки зрения потребителя Почему люди выбирают данный товар Основные субституты данного товара Основные комплементы данног
13831. Микроэкономический анализ подсолнечного масла «Олейна» 63 KB
  Эссе по микроэкономике на тему Микроэкономический анализ подсолнечного масла Олейна Введение Часто ли вы бываете в продуктовом магазине Практически каждый день. Наверно на автомате покупаете необходимые продукты. И скорее всего очень редко задумываетесь над...
13832. Изучение товара. Кинофильмы 394.67 KB
  Эссе по дисциплине Экономическая теория и институциональная экономика. По теме: Изучение товара. Кинофильмы. Введение Кризисный для экономики России 2009 год оказался весьма неплохим для отечественного кинобизнеса. Рублевые сборы кинопроката выросли на 13 а посе