КАТЕГОРИИ: Архитектура-(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; Просмотров: 381; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |