В данной лекции рассматриваются статические массивы. Так же существуют и динамические массивы, некоторые вещи, описанные в лекции не применимы для работы с динамическими массивами.
Лекция 6. Массивы
В процессе разработки программ часто возникает необходимость работы с однотипными объектами. Как и во многих других языках высокого уровня, в С++ для этого используются массивы.
Массив – множество элементов, принадлежащих одному типу данных. При этом существует всего одно имя переменной связанной с массивом, а обращение к конкретной ячейке происходит по ее индексу (номеру) в массиве.
При этом важно четко понимать, что индекс ячейки массива и её содержимое – разные вещи. В ячейке хранятся некоторые данные, а индекс только указывает на то, к какой именно ячейке обращается программа. Работа же с данными и с самим массивом идет через переменную, которой этот массив объявлен.
Матрица
Матрица — математический объект, записываемый в виде прямоугольной таблицы элементов кольца или поля (например, целых, действительных или комплексных чисел), которая представляет собой совокупность строк и столбцов, на пересечении которых находятся её элементы. Количество строк и столбцов матрицы задают размер матрицы. Хотя исторически рассматривались, например, треугольные матрицы, в настоящее время говорят исключительно о матрицах прямоугольной формы, так как они являются наиболее удобными и общими.
Матрицы широко применяются в математике для компактной записи систем линейных алгебраических или дифференциальных уравнений. В этом случае количество строк матрицы соответствует числу уравнений, а количество столбцов — количеству неизвестных. В результате решение систем линейных уравнений сводится к операциям над матрицами.
Для матрицы определены следующие алгебраические операции:
сложение матриц, имеющих один и тот же размер;
умножение матриц подходящего размера (матрицу, имеющую n столбцов, можно умножить справа на матрицу, имеющую n строк);
в том числе умножение на матрицу вектора (по обычному правилу матричного умножения; вектор является в этом смысле частным случаем матрицы);
умножение матрицы на скаляр.
Более строгое определение
Пусть есть два конечных множества M={1,2,…,m} и N={1,2,…n}, где n,m – натуральные числа.
Назовем матрицей m×n с любыми элементами из множества отображение вида:
A(i,j) называется элементом матрицы, находящимся на пересечении i-ой строки иj-ого столбца;
i-ая строка состоит из элементов вида A(i,j), где j ∈[1,N];
j-ый столбец состоит из элементов вида A(i,j), где i ∈[1,M];
Таким образом, матрица размера m×n состоит в точности их:
m строк;
n столбцов;
Вопрос: сколько элементов в матрице M×N? mn элементов.
Простые (линейные) операции
Умножение матрицы на число
Умножение матрицы A на число γ заключается в построении матрицы γA=(γa_ij ).
Свойства умножения матрицы на число:
1A=A
(γα)A=γ(αA)
(γ+α)A = γA+αA
γ(A+B)= γA+ γB
Сложение матриц
Сложение матриц A+B есть операция нахождения матрицы C, такой, что c_ij=a_ij+b_ij.
Складывать можно только матрицы одинакового размера.
Свойство сложения матриц:
A+B=B+A коммутативность
(A+B)+C=A+(B+C) ассоциативность
A+Θ=A сложение с нулевой матрицей
A+(-A)= Θ существование противоположенного элемента