Система программирования Turbo Pascal




Глава 8. Процедуры и функции


    Глава 8. Процедуры и функции
    Процедуры и функции Локализация имен Описание подпрограммы Заголовок Параметры Параметры-массивы и параметры-строки Процедурные типы. Параметры-функции и параметры-процедуры Нетипизированные парам...
    Локализация имен
    Локализация имен Напомню, что вызов подпрограммы осуществляется простым упоминанием имени процедуры в операторе вызова процедуры или имени функции в выражении. При использовании расширенного синта...
    Пример структуры программы
    Пример структуры программы Вот какую иерархию описаний получим, например, для программы, структура которой изображена на рис.8.1 (для простоты считается, что все подпрограммы представляют собой пр...
    Описание программы
    Описание программы Описание подпрограммы состоит из заголовка и тела подпрограммы....
    Заголовок
    Заголовок Заголовок процедуры имеет вид: PROCEDURE имя [ (сп. ф. п . ) ] ; Заголовок функции: FUNCTION имя [ (сп.ф.п.)] : тил; Здесь имя - имя подпрограммы (правильный идентификатор); сп.ф.п. - сп...
    Параметры
    Параметры Список формальных параметров необязателен и может отсутствовать. Если же он есть, то в нем должны быть перечислены имена формальных параметров и их типы, например: Procedure SB(a: Real;...
    Пример 8.1
    var х,у:Real; Function Power (a, b : Real): Real; begin {Power} if a 0 then Power := exp(b * In (a)) else if a 0 then Power := exp(b * ln(abs(a)) else if b = 0 then Power := 1 else Power := 0 end...
    Пример 8.2
    а : Integer = 5; b : Integer = 7 ; {-----------------} Procedure Inc2 (var c: Integer; b: Integer) ; begin {Inc2} с := с + с; b := b + b; WriteLn ( 'удвоенные: ', c:5, b:5) end {inc2}; {----------...
    Параметры - массивы и параметры - строки
    Параметры - массивы и параметры - строки Может сложиться впечатление, что объявление переменных в списке формальных параметров подпрограммы ничем не отличается от объявления их в разделе описания...
    Процедурные типы. Параметры - функции и параметры - процедуры.
    Процедурные типы. Параметры - функции и параметры - процедуры. Процедурные типы - это нововведение фирмы Borland (в стандартном Паскале таких типов нет). Основное назначение этих типов - дать прог...
    Пример 8.3 иллюстрирует механизм передачи процедур в качестве фактических параметров вызова. Программа выводит на экран таблицу двух функций:
    sin1(х) = (sin(x) + 1) * ехр(-х) cos1(x) = (cos(x) + 1) * exp(-x). Вычисление и печать значений этих функций реализуются в процедуре PRINTFUNC, которой в качестве параметров передаются номер позиц...
    Пример 8.3.
    Uses CRT; type Func = Function (x: Real) : Real; {----------------} Procedure PrintFunc (XPos: Byte; F:Func) ; {Осуществляет печать функции F . (XPos - горизонтальная позиция начала вывода) } cons...
    Нетипизированные параметры - переменные
    Нетипизированные параметры - переменные Еще одно очень полезное нововведение фирмы Borland - возможность использования нетипизированных параметров. Параметр считается нетипизированным, если тип фо...
    Пример 8.4
    const NN = 100; {Максимальная длина вектора} var а : array [1..NN] of Real; i, j, N : Integer; {----------------} Function Norma (var x; N: Integer) : Real; var a : array [1..2*MaxInt div SizeOf (...
    Рекурсия и опережающее описание
    Рекурсия и опережающее описание Рекурсия - это такой способ организации вычислительного процесса, при котором подпрограмма в ходе выполнения составляющих ее операторов обращается сама к себе. Расс...
    Пример 8.5
    Program Factorial; {$S+} {Включаем контроль переполнения стека} var n: Integer; Function Facfn: Integer): Real; {Рекурсивная функция, вычисляющая n ! } begin {Fac} if n 0 then WriteLn ('Ошибка в з...
    Расширинный синтаксис вызова функций
    Расширинный синтаксис вызова функций В Турбо Паскале есть возможность вызывать функцию и не использовать то значение, которое она возвращает. Иными словами, вызов функции может внешне выглядеть ка...








Начало