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.


 

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

10124. Хранение информации. Файловая система 68.5 KB
  Файловая система Фа́йловая систе́ма англ. file system порядок определяющий способ организации хранения и именования данных на носителях информации ИТ оборудования и компьютерной техники. Она определяет формат содержимого и физического хранения информации котору...
10125. Хранение информации 28 KB
  Хранение информации. FAT это связный список который DOS использует для отслеживания физического расположения данных на диске и для поиска свободной памяти для новых файлов. Информация на винчестере хранится в виде отдельных файлов. Файлы могут быть разных размеров. Если...
10126. Реестр. Пакетный файл. Совместное использование ресурсов 42.5 KB
  Реестр. Реестр иерархически построенная база данных параметров и настроек в большинстве операционных систем Microsoft Windows.Реестр содержит информацию и настройки для аппаратного обеспечения программного обеспечения профилей пользователей предустановки. Большинство из...
10127. Предмет философии науки и ее место в науковедении 96 KB
  Предмет философии науки и ее место в науковедении ПРЕДМЕТ ФИЛОСОФИИ НАУКИ Сейчас в конце двадцатого века бросая взгляд в прошлое мы можем с уверенностью сказать что ни одна сфера духовной культуры не оказала столь существенного и динамичного влияния на обществ
10128. Структура современного науковедения и место в нем философии науки 47.5 KB
  Предмет философии науки и ее место в науковедении Философия науки как направление современной философии представлена множеством оригинальных концепций предлагающих ту или иную модель развития науки. Она сосредоточена на выявлении роли и значимости науки характ
10129. Предпосылки и историческое формирование науковедения и философии науки 46 KB
  Предпосылки и историческое формирование науковедения и философии науки Проблематика науковедения и его становление. Структура современного науковедения и место в нем философии науки. Философия науки изучение которой начинается является частью обширной об
10130. Образ науки в философии Аристотеля 37 KB
  Образ науки в философии Аристотеля. Первое приближение к такому подходу обнаруживаем у Аристотеля поскольку он структурирует познание. В Метафизике вопервых он разграничивает знание опыт и искусство. Опыт есть знание единичного а искусство  знание общ
10131. Образ науки в философии Ф. Бэкона 35.5 KB
  Образ науки в философии Ф. Бэкона В классической методологии Нового времени Ф. Бэкон обращается к образу науки – как настоящей или новой науки в противоположность средневековой схоластике. Наука в подлинном смысле еще не появилась настоящую науку предстоит созд...
10132. Образ науки в философии И.Канта 33.5 KB
  Образ науки в философии И.Канта. И. Кант поставил проблему общей природы научного знания. Наука рассматривается изнутри с точки зрения логики развертывания мысли и сформулирована фундаментальная проблема: научное знание обладает всеобщностью и необходимостью эт