КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Uses crt;Стр 1 из 2Следующая ⇒ Программирование с использованием Подпрограмм общего вида типа – Function .
Цель работы. Отработка навыков написания и отладки программ, содержащих подпрограммы-функции. Результаты (основные и промежуточные) вывести на экран дисплея и в файл
Краткая теория. При решении многочисленных практических задач довольно часто возникает необходимость многократно производить вычисления одних и тех же выражений при различных исходных данных (параметрах). Подобная ситуация возникает и тогда, когда определенные действия, выполняемые программой, должны повторяться некоторое количество раз при различных значениях аргументов. В этом случае для уменьшения размеров программы целесообразно выделять повторяющиеся фрагменты и оформлять их в виде подпрограмм – самостоятельных программных единиц, выполняемых при различных входных данных. Различают два вида подпрограмм: процедуры и функции. Обе формы предназначены для выделения и оформления самостоятельного программного модуля для повторных, многократных обращений к нему с целью выполнения определенных операций, предусмотренных алгоритмом. Несмотря на свое конструктивное сходство, принципиальным различием между ними является тот фактор, что результатом действия подпрограммы-функции возвращаемым может быть только одно число (значение), в то время как результатом подпрограммы-процедуры – возвращаемых результатов может быть множество (например, массив).
Рассмотрим организацию подпрограмм-функций языка Pascal. Подпрограмма-функция используется в тех случаях, когда требуется в результате получить одно значение параметра. Полученный результат присваивается имени подпрограммы. Функция является самостоятельной подпрограммной единицей и состоит из любого числа операторов. Подпрограмма – функция называется также пользовательской функцией. Подпрограммa – функция должна быть описана до того, как к ней последует обращение и до начала тела главной программы (main program) Описание пользовательских функций может иметь следующийй вид: FUNCTION <name> (a:<тип>;b:<тип>;c,z:<тип>;…) :<тип>; <описание локальных переменных и констант> Begin < тело подпрограммы> End;
где: <name> - имя пользовательской функции, в скобках после имени функции указываются ее параметры (при описании функции эти параметры называются формальными) с указанием типа этих параметров. Последним в строке указывается тип самой функции (тип возвращаемого параметра). В теле подпрограммы следует хотя бы один раз записать оператор присваивания <name>:=… ; . Именно так происходит возвращение результата из подпрограммы в вызывающую программу.
Обращение к пользовательской функции допускается в правой части оператора присваивания или в операторе печати. Обращение имеет вид: Y:=<name>(a,b,c,z); где: a,b,c,z – называются фактическими параметрами. К моменту обращения к подпрограмме – функции все фактические параметры должны быть определены, т.е. заданы их значения. Между фактическими и формальными параметрами должно быть полное соответствие по порядку следования, количеству и типу.
Пример. Заданы матрицы Определить матрицу, имеющую максимальное среднее значение элементов.
uses crt; const n=3; type matr=array[1..n,1..n] of real; var sr:array[1..3] of real; i,j:integer; x,y,z:matr; maxsr:real; f:text; {------ подпрограмма вычисления среднего значения-------} function sred(a:matr;m,n:integer):real; var s:real; Begin s:=0; for i:=1 to m do for j:=1 to n do s:=s+a[i,j]; sred:=s/(m*n) End; {--------main--------} Begin assign(f,’Matrica.pas’);
|