Персональная страничка
| ||
Предыдущий раздел:
Следующий раздел:
Переменная, имеющая структуру массива, является совокупностью компонент одного и того же типа. Наиболее близкие понятия из математики это вектора и числовые последовательности, где целая группа чисел обозначается одним именем, а для обращения к каждому отдельному числу последовательности используется различные индексы. Выглядеть это может, например, так: То есть, обращаемся к конкретному элементу, например, , указав имя последовательности или вектора (а) и номер (индекс) элемента (3).
Для использования подобных объектов в программировании требуется сначала описать соответствующий тип в разделе описания типов. Это делается следующим образом:
type <Имя типа-массива> = array [<тип индексов>] of <тип элементов>;
Конкретный пример:
type TMassive = array [1..10] of real;
Здесь:
<Имя типа-массива> — произвольный правильный идентификатор, любое имя, которое вы захотите дать своему типу. Согласно правилам хорошего стиля имя начинается с большой буквы T (это позволяет отличать идентификаторы типов от всех прочих). Остальная часть имени придумывается в соответствии со смыслом данных, которые будут храниться в переменных этого типа и пишется с заглавной буквы (опять это не обязательное требование, но желательное с точки зрения стиля). Примеры стилистически правильных имен:
TGrades – для хранения оценок за контрольную;
TVector – для хранения координат абстрактного вектора;
TMassiv – просто массив, когда не приходится задумываться, что означают его отдельные элементы (просто куча чисел).
<тип элементов> — произвольный стандартный или ранее введенный вами тип. Если это, например, тип real, то массив – представляет собой несколько вещественных чисел.
<тип индексов> — в качестве индексов обычно используют целые числа, а в качестве типа индексов указывают так называемый тип-диапазон. Например, тип 1..10 означает, что массив будет состоять из 10-ти элементов, каждому из которых будет соответствовать индекс – целое число от 1 до 10. Нумерация элементов не обязательно должна начинаться с единицы. Например, в качестве типа можно указать –5..5. В этом случае массив будет содержать 11 элементов, первому из которых соответствует индекс –5, второму –4 и т. д.
Приведем несколько примеров описания типов массивов:
{Набор из 101 вещественного числа с индексами в диапазоне от 0 до 100.} TMassive2 = array [0..100] of real; {Массив, подходящий для хранения имен 20-ти человек.} TNames = array [1..20] of string; {Массив из 4294967296 (2^32) вещественных чисел. Каждая переменная такого типа будет занимать в памяти 8*2^32 байт = 16 Гб, что довольно много. Именно по этому рекомендуется заранее подумать, сколько элементов вам реально понадобиться и использовать тип-диапазон с нужным количеством возможных значений.} TLargeMassive = array [integer] of real; {Массив, значением которого будет набор из 20-ти целых чисел} TIntMassive = array [1..20] of integer;
После того, как описан тип, можно вводить переменные этого типа. Например:
var x, y: TMassive;
Хотя, можно обойтись и без введения специального типа, описывая переменные как
var a, b: array [1..10] of real;
Однако впоследствии (при изучении темы «Процедуры и функции») потребуется именно введение типа, так что лучше привыкать сразу и всегда пользоваться заранее описанным типом.
В описанных переменных хранятся сразу 10 вещественных значений. Индексами являются числа от 1 до 10. Для простоты индексы можно понимать как номера хранящихся в массиве чисел. Элемент массива a с индексом i обозначается как a[i]. Например, a[1] – элемент с индексом 1. Каждый элемент моно рассматривать как переменную типа real и соответственно с ней обращаться – присваивать ему значения, использовать в выражениях и т.д. Например, операторы
a[1]:=2.5; readln(a[2]); a[3]:=2*a[2]+a[1];
запишут в 1-й элемент число 2.5, во второй то, что пользователь введет с клавиатуры, а третий элемент будет вычислен по первым двум.
Следующий раздел:
Предыдущий раздел:
Я ввёл им раньше константы и здесь объясняю, что в описании типа нужно писать через N, где N описано в const. Ты что думаешь?
Я думаю, это правильно.
Сейчас попробую куда-нибудь в начало раздела о массивах вставить сведения о константах, а то они появляются у меня в примерах внезапно и без объяснений.