- •Волгоград 2006
- •3. Двумерные массивы (матрицы) 24
- •3.1. Объявление двумерных массивов 24
- •3.2. Решение задач с использованием двумерных массивов 25
- •3.2.7. Обработка элементов квадратных матриц, расположенных над и под главными и побочными диагоналями 39
- •1. Общие понятия
- •2. Одномерные массивы (векторы)
- •2.1. Объявление одномерных массивов
- •2.2.1. Ввод одномерного массива в память компьютера
- •2.2.2. Вывод массива на экран
- •2.2.3. Подсчёт суммы, произведения, количества элементов одномерного массива, удовлетворяющих заданному условию
- •2.2. Типовые алгоритмы обработки одномерных массивов
- •2.2.4 Поиск значений среднего арифметического и среднего геометрического элементов массива
- •2.2.5. Обработка элементов одномерного массива, имеющих чётные индексы
- •2.2.6. Формирование нового одномерного массива из элементов другого одномерного массива
- •2.2.7. Нахождение максимального (минимального) элемента одномерного массива
- •2.2.9. Сортировка элементов массива
- •3. Двумерные массивы (матрицы)
- •3.1. Объявление двумерных массивов
- •3.2. Решение задач с использованием двумерных массивов
- •3.2.1. Ввод и вывод на экран двумерного массива
- •3.2.2. Алгоритмы обработки матрицы в целом
- •3.2.3. Алгоритмы обработки отдельных строк или столбцов матрицы
- •3.2.4. Алгоритмы обработки элементов каждой строки матрицы
- •3.2.4. Алгоритмы обработки элементов каждого столбца матрицы
- •3.2.5. Обработка элементов матрицы, расположенных в четных и нечетных строках или столбцах
- •3.2.5. Обработка элементов главной диагонали
- •3.2.6. Обработка элементов побочной диагонали
- •3.2.7. Обработка элементов квадратных матриц, расположенных над и под главными и побочными диагоналями
- •3.2.8. Транспонирование матрицы
- •Иерархическая структура программы
- •Структура программы, использующей подпрограммы
- •Локальные и глобальные идентификаторы
- •Формальные и фактические параметры
- •Способы передачи параметров в подпрограммы
- •Подпрограммы-процедуры Описание процедуры
- •Вызов процедуры
- •Примеры использования подпрограмм-процедур
- •Функции Описание функции
- •Вызов функции
- •Примеры использования подпрограмм-функций
- •Пример решения задачи с использованием подпрограмм
- •Список рекомендуемой литературы
- •Обработка массивов
- •400131 Волгоград, пр. Ленина, 28.
- •400131 Волгоград, ул. Советская,35.
1. Общие понятия
Существует множество задач, в которых большую группу данных нужно подвергнуть однотипной обработке.
Пример
В академической группе студентам, имеющим средний балл по результатам сессии выше 4, требуется увеличить размер стипендии на 25%.
В этом случае удобно всю группу средних оценок обозначить общим именем. Такую группу данных принято называть массивом чисел.
Массив — это переменная сложного структурированного типа данных, объединяющая под одним общим именем множество переменных более простого типа данных.
В предложенном выше примере назовём весь массив средних оценок именем X. Элементом массива является любое конкретное число, принадлежащее этому массиву. Средний балл каждого студента группы рассматривается как элемент массива средних оценок X (рис. 1).
з
начения
элементов массива X
X |
3.1 |
4.5 |
4.0 |
4.7 |
5.0 |
3.8 |
3.6 |
4.2 |
4.8 |
3.7 |
|
||||||||||
индексы элементов массива
Рис.1
Чтобы обработать какой-либо элемент этого массива, необходимо указать имя массива и номер элемента по порядку с начала массива. Этот номер называется индексом.
Пример
Х[3] — есть третий элемент массива X. Его значение равно средней оценке третьего студента по списку группы (т.е. 4.0).
В оперативной памяти компьютера элементы массива располагаются последовательно, занимая смежные ячейки памяти. Элементы с меньшим значением индекса хранятся в ячейках памяти с меньшим адресом. Количество памяти, отводимое под каждый элемент массива, определяется типом элементов массива (который, напомним, одинаков для каждого элемента массива). Т.е., массив – это последовательность однотипных элементов, расположенных в смежных ячейках памяти.
Пример
Если обозначить значения средних оценок вещественными числами, 3.1, 4.5, 4.0 и т.д., то каждый элемент массива будет иметь тип real (т.е. занимать в памяти компьютера 6 байтов).
Количество элементов массива в Паскаль-программе должно быть строго фиксировано. Это связано с тем, что объём памяти, требуемый для массива, резервируется только один раз (в начале выполнения программы) и не может быть изменён до завершения программы
.
2. Одномерные массивы (векторы)
2.1. Объявление одномерных массивов
Массивы, упорядоченные в памяти по одному порядковому номеру, называются одномерными массивами (векторами) (см. рис.1).
Т.к. одномерный массив является переменной, то в любой программе, использующей массивы, необходимо зарезервировать память для его размещения. Это действие выполняется обычным для всех переменных способом (т.е. в разделе описаний Паскаль-программы в подразделе var указывается имя массива и его тип):
var
X : аггау[<список индексов>] of <базовый тип>;
Здесь <список индексов> задаётся как диапазон возможных значений индексов. Например, 1..100— задаёт диапазон из ста индексов с указанными начальным и конечным значениями; 1901..2000 — тоже задаёт диапазон из ста индексов, но с другими границами.
<Базовый тип> может представлять собой любой оперативный тип данных.
Пример объявления одномерного массива.
Var
X: array [1. .50] of integer; (массив из 50 целых чисел)
Y,Z:array [1..100] of real;{массивы из 100 вещественных чисел каждый}

1
2 3 4 5 6 7
8 9 10