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.


 

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

44222. Лига Арабских государств и ее роль в Интеграционном процессе арабского мира 358.5 KB
  Следует сказать, что в последние годы объем исследований и научных работ по интеграции арабского мира возрос, однако, до сих пор нет четкого анализа происходящих в этом регионе процессов. Они изучаются, главным образом, с точки зрения роли субъективного фактора, сознательных намерений тех или иных социальных групп, но в них не выделяются закономерности, тенденции, объективные факторы, обстоятельства.
44224. Охорона праці. Методичні вказівки 371 KB
  МЕТОДИЧНІ ВКАЗІВКИ до виконання розділу дипломного проекту Охорона праці Затверджено на засіданні кафедри безпеки життєдіяльності і інженерної екології Протокол № 3 від 30. Харків ХДТУБА 2010 Методичні вказівки до виконання розділу дипломного проекту Охорона праці для студентів спеціальностей....
44225. Влияние лыжного спорта на развитие физических качеств подростков 15-17 лет 505 KB
  Проблема исследования: ухудшение физических качеств школьников не занимающихся спортом. Объект исследования: физические качества школьников 1517 лет. Целью данной работы является сравнительный анализ физических качеств спортсменов лыжников и школьников не занимающихся спортом 1517 лет между собой. Для этого поставлены следующие задачи: изучить литературные источники по данной теме; изучить место лыжной подготовки в системе общего физического воспитания школьников; определить этапы исследования и развития физических качеств у лыжников...
44226. Психологическая реабилитация женщин после развода 2.94 MB
  Изучить особенности состояния женщин 25 – 32 летнего возраста после развода. Выявить особенности реакции на фрустрации, уровни тревоги и депрессии, а так же состояние самооценки женщин после развода. Определить степень потребности их в психологической реабилитации, и на основе изученного теоретического и практического материала внести коррективы в предложенные ранее программы помощи и реабилитации женщин после развода.
44227. Автоматизована система керування АСК «Радіомайстерня. Ведення обліку радіодеталей» 1.88 MB
  При цьому ємність магнітних стрічок була досить великою але за своєю фізичною природою вони забезпечували послідовний доступ до даних. Магнітні барабани надавали можливість довільного доступу до даних але були обмеженого розміру. До цього кожна прикладна програма яка потребувала зберігання даних у зовнішній пам’яті сама визначала положення кожної порції даних на магнітній стрічці або барабані і виконувала обміни між оперативною та зовнішньою пам’яттю за допомогою програмноапаратних засобів низького рівня. Крім того кожній прикладній...
44228. Операційна система Windows на прикладі сучасних систем 3.92 MB
  Працює в багатозадачному режимі. Використовує процесну форму (паралельно виконується кілька програм) та потокову форму (паралельно виконуються різні частини однієї програми). При одному процесорі багатозадачний режим реалізується так: попрацювавши якийсь час, задача у Windows 98 автоматично розвантажується і керування передається наступній задачі. При перебоях під час розв'язування задачі її можна зняти без розвантаження всієї системи
44229. Товарознавство та торгівельне підприємництво. Методичні вказівки 584.5 KB
  Методичні вказівки містять загальні рекомендації щодо написання бакалаврської роботи тематику робіт загальні вимоги до написання оформлення та виконання окремих розділів. Організація виконання випускної бакалаврської роботи Керівництво бакалаврськими випускними роботами Напрямки і теми бакалаврських випускних робіт Структура і зміст випускної бакалаврської роботи. Структура бакалаврської випускної роботи
44230. Обоснование эффективности расширения деятельности ООО «ДЕЛАН» 624.5 KB
  Сущность и основные показатели экономической эффективности деятельности предприятия Сущность и критерии экономической эффективности деятельности предприятия Показатели эффективности деятельности и факторы влияющие на эффективность предприятия Пути повышения эффективности деятельности предприятия