русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Вызов стандартной процедуры или функции


Дата добавления: 2014-11-28; просмотров: 877; Нарушение авторских прав


Для использования стандартной процедуры или функции к программе подключается тот или иной специализированный библиотечный модуль, в котором записана данная стандартная процедура или функция (исключение составляет модуль System, так как он подключается к программе автоматически), для чего имя специализированного библиотечного модуля указывается в разделе uses. Затем в программе записывается вызов процедуры или функции, для чего записывается ее имя и указываются фактические параметры, например: Pi, Sin(X), Chr(125), Inc(X,5). Так как после выполнения функции ее значение присваивается имени, то имя функции используется в выражении.

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

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

procedure <имя> (Формальные параметры);

const ... ;

type . . . ;

var . . . ;

begin

<операторы>

end ;

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

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

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. На этом выполнение программы завершается.



<== предыдущая лекция | следующая лекция ==>
Понятие структурного программирования. Подпрограммы. | Механизм передачи параметров


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.393 сек.