Здавалка
Главная | Обратная связь

Пример программы с использованием процедуры, определенной пользователем



В качестве примера опишем процедуру, которая прерывает выполнение программы и выдает соответствующее сообщение об ошибке.

procedure Abort(Msg: string);

begin

Writeln('Ошибка: ', Msg);

Halt(1);

end ;

В данной процедуре пользователя использована переменная Msg типа string, в которой хранится текст сообщения о характере ошибки, вызвавшей прерывание программы. Для прерывания выполнения программы используется стандартная процедура Halt из стандартного библиотечного модуля System.

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

В качестве примера приведем фрагмент программы, в котором используется описанная выше процедура Abort.

program DemoProc; {Подсчет суммы десяти введенных целых положительных чисел: если будет введено отрицательное число, прервать выполнение}

const

Limit= 10; {Ограничение на количество вводимых чисел)

var

Count, Item, Sum : integer;

procedure Abort(Msg: string); {описание и реализация процедуры Abort}

begin

Writeln('Ошибка: ', Msg);

Halt(1);

end ;

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

Count:= 0;

Sum: = 0 ;

while (Count < Limit) do {Условие выполнение цикла}

begin

Count:= Count+1;

Write('Введите ', Count, '-e целое число: ');

Readln(Item);

if Item < 0 then {Если введено отрицательное число}

Abort('Введено отрицательное число! '); {Вызов процедуры}

Sum:= Sum+Item;

end;

Writeln('Сумма введенных чисел равна ', Sum);

end.

В разделе описания программы описываются константа Limit, ограничивающая количество вводимых чисел; в разделе описания переменных описываются переменные Count, Item, Sum типа integer.

В начале программы обнуляются значения количества введенных чисел Count и их сумма Sum. Потом выполняется цикл, пока очередное вводимое число меньше предельного, заданного значением константы Limit. Сначала устанавливается номер очередного числа, затем на экран выводится приглашение "Введите 1-е (2-е и т.п.) число", считывается значение числа с клавиатуры в переменную Item. Затем проверяется условие Item<0.

Если условие выполняется, то вызывается Abort, которой передается фактический параметр-значение типа string: "введено отрицательное число". Это значение присваивается формальному параметру Msg процедуры Abort. Процедура Abort выводит на экран сообщение об ошибке и печатает текст сообщения - значение параметра Msg: "Ошибка: введено отрицательное число", после чего вызывает стандартную процедуру Halt(1), которая прерывает выполнение программы.

Если условие Item<0 не выполняется, то значение суммы Sum увеличивается на значение введенного числа Item, и управление передается в заголовок цикла для проверки условия Count < Limit. Если условие соблюдается, то тело цикла выполняется еще раз, иначе цикл завершается, а управление в программе передается на оператор, следующий за циклом, т. е. за резервированным словом end, обозначающим окончание составного оператора в теле цикла. После этого на экран выводится сообщение: "Сумма введенных чисел равна" и печатается значение переменной Sum. На этом выполнение программы завершается.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.