Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Pascal ABC Составлении программм вычисления следующих функций нужен грамотный взгляд на вещи :cry: https://www.cyberforum.ru/ pascalabc/ thread2387806.html Переделать код под аналогично другой вариант Pascal ABC
Помогите переделать этот код по это задание: 1. Выполнить вручную расчет первых двух значений дискретной функции, являющейся решением данного дифференциального уравнения. Дифференциальное уравнение Начальное условие Интервал интегрирования Шаг y'=1+y*sin⁡x-2*y y(0)=0 0.1 Решить дифференциальное уравнение двумя способами: методом Эйлера и методом Рунге–Кутта четвертого порядка....
Pascal ABC Сложение чисел и сравнение https://www.cyberforum.ru/ pascalabc/ thread2387437.html
Напишите пж программу которая складывает сначала 5 чисел и другие 5 чисел и потом показывает большие из них(9 класс)
Pascal ABC Нарисовать бабочку в PascalABC https://www.cyberforum.ru/ pascalabc/ thread2387127.html
Как на рисунке
Двумерный массив заполнен случайными числами интервал [5.100]. Найдите пару пар чисел Pascal ABC
Двумерный массив заполнен случайными числами интервал . Найдите пару пар чисел.
Pascal ABC Сколько еще нужно раскрасить, чтобы закончить окраску коридора? 2. В школьном коридоре необходимо покраска пола длиной 56 м. После окраски коридора 22 метра, окраска была завершена. Сколько еще нужно раскрасить, чтобы закончить окраску коридора? На казахском; Мектеп коридорында ұзындығы 56 м, еденді бояу керек. Дәліздің ұзындығы 22 метр бояғаннан кейін А кг бояу аяқталды. Дәлізді бояуын аяқтау үшін тағы қанша бояу керек? https://www.cyberforum.ru/ pascalabc/ thread2387002.html
Pascal ABC Модуль: Вернуть в новый массив только положительные элементы Поместить в модуль подпрограмму, возвращающую только положительные элементы массива в новый массив. Продемонстрировать работу модуля в основной программе. Помогите пожалуйста :) https://www.cyberforum.ru/ pascalabc/ thread2386884.html Pascal ABC Изменение глобальное переменной на локальную
Измените глобальную переменную a на любую другую локальную переменную program task433; const n = 2; type Polinom = array of real;
Pascal ABC Программирование алгоритмов ветвящихся структур Помогите пожалуйста с задачей. X=\begin{cases}a\cdot b+5 & \text{ if } a\,<\,b \\ -5 & \text{ if } a=b \\ (b-a)/b & \text{ if } a\,>\,b\end{cases} https://www.cyberforum.ru/ pascalabc/ thread2386808.html Pascal ABC Описать функцию p (A), подсчитывающую произведение элементов множества A типа S. (Например, sum ([5,8,23] = 920.) Описать функцию p (A), подсчитывающую произведение элементов множества A типа S. (Например, sum ( = 920.)) Программа: введите множество A (ноль используйте как прекращение ввода). Выдайте, вызвав функцию p, произведение элементов множества A. type S = set of 0..50; https://www.cyberforum.ru/ pascalabc/ thread2386748.html
Pascal ABC Дан список, элементы которого являются действительными числами. Найти процент отрицательных элементов
Дан список, элементы которого являются действительными числами. Найти процент отрицательных элементов
Pascal ABC Дан список L, элементы которого являются действительными числами. Удалить максимальный элемент https://www.cyberforum.ru/ pascalabc/ thread2386653.html
Дан список L, элементы которого являются действительными числами. Удалить максимальный элемент
Модератор
9656 / 4976 / 3265
Регистрация: 17.08.2012
Сообщений: 15,476
18.01.2019, 02:50 0

Локальные и глобальные переменные - Pascal ABC - Ответ 13250526

18.01.2019, 02:50. Показов 6767. Ответов 2
Метки (Все метки)

Лучший ответ Сообщение было отмечено I LOVE MATH как решение

Решение

Объявлять глобальные переменные до подпрограмм нужно только тогда, когда это действительно необходимо, поскольку это может порождать трудно локализуемые ошибки.

Пусть блок - это программа или подпрограмма. Тогда программу можно представить как иерархию блоков. Программа (основной блок) может содержать вложенные (более низкие по иерархии) блоки (подпрограммы), которые, в свою очередь, могут также содержать вложенные (ещё более более низкие по иерархии) блоки (локальные подпрограммы), которые, в свою очередь... Ну, и так далее.

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

Получается, что, если глобальные переменные описаны до подпрограммы, то они доступны и в подпрограмме, однако, если в подпрограмме есть локальная переменная или формальный параметр с тем же именем, что и глобальная переменная, то глобальная переменная из подпрограммы недоступна. В данном случае, это "a" и "c".
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//начало основного блока
var a,b,c,d:integer;
    //начало вложенного блока
    procedure p(x:integer; //формальный параметр, передаётся по значению,
                           //поэтому фактический параметр не изменяется
    var a:integer //формальный параметр, передаётся по ссылке,
                  //меняет значение фактического параметра
                  //и перекрывает видимость глобальной переменной "a"
    );
    var c:integer; //локальная переменная, доступна только в процедуре,
                   //перекрывает видимость глобальной переменной "c"
    begin
    x:=5; //значение фактического параметра (глобальной переменной "a") не изменяется
    a:=6; //значение фактического параметра (глобальной переменной "b") изменяется,
          //значение глобальной переменной "a" не изменяется
    c:=7; //значение локальной переменной "с" изменяется,
          //значение глобальной переменной "c" не изменяется
    d:=8  //глобальная переменная "d" ничем не перекрыта, и её значение изменяется
    end;
    //конец вложенного блока
//(продолжение основного блока)
begin
a:=1; b:=2; c:=3; d:=4;
p(a,b);
write(a,' ',b,' ',c,' ',d)
//конец основного блока (после "end.")
end.


Вернуться к обсуждению:
Локальные и глобальные переменные Pascal ABC
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2019, 02:50
Готовые ответы и решения:

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

Локальные и глобальные переменные.
ОГбьясните пожалуйста чем отличаются Procedure и Function Да и что такое глобальные и локальные...

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

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

2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2019, 02:50
Помогаю со студенческими работами здесь

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

Глобальные и локальные переменные
def func3(): print(z) z = 20 z = 10 func3() Но ведь мы присвоили глобальной...

Глобальные и локальные переменные!
Какой будет ответ?

Глобальные и локальные переменные
Более того, при попытке обратиться к переменной сначала на чтение, потом на запись, мы получим...

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