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.


 

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

30555. Акустические каналы утечки информации 701.6 KB
  Часть III дополнительно Оценка громкости звука Уровень звука дБ Источник звука Очень тихий 0 10 Усредненный порог чувствительности уха Тихий шепот 1. Порог слышимости соответствует мощности звука 1012 Вт или звуковому давлению на барабанную перепонку уха человека 2105 Па Абсолютный порог минимальное значение воздействующего раздражителя при котором возникает ощущение. Под воздействием звука Рак = 70 дБ кирпичная стена толщиной 05 м совершает вибрационные колебания с ускорением а≈3·105g.
30556. Задачи и принципы инженерно-технической защиты информации 50.5 KB
  Задачи Инженернотехническая защита информации одна из основных составляющих комплекса мер по защите информации составляющей государственную коммерческую и личную тайну. Этот комплекс включает нормативноправовые документы организационные и технические меры направленные на обеспечение безопасности секретной и конфиденциальной информации. Инженернотехническая защита информации включает комплекс организационных и технических мер по обеспечению информационной безопасности техническими средствами и решает следующие задачи:...
30557. Способы и средства инженерной защиты и технической охраны объектов 20.37 KB
  Проникновение злоумышленника может быть скрытным с механическим разрушением инженерных конструкций и средств охраны с помощью инструмента или взрыва и в редких случаях в виде вооруженного нападения с нейтрализацией охранников. Люди и средства ИЗТОО образуют систему охраны. В общем случае структура системы охраны объектов.
30558. Теорема о среднем для действительных функций одного действительного переменного. Теорема Ферма; теорема Ролля, теорема Лагранжа. Примеры, показывающие существенность каждого условия в теореме Ролля: теоретическая интерпретация 91.81 KB
  Все вышеперечисленные теоремы являются основными теоремами дифференциального исчисления поэтому сначала введем понятие дифференцируемости функции. Понятие дифференцируемости функции. Выражение ∆x называется дифференциалом функции fx в точке x0 соответствующим приращению аргумента ∆x и обозначается символом dy или dfx0. При этом приращение функции ∆y определяется главным образом первым слагаемым т.
30559. Первообразная и неопределенный ∫. Опр. первообразной. Опр. неопределенного ∫, свойства. Опр. по Риману. Необходимое и достаточное условие интегрируемости. Ньютон-Лейбниц 23.61 KB
  Функция Fx называется первообразной для функции fx на интервале b если в любой точке х из интервала b функция Fx дифференцируема и имеет производную F’x=fx. Совокупность всех первообразных функций для данной функции fx на интервале b называется неопределенным интегралом от функции fx на этом интервале и обозначается где fxdx – подынтегральное выражение fx – подынтегральная функция x – переменная интегрирования. Операцию нахождения первообразной восстановление функции по ее производной называют интегрированием...
30560. Непрерывные функции в Rn . Дифференцируемые функции в Rn .. Необходимые и достаточные условия дифференцируемости функции в точке. Полный дифференциал функции нескольких переменных 60.52 KB
  Дифференцируемые функции в Rn . Необходимые и достаточные условия дифференцируемости функции в точке. Полный дифференциал функции нескольких переменных.
30561. Теорема о дифференцируемости сложной функции. Правила дифференцирования. Производная по направлению. Градиент 65.41 KB
  Требования доктрины информационной безопасности РФ и ее реализация в существующих системах информационной безопасности. Доктрина информационной безопасности Российской Федерации. Понятие и назначение доктрины информационной безопасности. 9 сентября 2000 года президент РФ Владимир Путин утвердил Доктрину информационной безопасности РФ.
30562. Локальный экстремум функции многих переменных. Достаточные условия экстремума 45.86 KB
  ТочкаM0x0;y0 внутренняя точка области D. Если в D присутствует такая окрестность UM0 точки M0 что для всех точек то точка M0 называется точкой локального максимума. А если же для всех точек то точка M0 называется точкой локального минимума функции zxy. поясняется геометрический смысл локального максимума: M0 точка максимума так как на поверхности z =z xy соответствующая ей точка C0 находится выше любой соседней точки C в этом локальность максимума.
30563. Условный экстремум функции многих переменных. Необходимое условие экстремума. Метод множителей Лагранжа 274 KB
  Условный экстремум функции многих переменных. Пусть требуется найти максимумы и минимумы функции f х у при условии что х и у связаны уравнением х у = 0. Подберём так чтобы для значений х и у соответствующи экстремуму функции f х у вторая скобка в равенстве 5 обратилась в нуль метод Лагранжа. Метод неопределенных множителей Лагранжа Пусть функции fx1 x2 xn и Fix1 x2 xn i = 12 k дифференцируемы в некоторой области D с Rn .