Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль (прогр) 2008июль.doc
Скачиваний:
1
Добавлен:
17.11.2018
Размер:
900.61 Кб
Скачать

9. Подпрограммы

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

PROCEDURE имя_процедуры (список_параметров)

FUNCTION имя_функции (список_параметров): тип_результата

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

procedure Sum(x,y,s:real); function Sum(x,y:real):real;

begin begin

s:=x+y sum:=x+y

end; end;

Для обращения к процедуре нужно использовать оператор вида sum(a,b,c). Здесь переменные a,b,c называются фактическими параметрами, x,y,z – формальными. При исполнении процедуры значения a,b присваиваются переменным x,y и выполняются вычисления. Их результат через переменную с передается в вызывающую программу. К функции можно обращаться, используя оператор вида c:=sum(a,b).

Задание 9.1. Вычислить N элементов ряда: y=x11!/2!–x32!/3!+x43!/4!–x54!/5!+... для X<1 в двух вариантах:

При вычислении факториала использовать: 1) процедуру, 2) функцию.

10. Записи

М

TYPE имя типа=RECORD

описание элементов записи

END;

ассивы определяют однородную совокупность данных. На практике часто требуется объединять в один объект данные разных типов. Так для хранения сведений о месячной выработке работников бригады понадобятся следующие сведения: Табельный номер, Имя, Дневной тариф, число отработанных Дней. Ясно, что табельный номер должен быть целого типа, имя – строкового, тариф и дни – вещественного. Мы можем объединить эту совокупность данных (они называются полями) в объект, называемый запись (record). Дадим ему, например имя Vr (от слова выработка). Первоначально удобно описать тип-запись как тип данных конструкцией, изображенной слева. Позже с помощью оператора Var можно описать уже конкретные записи данного типа.

Пример (ниже). Здесь сначала описан тип записи Vr, состоящей из полей: tab, im, tarif, dn соответствующих типов. Затем в разделе Var описаны уже конкретные (рабочие) записи: X и массив записей Y. Обращаться к элементам записей нужно, используя полное имя (имя записи.имя поля), например x.tarif, x.im. А для массива записей нужно указывать и индекс: y[3].tarif. Записи удобно использовать при работе с файлами.

type vr=record {объявление типа записи}

tab: integer; {табель}

im: string[4]; {имя}

tarif, dn: real

end;

Var X:vr; y:array [1..5] of vr;

Задания для самостоятельного решения (данные использовать как записи).

10.1. Пусть имеется таблица-массив, содержащая сведения о работниках (всего K человек) бригады: Имя, Отработано дней, Должностной оклад, Фактическая зарплата. Рассчитать зарплату для каждого работника.

10.2. Усложним предыдущее задание. Пусть бригаде установлена премия в P=100000р., которая делится не поровну, а с учетом коэффициента трудового участи (КТУ). Рассчитайте размер премии для каждого.