Лекция 9. Массивы и константы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лекция 9. Массивы и константы



Здесь вы познакомитесь с массивами и константами, а также научитесь пользоваться репозиторием Delphi, в котором хранятся шаблоны и мастера для многих форм различного вида и назначения. Применение нового материала на практике.

Массивы

Немного сложная, но, безусловно, необходимейшая тема в программировании. Массив – это формальное объединение нескольких однотипных переменных в одну. То есть, массив рассматривается как одна переменная, он имеет одно имя, но на самом деле там имеется несколько переменных одного типа. Массивы, как и переменные, объявляются в разделе переменных var, и имеют такой синтаксис:

Имя_переменной: array [диапазон значений] of Тип_переменных_в_массиве;

Пример:

var

a: Integer; //переменная целого типа

b: array [1..10] of Integer; //массив целого типа

begin

Обратите внимание, что диапазон значений в массиве указывается произвольно, между первой и последней цифрой нет пробелов, но обязательны две точки. Пример диапазона может быть и таким: [5..7], какие цифры назначать – решать Вам. Обычно в практике приходится начинать диапазон с 1 или с 0, в зависимости от ситуации.

Обращение к отдельному разделу массива такое:

a:= 5;

b[1]:= a;

b[2]:= b[1]+2;

То есть, сразу после имени массива ставятся квадратные скобки, внутри которых указывают индекс – номер элемента в массиве. Подобный массив можно воспринимать как таблицу с одной строкой и несколькими ячейками:

 

Рис. 9.1. Представление массива в виде таблицы

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

Как уже упоминалось, массивы могут быть любого типа:

var

a: array [0..3] of String;

b: array [1..5] of Real;

c: array [10..20] of Boolean;

Обработка массива

Массивы удобно использовать там, где приходится обрабатывать большое количество однотипных данных. Возьмем гипотетический пример: нужно перевести данные от 1 до 100 американских миль в привычные нам километры. Поскольку мы точно знаем, что у нас будет 100 элементов, можно воспользоваться массивом, а для его обработки удобней всего использовать цикл for:

var

i: Byte; //счетчик для for

a: Array [1..100] of Real; //массив для полученных данных

begin

for i:= 1 to 100 do

a[i]:= i * 1,609;

Что мы имеем в данном примере? При первом проходе цикла for счетчик i имеет значение 1, следовательно, в строке

a[i]:= i * 1,609;

мы обращаемся к первому (a[1]) элементу массива, и присваиваем ему значение i, умноженное на 1,609 километров. Следовательно, в элемент массива a[1], который соответствует одной миле, попадает значение 1,609 километров. При втором проходе цикла i уже равен 2, значит, в элемент a[2] уйдет значение 2 * 1,609, то есть 3,218. И так далее, до конца массива. В дальнейшем, обратившись к нужному элементу массива, мы сможем узнать, скольким километрам будет равно данное количество миль:

ShowMessage('23 мили = ' + FloatToStr(a[23]) + ' километра');

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

for i:= 0 to 100 do

a[i]:= i * 1,609;

то получили бы ошибку, так как уже при первом проходе мы обратились бы к элементу a[0], которого не существует.

Константы

Константы – это такие же, как переменные, ячейки оперативной памяти, значение которых нельзя изменить. То есть, вы однажды указали значение константы, и в дальнейшем обращаетесь к ней, как к обычной переменной, но присвоить ей другое значение уже не сможете. Константы удобно использовать, когда вы будете неоднократно обращаться к одному и тому же значению. Тип константы указывать не нужно, компилятор сам подбирает для нее подходящий тип. Константы описываются в разделе const, который всегда должен описываться перед разделом var:

procedure MyProc;

const

pi = 3.14;

MessageError = 'Текст сообщения об ошибке';

var

a: Integer;

b: String;

begin

...

end;

Константы, особенно глобальные, удобно использовать там, где вы работаете с каким-то определенным значением. Если в дальнейшем это значение поменяется, нет необходимости скрупулезно менять код во всей программе, достаточно изменить значение константы. К примеру, вы производите расчет оклада, основываясь на сумме, соответствующей минимальной заработной плате. В таком случае не грех объявить константу MinZarPlat и присвоить ей текущее значение минимальной зарплаты.

В процессе расчета вам приходится умножать это значение на количество минимальных зарплат. Допустим, некто Сидоров имеет оклад, равный 5-ти минимальным зарплатам. В момент расчета вы умножаете 5 не на сумму минимальной зарплаты, а на константу MinZarPlat, которая и содержит нужное значение. А если через месяц или год сумма минимальной зарплаты изменится, то вам останется только заменить значение вашей константы на новое, не меняя при этом остального кода. Удобно, не правда ли?



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 241; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.140.198.43 (0.007 с.)