Массивы (структурный тип )
Таблицы и табличные величины
При решении задач человек очень часто пользуется таблицами. При записи исходных данных, получении справочной информации и т.п. Таблицы бывают разные, но наиболее часто встречающиеся линейные и прямоугольные таблицы. Каждая таблица имеет свое название. Значения, образующие линейную таблицу, располагаются при записи на бумаге в строку или в столбец. Каждому значению или элементу таблицы, соответствует его порядковый номер (индекс), и наоборот: стоит задать порядковый номер (индекс), и сразу ясно, о каком элементе таблицы идет речь.
Пример:
На метеостанции каждый час измеряется температура воздуха и значения измерений за сутки записываются в таблицу:
Temp - название таблицы.
Время измерения, ч | ……… | ||||||||
Температура, С |
Эта линейная таблица содержит 24 элемента, занумерованные от 1 до 24. Например, второй элемент таблицы имеет значение – 13, а пятый – значение 10.
Для прямоугольной таблицы должны быть указаны границы индексов, как по вертикали, так и по горизонтали (строки и столбцы). Каждому значению или элементу прямоугольной таблицы соответствует определенный индекс строки и столбца.
Элементы таблицы могут быть любого типа (числовые, символьные, строковые и т.д.).
Пример:
Составим таблицу размещения пассажиров в первых 6-ти вагонах на местах с 15 по 19 (элементами таблицы будут имена пассажиров).
Vagon
1 вагон | 2 вагон | 3 вагон | 4 вагон | 5 вагон | 6 вагон | |
Катя | Наташа | Юля | Римма | Рома | Лиля | |
Олег | Марат | Ирек | Адель | Петя | Эльвина | |
Вася | Таня | Люба | Костя | Луиза | Лиза | |
Лена | Иля | Наташа | Артур | Рустем | Руслан | |
Коля | Мансур | Антон | Саша | Раиль | Марат |
Например, элемент таблицы, стоящий в строке с индексом 17 и в столбце – 1 вагон, имеет значение – Вася.
Описание массива (в разделе Var )
В Турбо Паскале существует возможность работы с таблицами, они имеют название - массивы.
Массив – это совокупность элементов одного типа, объединенных под общим именем. Каждый элемент массива имеет свой индекс (порядковый номер), который определяет его относительную позицию. Число элементов массива задается при описании и в дальнейшем не изменяется.
Массив объявляется в следующей форме:
A:Array[B1,B2,…,Bn] of M;
Array – массив;
Of – из;
Здесь - имя массива (правильный идентификатор);
B1, B2,…,Bn – списки индексных типов, их можно задавать, указав любой перечисляемый тип (кроме Longint) Количество списков (n) определяет размерность массива, они разделяются запятыми и заключаются в квадратные скобки;
M - тип элементов, любой тип Турбо Паскаля;
Доступ к каждому элементу массива в программе осуществляется с помощью индекса - целого числа (точнее, выражения порядкового типа). При упоминании в программе любого элемента массива сразу за именем массива должен следовать индекс элемента в квадратных скобках.
Одномерные массивы
Рассмотрим работу с одномерными массивами (в алгебре они называются векторами):
Дадим таблице имя - Tab
Каждое число в таблице имеет тип Integer. Это - тип злементов (M).
Индексы данной таблицы изменяются от 1 до 8 . У одномерных массивов один список (B1).
Таким образом, описание этого массива (в разделе Var) выглядит так: Tab:Array[1..8] of Integer;
Задав конкретные значения индексов, можно выбрать определенный элемент массива. Например, оператор:
N:=A[5];
Присвоит переменной N значение элемента массива, имеющего индекс 5, т.е. число 11.
Задача 1.
Задан одномерный массив из N чисел. Изменить все элементы массива, увеличив их на единицу.
Работу с массивом можно разделить на 4 этапа:
1. Описание массива (выделить место в памяти компьютера для данного массива);
2. Ввод элементов массива (с клавиатуры; с помощью оператора присваивания; с помощью функции Random);
3. Работа с массивом (изменить элементы массива в соответствии с заданием);
4. Вывод массива (на экран или принтер);
Последовательный доступ к каждому элементу массива удобно осуществлять в цикле.
Решение:
Program Mass1;
{1}Var Tab:Array[1..10] of Integer;
I,N:Integer;
Begin
Writeln(’Введите число элементов массива (N<=10)’);
Readln(N);
{2}For I:=1 to N do Readln(Tab[I]);{ввод элементов с клавиатуры}
{3}For I:=1 to N do Tab[I]:= Tab[I]+1;
{4}For I:=1 to N do Writeln(’Tab[’,I,’]=’,Tab[I]);
End.
Задачи:
1. Задан одномерный массив из N чисел. Изменить значения элементов массива: а) все уменьшить на 100; б)если элемент больше 100 – на 100; в) если элемент отрицательный – на квадрат.
2. Задан одномерный массив из N чисел. Сосчитать количество элементов массива:
а) положительных; б) отрицательных; в) нулевых.
3. Заполнить одномерный массив элементами, значения которых равны их удвоенным порядковым номерам.
4. Задан одномерный массив из N чисел. Найти те элементы, значения которых совпадают с их индексом.
5. Задан одномерный массив из N чисел. Сосчитать: сумму, произведение и среднее арифметическое всех элементов массива.
6. Задан одномерный массив из N чисел. Определить сумму положительных и отрицательных элементов массива.
7. Задан одномерный массив А из N чисел. Создать новый массив путем деления всех элементов массива А на число Х.