Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Массивы

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

Типы данных, которые могут быть помещены в массивы, различны. Это могут быть и стандартные типы (таблица 1.1), и определенные пользователем, в том числе и записи (структуры).

Пример определения массивов на языке Pascal:

 

S: array [1..10] of integer; // Определение массива с

// именем S, состоящего из

// 10 элементов целого типа

// с индексами с 1 по 10

MTelegka: array [1..20] of TTelegka; // Определение массива с

// именем MTelegka, состоящего из

// 10 элементов типа TTelegka

// с индексами с 1 по 10

 

На языке C++:

 

int S[10]; // Определение массива с

// именем S, состоящего из

// 10 элементов целого типа

// с индексами с 0 по 9

TTelegka MTelegka[20]; // Определение массива с

// именем MTelegka, состоящего из

// 10 элементов типа TTelegka

// с индексами с 0 по 9

 

Доступ к конкретному элементу массива осуществляется с помощью индекса. На языке Pascal:

 

S[2]:= 10; // Элементу массива S c индексом 2

// присваивается значение 10

MTelegka[i].v:= 1.5; // Переменной v записи MTelegka с

// индексом по значению переменной i

// присваивается значение 1.5

 

На языке C++:

 

S[2] = 10; // Элементу массива S c индексом 2

// присваивается значение 10

MTelegka[i].v = 1.5; // Переменной v записи MTelegka с

// индексом по значению переменной i

// присваивается значение 1.5

 

Необходимо отметить, что на языке Pascal начальный индекс массива указывается пользователем и может быть любым. В то же время в C++ индекс массива всегда начинается с 0. Поэтому в этом случае максимальный индекс массива равен длине массива минус 1.

Программа в общем случае состоит из набора процедур и функций, вызываемых при заранее определенных событиях, или пользователем при написании программы. В свою очередь каждую процедуру либо функцию можно рассматривать как отдельную программу со своим именем, своими переменными и константами. При этом имеет смысл разграничить области действия (и существования) некоторых переменных только в пределах этих подпрограмм. Например, если в конкретной подпрограмме используется переменная «i» в качестве счетчика цикла, то ее лучше объявить как локальную, действующую только в пределах этой подпрограммы. Тем самым экономится ОЗУ компьютера, так как переменная уничтожается при выходе из подпрограммы. С другой стороны, это же имя «i» можно будет использовать для объявления другой локальной переменной в другой подпрограмме. Если требуется хранение данных, доступных из любой подпрограммы пользовательской программы, то такие переменные объявляются глобальными и, соответственно, такое имя уже считается зарезервированным и недоступным для других переменных.

Пример объявления глобальных и локальных переменных и констант в программе в среде Delphi:

 

...

var

Form1: TForm1; // Объявление глобальной переменной

// Form1 – текущая форма программы

Revers: boolean; // Объявление глоб. переменной Revers

// логического типа

const

Pi: real = 3.14159265; // Объявление глобальной константы

// типа с плавающей запятой

implementation // Определяет внешнюю видимость этого

// модуля

{$R *.dfm}

 

// Процедура, вызываемая при нажатии кнопки Button1 на форме

procedure TForm1.Button1Click(Sender: TObject);

var

i: integer; // объявление локальной внутри процедуры

// переменной «i»

const

A: array [0..9] of char = ('0','1','2','3','4','5','6','7', '8','9'); // объявление локального массива констант

begin // начало процедуры

for i:=0 to 10 do

begin

 

end;

end; // конец процедуры

 

// Функция пользователя

function Polozenie ():real;

var

a,b,c:real; // объявление локальных внутри процедуры

i:integer; // переменных, в том числе «i»

begin // начало функции

 

end; // конец функции

 

На языке C++

 

TForm1 *Form1; // Объявление глобальной переменной

// Form1 – текущая форма программы

bool Revers; // Объявление глоб. переменной Revers

// логического типа

 

const double Pi = 3.14159265; // Объявление глобальной константы

// типа с плавающей запятой

//--------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//--------------------------------------------------------------

// Процедура, вызываемая при нажатии кнопки Button1 на форме

void __fastcall TForm1::Button1Click(TObject *Sender)

{ // начало функции

int i; // объявление локальной внутри процедуры

// переменной «i»

// объявление локального массива констант

const char A[10] = {'0','1','2','3','4','5','6','7','8','9'};

 

...

} // конец функции

//--------------------------------------------------------------

double Polozenie (void)

{ // начало функции

double a,b,c;

int i;

 

} // конец функции

 




Поделиться с друзьями:


Дата добавления: 2015-07-02; Просмотров: 474; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.