Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Программа 7.2



Program editor;

var p: char; dl: integer;

Procedure linia (pod: char; kol: integer);

var i: integer;

begin {Начало тела процедуры}

write('{');

for i:=1 to kol do write (pod);

writeln('}');

end; {Конец тела процедуры}

begin {Начало тела программы}

writeln('Введите символ для подчеркивания');

readln(p);

writeln('Введите длину строки подчеркивания');

readln(dl);

linia (p, dl); { Вызов процедуры }

linia ('*', 50); { Вызов процедуры }

….

end. { Конец тела программы }

Отличие этой программы от предыдущей заключается в описании процедуры. Во-первых, в заголовке после имени заданы формальные параметры (pod: char; kol: integer), предназначенные для передачи информации о выбранном символе (pod) и длине строки (kol). Во-вторых, в подпрограмме идентификаторы указанных параметров заменили фиксированные аргументы ('_' и 78).

В теле программы появились операторы ввода исходных данных - readln(p) и readln(dl).

Первый вызов подпрограммы теперь снабжен фактическими параметрами (linia (p, dl)), которые вводятся с клавиатуры, а затем передаются соответствующим формальным параметрам (pod и kol). Обратите внимание, что описание переменных совпадает.

При втором вызове подпрограммы (linia ('*', 50)) аргументы заданы постоянными величинами ('*' и 50), которые также передаются соответствующим формальным параметрам (pod и kol).

Итак, описание процедуры включает заголовок и тело процедуры. Заголовок состоит из зарезервированного слова Procedure, идентификатора (имени) процедуры и необязательного, заключенного в круглые скобки списка формальных параметров с указанием типа каждого параметра. Общий вид:

Procedure имя (формальные параметры);

Имя процедуры - идентификатор, уникальный в пределах программы. Тело процедуры представляет собой локальный блок, по структуре аналогичный программе:

Procedure имя (формальные параметры);

<разделы описаний>

Begin

<раздел операторов>

end;

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

идентификатор процедуры (параметр,...);

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

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

Пример 7.3. Переписать положительные элементы массивов X (N), Y (M) в массив Z подряд. Запись положительных элементов в массив осуществить в подпрограмме. Принять ограничения: N £ 100 и M £ 100.

В подпрограмме должна осуществляться запись положительных элементов исходного массива в массив результатов. Для этого в подпрограмму необходимо передать следующие параметры: имя и количество элементов исходного массива, имя результирующего массива. Поскольку в массив результатов Z записываются подряд положительные элементы из нескольких массивов, в списке параметров должны фигурировать также: входной параметр L - номер индекса, начиная с которого необходимо осуществлять запись в массив результатов; выходной параметр К - индекс последнего положительного элемента исходного массива при предыдущем обращении к подпрограмме. После окончания записи элементов в массив результатов этот параметр определяет количество элементов, записанных в массив результатов.

При первом обращении к подпрограмме в нее передается имя входного массива Х, результат - имя выходного массива Z, передается количество элементов массива Х, значение входного параметра L (L = 0, если запись осуществляется в массив Z, начиная с первого элемента), результат подпрограммы - выходной параметр К, определяющий количество элементов, записанных в массив Z.

При втором обращении необходимо передать соответственно Y, получить Z, передать M и K (результат предыдущего обращения к подпрограмме), получить новое значение K. После второго обращения к подпрограмме К - суммарное количество элементов, записанных в массив Z после выполнения двух подпрограмм.

Блок-схемы программы и процедуры приведены на рис.7.2.





Дата публикования: 2015-02-18; Прочитано: 190 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...