0 / 0 / 0
Регистрация: 21.05.2009
Сообщений: 15
1

Локальные и глобальные переменные.

09.06.2009, 10:10. Показов 26646. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ОГбьясните пожалуйста чем отличаются Procedure и Function
Да и что такое глобальные и локальные переменные
P.s прочитал книгу а так и непонел чо это такое и с чем его кушают
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2009, 10:10
Ответы с готовыми решениями:

Глобальные переменные
помогите переделать программу надо убрать глобальные переменные у самого не получается=(( program...

глобальные переменные
Помогите пожалуйста избавиться от глобальных переменных! Заношу все в процедуры, программа не идет...

Глобальные и локальные переменные, одна и та же прога в процедуре Не работает, а просто так работает. Почему?
Здравствуйте, есть программка которая переводит из 2-ной системы в 10-ную. Она работает. А вот...

Глобальные переменные
Написать программу, которая с помощью подпрограммы процедуры находит сумму элементов одномерного...

6
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
09.06.2009, 10:20 2
прочитал книгу а так и непонел чо это такое и с чем его кушают
Если думаешь, что здесь народ круче чем авторы книг по Паскалю, то ошибаешься. Там все-таки спецы пишут. Ну, а если не понял, значит не дано. Я вот по китайски совсем не понимаю, так что, стреляться?
0
0 / 0 / 0
Регистрация: 21.05.2009
Сообщений: 15
09.06.2009, 10:22  [ТС] 3
Ну хотяб обьясните чо такое глобальные и локальные переменные
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
09.06.2009, 10:52 4
http://rsc-team.ru/cgi-bin/ind... ion&ind=13

Добавлено через 2 минуты 43 секунды
Или вот.
Локальные и глобальные идентификаторы
Использование процедур и функций в Паскале тесно связано с некоторыми особенностями работы с идентификаторами (именами) в программе. В часности, не все имена всегда доступны для использования. Доступ к идентификатору в конкретный момент времени определяется тем, в каком блоке он описан.

Имена, описанные в заголовке или разделе описаний процедуры или функции называют локальными для этого блока. Имена, описанные в блоке, соответствующем всей программе, называют глобальными. Следует помнить, что формальные параметры прцедур и функций всегда являются локальными переменными для соответствующих блоков.

Основные правила работы с глобальными и локальными именами можно сформулировать так:

Локальные имена доступны (считаются известными, "видимыми") только внутри того блока, где они описаны. Сам этот блок, и все другие, вложенные в него, называют областью видимости для этих локальных имен.
Имена, описанные в одном блоке, могут совпадать с именами из других, как содержащих данный блок, так и вложенных в него. Это объясняется тем, что переменные, описанные в разных блоках (даже если они имеют одинаковые имена), хранятся в разных областях оперативной памяти.
Глобальные имена хранятся в области памяти, называемой сегментом данных (статическим сегментом) программы. Они создаются на этапе компиляции и действительны на все время работы программы.

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

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

Рекомендуется все имена, которые имеют в подпрограммах чисто внутреннее, вспомогательное назначение, делать локальными. Это предохраняет от изменений глобальные объекты с такими же именами.
3
113 / 113 / 13
Регистрация: 01.10.2008
Сообщений: 876
09.06.2009, 10:57 5
vVv-3, procedure and function- это подпрограммы, единственное отличие в них это то что функции возвращают значения, а процедуры нет
в некоторых языках типа С++ даже нет четкого разделения процедур от функций

f
Pascal
1
2
3
4
5
6
7
8
unction sum(x, y: integer): integer;
begin
      sum:= x+y;
end;
 
begin
   write(sum(2, 2));
end;
программа выведет на экран 4

Добавлено через 4 минуты 51 секунду
глобыльные переменые действуют во всей программе, а локальные тока в подпрограмме

var
a: integer;

function sum(x, y: integer): integer;
var
b: integer;
begin
a:= x-y; {a - глобальная переменная она существует во всей программе}
b:= x*y; {b- локальная, она существует тока в этой функции}
sum:= x+y;
end;

begin
a:= sum(2, 2); {можно, a- глобальная}
b:= 5; {нельзя, b существует тока в подпрограмме}
end.
1
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
09.06.2009, 11:01 6
Цитата Сообщение от vVv-3 Посмотреть сообщение
Народ если вы такие умные обьясните пожалуйста чем отличаются Procedure и Function
Да и что такое глобальные и локальные переменные
P.s прочитал книгу а так и непонел чо это такое и с чем его кушают
На форуме есть моё сообщение смотрите Тут, в этой теме я даю пояснение глобальных и локальных переменных на простых примерах.
0
2 / 2 / 0
Регистрация: 26.12.2013
Сообщений: 44
20.05.2014, 23:39 7
Процедура выполняет код а функция в отличии от процедуры возвращает значение в зависимости чем объявлена эта функция.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2014, 23:39
Помогаю со студенческими работами здесь

Локальные и глобальные переменные
var a,b,c,d:integer; procedure p(x:integer; var a:integer); var c:integer; begin x:=5;...

Модули и глобальные переменные
Писала курсовой проект, зная только задание. Позже выяснилось, что требуется использование модулей...

Внутриблочные переменные не могут иметь те же имена, что и переменные из блока верхнего уровня
program matr; uses crt; const n = 5; m = 5; var

глобальные и локальные переменные
Как лучше реализовывать для достижения минимального кода/ максимального быстродействия? 1 вариант:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru