Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Procedure Р; S;)






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

Напишем первый вариант программы вычисления площади четырехугольника:

 

Program F1(input, output);

var АВ, ВС, CD, DA, AC, s1, s, a, b, c, p: real;

Procedure str1;

Begin

p: =(a+b+c)/2;

s: = sqrt(p*(p - a)*(p - b)*(p-c))

End;

Begin

Read(AB, ВС, CD, DA, AC);

a: = AB; b: = ВС; c: = AC; str1; s1: = s;

a: = DA; b: = AC; c: =CD; str1; s1: =s1+s;

Write(s1)

End.

В программе - два обращения к процедуре str1. Непосредственно перед каждым обращением идет группе операторов присваивания, задающих значения переменных а, b и с; каждое обращение влечет выполнение процедуры; после обращения к процедуре переменная s имеет значение, равное площади соответствующего треугольника.

Итак, связь процедуры str1 с остальными операторами программы осуществляется через переменные а, b, с, s; в программе имеется еще переменная р, которая является вспомогательной внутри процедуры. Можно избежать совпадения вспомогательных переменных с переменными основной программы. Паскалем разрешается включать в описание процедуры совокупность описаний переменных:

Procedure str2;

var р: real;

Begin

p: =(a + b+c)/2;

s: = sqrt(p*(p -a)*(p - b)*(p - c))

End;

Переменная, описанная в процедуре, называется локальной по отношению к процедуре. Слово «локальная» означает местная, имеющая местное назначение. Если переменная локальная по отношению к некоторой процедуре, то при выполнении этой процедуры работа с переменной р никак не будет влиять на значение переменной р, описанной в программе вне процедуры (если такая переменная имеется). Как только процедура будет выполнена значение локальной переменной р забудется. Аналогично, в процедуре могут описываться и использоваться локальные метки. Типы и процедуры тоже могут быть локальными по отношению к процедуре (мы этой возможностью пользоваться не будем). Введение локальных меток, переменных и т. д. делает оформление процедуры похожим на оформление программы.

Если в программе F1 использовать вместо процедуры str1 процедуру str2, то можно из описания переменных программы удалить переменную р. Но можно и оставить описание прежним.

Продемонстрированный способ использования процедур неудобен из-за большого числа операторов присваивания, которые до обращения к процедуре определяют значения переменных a, b и с. Есть и другой способ - описать процедуру с параметрами (аргументами), что позволит обращаться к процедуре, например, так:


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал