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.


 

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

52106. Agatha Christie 72 KB
  Аgatha Mary Clarissa Christie is possibly the worlds most famous detective story writer. She wrote 79 novels and several plays. Her sales outnumber those of William Shakespeare. However, behind her 4,680,000 words was a painfully shy woman whose life was often lonely and unhappy.
52107. Я і мої друзі - лідери здоровя 269.5 KB
  Так працюючи за програмою Сприяння просвітницькій роботі Рівний Рівному серед молоді України щодо здорового способу життя я маю можливість формувати здоровязберігаючу компетентність учнів орієнтувати дітей та молодь на здоровий спосіб життя виховувати у них відповідальне ставлення до здоровя. Однією із дієвих форм пропаганди учасниками програми здорового способу життя серед широких учнівських мас є створення і виступи агітбригади яка є близькою і зрозумілою для всіх томущо в ній є творче вираження та активна подача великого...
52108. Was ist Deutschland für uns 38 KB
  Die Musik ist eine Kunst. Ich habe Music gern. In Deutschland können Sie Philharmonie besuchen, und schöne Music hören. Hören die Werk des bekannten Musikers. Solche wie: Iogan Bach, Ludwig van Bethoven, Brahms Johannes. Horen die Werk des Großen Musikers.
52109. Сценарий выступления агитбригады молодых творческих педагогов 88.5 KB
  Карманова Деньгиденежки затем на мотив песни группы Гринджоли Разом нас багато Разом вас багато Всіх не прогодувати Председатель ПК: ах так Ну теперь держитесь отходит в сторону зовёт членов ПК Члены Пк берут транспаранты: ПК нас защитит и ходят по сцене со словами: Разом нас багато Всіх не подолати 3 раза Министр выглядывает кусает губыприносит приказ на повышение З п председателю ПК Все радуются обнимаютсяуходят со сцены Вера Васильевна: вот это да к самому министру не побоялись поехать Ирина Владимировна:...
52110. World AIDS Day is December 1st 70.5 KB
  Ukraine has an HIV/AIDS epidemic. UNAIDS estimates the number of people infected with HIV/AIDS to be between 260 000 and 590 000. The cases of HIV have doubled every year for the past three years. Experts estimate that 1.4 percent of the adult population is HIV positive or has AIDS. This is the highest rate of infection in Eastern Europe and the CIS states. Unfortunately, it is also estimated that about 90 percent of these people don't know, and arent registered with the government thus not receiving the treatment.
52111. Оглянись внимательно вокруг 49.5 KB
  Что по вашему мнению мы должны заложить в фундамент Дома личности способности здоровье окружение Стены можно сравнить с характером человека Их каких кирпичиков по вашему мнению мы возведём стены Дома личности доброта терпение любовь дружба понимание милосердие терпение уважение целеустремленностть Что может быть светом в окошке нашего дома Умение любить людей Что украшает наш дом жизнерадостность оптимизм внешность увлечения духовность И наконец что венчает любой дом Его крыша. Все названные...
52112. Активизация учащегося на уроке как фактор повышения его эффективности 136.5 KB
  В учебном заведении особое место занимают такие формы занятий которые обеспечивают активное участие в уроке каждого учащегося повышают авторитет знаний и индивидуальную ответственность учащихся за результаты учебного труда. Вопросы и их роль в активизации деятельности учащихся [7] 2. Приемы активизации [8] Уровни познавательной активности [9] Принципы активизации познавательной деятельности учащихся. [17] Факторы побуждающие учащихся к активности.
52113. АКТИВІЗАЦІЯ ПІЗНАВАЛЬНОЇ ДІЯЛЬНОСТІ УЧНІВ НА УРОКАХ УКРАЇНСЬКОЇ МОВИ ТА ЛІТЕРАТУРИ 115 KB
  Сучасний етап історичного розвитку України характеризується істотними змінами в житті її народу оновленням усіх сфер діяльності людини переоцінкою та утвердженням у свідомості нації нових світоглядних орієнтацій. Згідно із законом України Про освіту Державною національною доктриною розвитку освіти України в XXI столітті Концепцією загальної середньої освіти ми маємо здійснити кардинальний перехід від традиційного інформаційнопояснювального навчання зорієнтованого на передачу готових знань до особистісно розвивального спрямованого не...
52114. Створення на уроці умов для підвищення пізнавальної акивності учнів 130 KB
  Нові завдання шкільної освіти в Україні що спрямовані на гуманізацію та демократизацію всього навчального процесу в школі визначають нові пріоритети навчання і виховання потребують формування ініціативної особистості здатної до раціональної творчої праці. Тому ми не повинні забувати про те що сучасні діти не такі якими були ми отже вони потребують від сучасного навчання чогось нового. Формування пізнавального інтересу необхідна умова шкільного навчання. Стійкий пізнавальний інтерес ознака готовності дитини до навчання в школі.