72636

ПОДПРОГРАММЫ-ФУНКЦИИ

Доклад

Информатика, кибернетика и программирование

С использованием функции RRMX непосредственно возвращающей значение максимального элемента массива и с помощью функции NUMX возвращающей номер максимального элемента массива. Так в приведенном ниже примере имя функции NUMX типизировано как целое по умолчанию а для функции RRMX необходима явная типизация.

Русский

2014-11-26

13.95 KB

0 чел.

ПОДПРОГРАММЫ-ФУНКЦИИ.

Программа SOMAX печатает максимальные значения массивов A, B и C двумя способами. С использованием функции ARRMAX, непосредственно возвращающей значение максимального элемента массива, и с помощью функции NUMAX, возвращающей номер максимального элемента массива.

Подпрограмма-функция начинается с ключевого слова FUNCTION, после которого указывается ее имя и, в круглых скобках, список формальных параметров. Завершается подпрограмма-функци, как и все програамные единицы, оператором END.

Подпрограмма-функция является типизированным объектом. Тип функции определяется типом ее имени. Если имя необходимо явно типизировать, то тип указывается перед FUNCTION. Имя функции должно быть так же типизировано в использующей ее программной единице. Так, в приведенном ниже примере, имя функции NUMAX типизировано как целое, по умолчанию, а для функции ARRMAX необходима явная типизация.

     program SOMAX

     integer A(2), B(3), C(4), ARRMAX

     data A /1, 2/ B/4, 5, 3/ C/ 7, 6, 9, 8/

     print'(3(1x,i1)/)', ARRMAX(A,2), ARRMAX(B,3), ARRMAX(C,4)

     print'(3(1x,i1)/)', A(NUMAX(A,2)), B(NUMAX(B,3)), C(NUMAX(C,4))

     end

 

     integer function ARRMAX(X,N)

     integer X(N)

     ARRMAX = X(1)

     if(N .eq. 1) return

     do i=1, N

       if( X(i) .gt. ARRMAX ) ARRMAX = X(i)

     end do

     return

     end

     function NUMAX(X,N)

     integer X(N)

     NUMAX = 1

     if(N .eq. 1) return

     do i= 2, N

       if( X(i) .gt. X(NUMAX) ) NUMAX = i

     end do

     return

     end

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

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

Подпрограммы-функции используются в вызывающих их программных единицах точно так же, как переменные и константы соответствующего типа. Например, значение функции NUMAX используется как индекс массива.

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


 

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

36566. Область действия имен в программе 29 KB
  В программах не использующих подпрограммы имена описанные в разделе описаний действуют во всей программе не вызывая какихлибо проблем. В подпрограммах могут использоваться свои локальные внутренние имена и кроме того она может также использовать глобальные внешние для неё имена из других подпрограмм или основной программы. Локальными именами подпрограммы называются те имена которые описаны в этой подпрограмме в её разделе описаний. Все остальные используемые в подпрограмме имена являются глобальными именами данной...
36567. Параметры-процедуры и параметры-функции. Процедурный тип 30.5 KB
  Описание процедурных типов имеет форму заголовка процедуры или функции с опущенным её именем: type имя процедурытипа = procedure список формальных параметров ; type имя функциитипа = function список формальных параметров : тип ; Например: type fun =function x:rel:rel; При описании подпрограммы с процедурными параметрами такие параметры указываются формальным именем и соответствующим процедурным типом. Пример процедуры использующей описанный выше процедурный тип fun: procedure print_f n:byte; f:fun; const count = 20; vr X:rel;...
36568. Особенности использования параметров в процедурах и функциях 30 KB
  Это означает что нельзя использовать описание типа rry непосредственно в списке формальных параметров. Например: procedure sttem:rry [1.8] of byte; {Неправильное описание параметра m} type byte_st = rry [1. type rry10 = rry[0.
36569. Функции: описание и вызов функции 32 KB
  В отличие от процедур функции не являются отдельными операторами. Функции возвращают значения результат обращения к ним и предназначены для использования в составе выражений или в качестве выражений. Это накладывает определенный отпечаток на синтаксическую структуру описания функций которая имеет вид: function имя функции [ список формальных параметров ]: тип функции ; описание локальных имён begin тело функции последовательность операторов end; В заголовке описания функции обязательно указывается тип вырабатываемого функцией...
36570. Процедура: описание и вызов процедуры 30 KB
  Структура описания процедуры во многом сходна со структурой программы. По существу отличие только в заголовке процедуры. Описание процедуры может быть помещено на любое место в разделе описания вызывающей подпрограммы.
36571. Концепция подпрограммы в Турбо Паскале 34.5 KB
  Понятие подпрограммы одно из фундаментальных понятий в программировании возникшее фактически вместе с понятием программы. Одна подпрограмма может включать в себя другие подпрограммы и т. Подпрограммы определяют декомпозицию основной программы направленную на преодоление сложности разработки и понимания текста программы.
36572. Структурный тип строка. Основы обработки строк 29 KB
  Основы обработки строк. Строки относятся к важным средствам представления нечисловой информации и обработка строк имеет широкие приложения во многих областях использования нечисловой информации редактирование текстов логический анализ автоматизация перевода распознавание текстов и др. Поскольку строки указанного типа являются разновидностями массива для них можно применять всё что применимо к массивам.
36573. Расчёт электроснабжения района 2.81 MB
  Определение расчетной нагрузки коммунально-бытовых, промышленных потребителей; выбора номинальной мощности трансформаторов; определения сечения линий как высокого, так и низкого напряжения; определения величины недоотпущенной электроэнергии; определения годовых потерь электрической энергии в линии 35 кВ
36574. Структурный тип массив. Обработка массивов 31 KB
  Такие операторы присваивания могут использоваться для копирования одного массива в другой. Однако над массивами не определены отношения. Кроме того, в Турбо Паскале нельзя использовать выражения над массивами.