Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_МЕТ№2.DOC
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
248 Кб
Скачать
☆

1.1.Пример программы с процедурой

Задача:

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

Исходными данными для процедуры являются массив вещественных чисел и его размерность. Стандарт языка Паскаль, как отмечалось выше, требует описания массива в разделе Type (в программе это новый тип – Mas). При использовании процедуры сортировки для согласования параметров необходимо в основной программе и процедуре ссылаться только на этот тип.

PROGRAM SRT;

CONST

M=200; { максимальный размер массива }

TYPE

MAS=ARRAY [1.. M] OF REAL;

VAR

A,B:MAS;

I,N:INTEGER;

PROCEDURE SortY (L:INTEGER; VAR Y:MAS);

{ Сортировка вещественных чисел методом "Пузырька" }

VAR

I,K: INTEGER;

Z : REAL;

BEGIN

FOR K:=1 TO L-1 DO

FOR I:=1 TO L-K DO

IF Y[I]>Y[I+1]THEN

BEGIN

Z: = Y[I];

Y[I]:=Y[I+1];

Y[I+1]:=Z

END;

END; { SortY }

BEGIN {основная программа}

WRITELN(` Введите размер массива`);

READ(N);

Writeln(`Введите первый массив`);

FOR I:=1 TO N DO

READ (A[I]);

Writeln (`Введите второй массив`);

FOR I:=1 TO N DO

READ (B[I]);

SORTY (N,A); { сортировка А }

SORTY (N,B); { сортировка В }

Writeln (`Первый массив`);

FOR I: =1 TO N DO

WRITE (A[I]:8:3);

Writeln (`Второй массив`);

FOR I: = 1 TO N DO

WRITE(B[I]:8:3)

END.

1.2. Расположение процедур в программе

Процедуры могут быть вложенными друг в друга, как на рисунке 2.

Рис.2. Пример расположения вложенных ( внутренних ) процедур

Р1 и Р3 – внешние процедуры,

Р2 – внутренняя.

При таком расположении обращение к внутренней процедуре возможно только из охватывающей ее процедуры P1, а из других внешних (на рисунке Р3) – невозможно. Более оптимальным является расположение процедур в виде рис. 3, на котором все процедуры являются внешними по отношению друг к другу.

Рис.3. Внешнее расположение процедур

При таком расположении:

1) любая процедура имеет доступ к любой другой (в том числе и к самой себе);

2) облегчается отладка процедур, т. к. они могут быть написаны и отлажены независимо друг от друга.

2. Функции

Функция — это законченный программный модуль, который позволяет получить один результат.

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

Пример.

Program . . .;

Const

. . .

VAR

. . .

Функция 1

. . . . .

Функция n

BEGIN { основная программа }

. . . . .

END.

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

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

Описание локальных переменных

BEGIN

. . . .

имя : = выражение;

. . . .

END;

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

Пример.

Оформить в виде функции операцию возведения вещественного числа в целую степень.

FUNCTION STEPEN(X:REAL;N:iNTEGER):REAL;

VAR

I:INTEGER;

P:REAL;

BEGIN

If n = 0 then

Stepen := 0

else

Begin

If n > 0 then

Begin

P := 1;

For i := 1 to n do

P := P*n;

End

else

Begin

If x <> 0 then

For i := 1 to n do

P := P/x;

else P := 0;

End;

End;

Stepen := P;

END;

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

Формальные параметры функции – только параметры-значения. При ее вычислении они не изменяются. Аргументы функции могут быть любых типов:

1) скалярные — числа,символы,булевские;

2) массивы;

3) другие типы.

Сама функция (результат) имеет только скалярный тип, т.е. число (целое, вещественное), а также символьный или булевский.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]