Массивы. Линейные массивы. 1. Что такое массив и для чего он используется.
Представим, что в памяти компьютера необходимо хранить данные одного типа, например, возраст в годах работников предприятия. Работников много, например, 100 человек. Тогда для обработки данных и хранения информации в памяти необходимо ввести 100 переменных : a1, a2, b34, vozr124 и т.д…
Это не то, чтобы очень неудобно, это НЕВОЗМОЖНО, если говорить о тысячах, десятках тысяч человек. Для этого существуют различные способы организации структуирования данных для хранения. Один из них МАССИВЫ.
Массивы бывают разные по размерности: одномерные, двумерные, и т.д. Мы будем работать на первых этапах с ОДНОМЕРНЫМИ.
Массив – это структуированный набор однотипных данных.
Пример одномерного массива – рост учащихся 6 класса в сантиметрах: 154, 165, 152, …, 161 Красивее их представить в виде таблицы
Для работы с массивом, как и с переменной, мы его описываем. Описание в общем виде Var <имя> : array[<начальный_индекс>..<конечный_индекс>] of <тип>;
Для нашего примера:
Var a : array[1..22] of integer;
Наш массив имеет 22 элемента, каждый из которых целое число.
2. Как получить доступ к каждому элементу массива.
Рост второго ученика a[2], рост 15-того а[15]. С каждым элементом можно работать как с отдельной переменной. ГЛАВНОЕ указать имя массива и в квадратных скобках его ИНДЕКС.
b:=a[1]+a[4]; // сумма первого и четвертого элемента a[7]:=145; // значение седьмого элемента станет 145
Номер элемента и номер индекса не всегда совпадают. В скобках указывается индекс (не номер) и нужно понимать, что обращение кэлементу идет через индекс, а не через номер. Рассмотрим два примера.
Пример 1. Производили замеры дневной температуры с 15 по 27 сентября. Для хранения данных удобно выполнить описании по индексам дней, а не по номеру количества:
a : array[15..27] of integer; получили, что первый элемент a[15], второй a[16] и т.д. (всего 13 элементов)
Пример 2. Есть многоэтажный дом с подвальными этажами. В массиве хранять площади помещений каждого этажа. По схеме:
s : array[-2..3] of integer; получили, что первый элемент s[-2], третий s[0] и т.д. (всего 6 элементов)
3. Способы задания значений элементам массива.
Их много. Рассмотрим нужные нам.
Способ 1. Командой присвоить a[1]:=123; a[2]:=43; a[5]:=13423;
Способ 2. Ввод с клавиатуры read(a[1]); readln(a[6]);
Способ 3. Задания случайного целого числа (например из диапазона от 0 до 100 включительно) a[1]:=random(101);
Обработку массивов очень удобно проводить с помощью циклов, а именно цикла for.
4. Способы задания значений всем элементам массива (заполнение массива).
Способ 1. Ввод значений с клавиатуры
for i:=1 to 10 do read(a[i]);
Способ 2. Заполнение случайными числами.
for i:=1 to 10 do //массив из 10 чисел a[i]:=random(21); //случайные целые числа от 0 до 20
Если количество элементов в программе каждый раз может меняться, то нужно указать в переменную количество и организовать работу. При описании массива нужно брать с максимальным запасом для задачи и следить за объемом занимаемой памяти(!!!)
read(n); for i:=1 to n do read(a[i]);
5. Способы вывода элементов массива.
Способ 1. Вывод значений в строку через пробел:
for i:=1 to 10 do write(a[i],’ ‘); writeln;
Способ 2. Вывод значений в столбец:
for i:=1 to 10 do writeln(a[i]);
И!.. ЗАЧЕМ НУЖНЫ МАССИВЫ, если можно обойтись без них?.. Если данные нужно хранить в памяти компьютера постоянно, или некоторое время – массивы НУЖНЫ! Если данные вводятся, сразу обрабатываются и их значения можно не помнить, можете не использовать массив для экономии памяти! Пример нахождения максимального числа из 10 введенных.
|