Паскаль. Основы программирования


Глава Подпрограммы на паскале Процедуры и функции Рекурсия - часть 3


е., требования такие же, как и к имени программы (имя нашей процедуры - nod):

Procedure nod(a, b : integer; var

n : integer);

 

Далее, в скобках, записываются имена переменных и их типы, значения которых будут вводиться

в процедуру из основной программы, в нашем случае, их две (a, b) и они имеют тип integer.

Сразу надо заметить, что имена этих переменных могут не совпадать с именами переменных в основной программе, скажем мы могли их обозначить m, n или любыми другими именами.

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

из нее в основную программу. Такая переменная в нашем примере одна - n. Она выведет значение НОД чисел a и b. Ее имя также может иметь одноименное в основной программе и это нисколько не отразится на работе процедуры.

Обратите внимание, что перед переменными, значения которых вводятся из основной программы, не ставится слово var, а перед переменной, значение которой выводится

в основную программу, это слово записано. Это очень важное обстоятельство!

Так, если поставить var перед a и b, то компилятор будет воспринимать эти переменные как выходные и вводимые для них значения воспринимать не будет, и, наоборот, если var не будет записано перед выходной переменной, то компилятор воспримет ее как входную и выводить ее значение в основную программу не будет.

Дальнейшее построение процедуры строится также, как и основная программа на Паскале.

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

В нашем примере процедура nod будет такой:

  Procedure nod(a, b : integer; var

n : integer);

       var

           r : integer;

       begin

          repeat

             r := a mod b;

             a := b; b := r

          until b = 0;

          n := a




Начало  Назад  Вперед



Книжный магазин