36566

Область действия имен в программе

Контрольная

Информатика, кибернетика и программирование

В программах не использующих подпрограммы имена описанные в разделе описаний действуют во всей программе не вызывая какихлибо проблем. В подпрограммах могут использоваться свои локальные внутренние имена и кроме того она может также использовать глобальные внешние для неё имена из других подпрограмм или основной программы. Локальными именами подпрограммы называются те имена которые описаны в этой подпрограмме в её разделе описаний. Все остальные используемые в подпрограмме имена являются глобальными именами данной...

Русский

2013-09-22

29 KB

8 чел.

Область действия имен в программе.

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

Локальными именами подпрограммы называются те имена, которые описаны в этой подпрограмме (в её разделе описаний). Все остальные, используемые в подпрограмме имена, являются глобальными именами данной подпрограммы.

Правило действия локальных имён: все локальные имена доступны внутри подпрограммы и недоступны вне этой подпрограммы. Другими словами локальные имена теряют свои значения непосредственно при завершении подпрограммы. Пример: в процедуре print_f имена count, X, j - локальные имена.

Правило действия глобальных имён: все глобальные имена доступны внутри подпрограмм в том случае, если они отличны от локальных имён. В той же процедуре print_f глобальным именем является имя процедуры window (из модуля CRT).

Правило коллизии имён: Если локальные и глобальные имена (и типы) совпадают, то действует локальное имя, (оно "закрывает" такое же глобальное имя внутри подпрограммы).

Правило коллизии имён введено таким образом, что локальным объектам можно давать любые имена, не заботясь об их возможном совпадении с глобальными именами. Подпрограмму можно представлять как некоторый "черный ящик с полупрозрачными стенками ": для внешнего окружения она "черный ящик", а изнутри она прозрачна, так что "видит" всё внешнее окружение.

Формальные параметры подпрограммы локальны в этой подпрограмме, а фактические - глобальны.

Глобальные имена (не входящие в фактические параметры) в силу правила их действия могут выступать как ещё один механизм связи подпрограмм с внешним окружением (дополнительный к механизму параметров подпрограмм, который следует считать основным).

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

Задача 4.2.6(4)

program alex4;

type mas=array[1..4,1..5]of integer;

mass=array[1..5]of integer;

var a:mas;

p:mass;

i,j,y:integer;

procedure proc(x:mas;k:integer;var pr:integer);

var i:integer;

begin

pr:=1;

for i:=1 to 5 do

if x[i,k]<0 then pr:=pr*x[i,k];

end;

begin

for i:=1 to 4 do

for j:=1 to 5 do

read(a[i,j]);

for j:=1 to 5 do

proc(a,j,p[j]);

y:=sqr(1-p[5])+sqr(2-p[4])+sqr(3-p[3])+sqr(4-p[2])+sqr(5-p[1]);

writeln('y=',y);

readln;

end.


 

А также другие работы, которые могут Вас заинтересовать

48106. Психологія і педагогіка як наука про людину, її світ і діяльність 1.03 MB
  Педагогіка як наука про навчання і виховання людини. Психологія як наука про людину її світ і діяльність Психологія наука і система знань про закономірності механізми психічні факти і явища в житті людини. Протиріччя внутрішнього і зовнішнього в психіці людини розв'язуються через рухи дії і вчинки що виражають ставлення людини до інших людей природи й суспільства. Зміст і динамічну характеристику стосунків людини слід шукати в її мотивах потребах меті якої вона прагне а також у властивостях темпераменту характеру і здібностях.
48107. НАВЧАЛЬНО-МЕТОДИЧНЕ ЗАБЕЗПЕЧЕННЯ. РЕГІОНАЛЬНА ЕКОНОМІКА 2.25 MB
  Реформування економіки України на ринкових засадах вимагає не тільки суттєвих трансформацій у механізмах державного регулювання у інституційному середовищі у виробничій фінансовокредитній податковій бюджетній законодавчій системах України але й відповідних змін на регіональному рівні у соціальноекономічному житті регіонів. Це значно актуалізує значення регіональних аспектів розвитку України. Предмет регіональної економіки охоплює регіональні аспекти державної економічної політики економіки виробництва трудової та фінансової...
48108. Судово-бухгалтерська експертиза 337.5 KB
  Теоретичні основи судовобухгалтерської експертизи Сутність судовобухгалтерської експертизи та її місце в юридичній та економічній науках. Особливості судовобухгалтерської експертизи. Класифікація судовобухгалтерської експертизи. Предмет та обєкти судовобухгалтерської експертизи.
48109. Країнознавство. Опорний конспект лекцій 655 KB
  Курс Країнознавство€ є складовою циклу економічних дисциплін. Важливість та доцільність введення цього курсу пояснюється збільшуючим значенням комплексу знань про країни з якими Україна має культурні політичні та економічні зв’язки.
48110. Цивільний процес. Опорний конспект лекцій 3.66 MB
  У травні 2006 року Указом Президента України була схвалена Концепція вдосконалення судівництва для утвердження справедливого суду в Україні відповідно до європейських стандартів що ставить перед собою такі завдання як створення цілеспрямованої науково обґрунтованої методологічної основи розвитку правосуддя в Україні на найближчі десять років; визначення шляхів удосконалення законодавства у цій сфері; якісне підвищення фахового рівня суддівського корпусу. До них належать: 1 незалежність суддів і підпорядкування їх тільки закону; 2...
48111. Страхування. Опорний конспект лекцій 605 KB
  Зміст Тема 1 Страхування в умовах ринкової економіки. 10 Тема 3 Майнове страхування. 16 Тема 4 Страхування відповідальності .
48112. Політологія. Опорні конспекти 2.22 MB
  Курс Політологія саме й розрахований на формування у студентів політичної свідомості знань про політичні процеси та зацікавленість політичними проблемами минулого і сучасності. В процесі семінарських занять студенти закріплюють знання понятійнокатегоріального апарату курсу “Політологія†усвідомлюють сутність політичних феноменів та цінностей виявляють для себе зміст політичних теорій та політичної практики минулого та сучасності. Інформативний блок : Об’єкт предмет структура політології Політолóгія від грецького politik ...
48113. РЕЛІГІЄЗНАВСТВО. ОПОРНИЙ КОНСПЕКТ 588.5 KB
  Сутність та структура релігії Суспільство та релігія: аспекти взаємодії. Історичні форми релігії. Походження релігії основні концепції її виникнення. Ранні історичні форми релігії.