Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Механизм передачи параметров




Begin

<тело процедуры>

<имя>:=<значение>;

end;

 

Функции предназначены для того, чтобы вычислять только одно значение, поэтому ее первое отличие в том, что процедура может иметь новые значения у нескольких параметров, а функция только одно (оно и будет ее результатом).

Второе отличие заключается в заголовке функции. Он состоит из слова function, за которым идет имя функции, затем в круглых скобках идет список формальных параметров, после чего через двоеточие записывается тип результата функции. Остальное – как в процедуре. Кроме того: в теле функции должен быть хотя бы один оператор присваивания, где в левой части стоит имя функции, а в правой – ее значение. Иначе, значение не будет определено. В точку вызова возвращается результат присваивания.

Обращение к функции осуществляется по имени с необязательным указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип.

Пример 3: Составить программу, подсчитывающую число сочетаний без повторения из n элементов по k элементов. Число сочетаний без повторения вычисляется по формуле:

.

Решение:

program pr3;

var n,k:integer;

a1,a2,a3,c:integer;

function f(n:integer);integer;

var i:integer;

rez:integer;

begin

rez:=1;

for i:=1 to n do rez:=rez*i;

f:=rez

end;

begin

writeln(‘Введите n и k для подсчета числа :’);

readln(n,k);

a1:=f(n);

a2:=f(k);

a3:=f(n-k);

c:=a1 div (a2*a3);

writeln(‘=’,c:4)

end.

 

Пример 4: Написать подпрограмму, подсчитывающую количество цифр числа. Используя ее, определить, в каком из двух данных чисел больше цифр.

Решение:

program pr4;

var n1,n2:integer;

k1,k2:integer;

function qun(x:integer):integer;

var k:integer;

begin

k:=0;

while x<>0 do

begin

k:=k+1;

x:=x div 10

end;

qun:=k

end;

begin

writeln(‘Ввести два числа’);

readln(n1,n2);

k1:=qun(n1);

k2:=qun(n2);

if k1=k2 then writeln(‘Одинаковое количество цифр’)

else if k1>k2 then writeln(‘В первом числе цифр

больше’)

else writeln(‘Во втором числе цифр

больше’);

readln

end.

 

Пример 5: Дан массив действительных чисел {}, где i=1,2,3, …, m. Вычислить сумму элементов с 1-го по 12-й и сумму элементов с 8-го по 15-й:

Найти произведение этих сумм.

Решение:

program pr5;

const m=20;

var a:array[1..m] of real;

j:integer;

p,s1,s2:real;

function sum(n,k:integer):real;

var i:integer;

s:real;

begin

s:=0;

for i:=n to k do s:=s+a[i];

sum:=s

end;

begin

for j:=1 to m do

begin

writeln(‘a[‘,j:2,’]=’);

readln(a[j])

end;

s1:=sum(1,12);

s2:=sum(8,15);

p:=s1*s2;

writeln(‘S1=’,s1:8:2,’ S2=’,s2:8:2,’ P=’,p:8:2)

end.

 

В заголовке процедуры или функции может быть задан список параметров, которые называются формальными. Название «формальные» эти параметры получили в связи с тем, что в этом списке заданы только имена для обозначения исходных данных и результатов работы процедуры, а при вызове подпрограммы на их место будут подставлены конкретные значения (выражений) и имен. Этот список указывается после имени подпрограммы и заключается в круглые скобки.

Список формальных параметров, указываемых в заголовке подпрограммы, может включать в себя:

- параметры-значения;

- параметры-переменные, перед которыми должно стоять служебное слово var и за которыми указывается их тип;

- параметры-процедуры, перед которыми должно стоять служебное слово procedure;

- параметры-функции, перед которыми должно стоять служебное слово function и после которых указывается тип значения, возвращаемого функцией в основную программу;

- нетипизированные параметры, перед которыми должно стоять служебное слово var и отсутствует указание типа.

В списке должны быть перечислены имена формальных параметров и их типы. Имя параметра отделяется от типа двоеточием, а параметры друг от друга – точкой с запятой. Имена параметров одного типа можно объединить в подсписки, в которых имена отделяются друг от друга запятой.

Между формальными и фактическими параметрами должно быть полное соответствие:

- формальных и фактических параметров должно быть одинаковое количество;

- порядок следования фактических и формальных параметров должен быть один и тот же;

- тип каждого фактического параметра должен совпадать с типом соответствующего формального параметра.




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 341; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.