Матрицы. 10 класс

Содержание

Слайд 2

Многие программы работают с данными, организованными в виде таблиц.
Например, при составлении

Многие программы работают с данными, организованными в виде таблиц. Например, при составлении
программы для игры в крестики-нолики нужно запоминать состояние каждой клетки квадратной доски.
Можно поступить так: пустым клеткам присвоить код -1, клетке, где стоит нолик, — код 0, а клетке с крестиком — код 1.
Тогда информация о состоянии поля может быть записана в виде таблицы 

нет знака

нолик

крестик

строка 2, столбец 3

Слайд 3

Матрица — это прямоугольная таблица, составленная из элементов одного типа (чисел, строк

Матрица — это прямоугольная таблица, составленная из элементов одного типа (чисел, строк
и т.д.). Каждый элемент матрицы имеет два индекса – номера строки и столбца.

Такие таблицы называются матрицами или двумерными массивами. Каждый элемент матрицы, в отличие от обычного (линейного) массива, имеет два индекса — номер строки и номер столбца. В таблице выше зеленым фоном выделен элемент, находящийся на пересечении второй строки и третьего столбца.

нет знака

нолик

крестик

строка 2, столбец 3

Слайд 4

При объявлении матриц указывают два диапазона индексов (для строк и столбцов):

const N

При объявлении матриц указывают два диапазона индексов (для строк и столбцов): const
= 3; M = 4;
var A: array[1..N, 1..M] of integer;
X: array[-3..0, -8..M] of double;
L: array[1..N, 0..1] of boolean;

строки

столбцы

Слайд 6

Каждому элементу матрицы можно присвоить любое значение, допустимое для выбранного типа данных.

Каждому элементу матрицы можно присвоить любое значение, допустимое для выбранного типа данных.

Поскольку индексов два, для заполнения матрицы нужно использовать вложенный цикл.
Далее в примерах будем считать, что объявлена матрица из N строк и М столбцов, a i и j — целочисленные переменные, обозначающие индексы строки и столбца.
В следующем примере матрица заполняется случайными числами и выводится на экран:

for i:=1 to N do begin
for j:=1 to M do begin
A[i,j]:= random(61) + 20;
write(A[i,j]:3)
end;
writeln
end;

Вложенный цикл!

Слайд 7

Такой же двойной цикл нужно использовать для перебора всех элементов матрицы.
Вот

Такой же двойной цикл нужно использовать для перебора всех элементов матрицы. Вот
как вычисляется сумма значений всех элементов:

s:= 0;
for i:=1 to N do
for j:=1 to M do
s:= s + A[i,j];

Слайд 8

Обработка элементов матрицы

Обработка элементов матрицы

Слайд 9

Покажем, как можно обработать (например, сложить) некоторые элементы квадратной матрицы А, содержащей N строк

Покажем, как можно обработать (например, сложить) некоторые элементы квадратной матрицы А, содержащей
и N столбцов.
На рисунке выделены а – главная диагональ матрицы, б – вторая, побочная диагональ, в – главная диагональ и все элементы под ней.

а

б

в

Слайд 10

Главная диагональ — это элементы А[1,1], А[2,2], ..., A[N,N], т. е. элементы, у

Главная диагональ — это элементы А[1,1], А[2,2], ..., A[N,N], т. е. элементы,
которых номер строки равен номеру столбца.
Для перебора этих элементов нужен один цикл:

for i:= 1 to N do begin
{ работаем с  A[i,i] }
end;

Слайд 11

Элементы побочной диагонали — это А[1,А], A[2,N-1], ..., А[N,1].
Заметим, что сумма номеров строки

Элементы побочной диагонали — это А[1,А], A[2,N-1], ..., А[N,1]. Заметим, что сумма
и столбца для каждого элемента равны N + 1, поэтому получаем такой цикл перебора:

for i:= 1 to N do begin
{ работаем с  A[i,N+1-i] }
end;

Слайд 12

В случае обработки всех элементов на главной диагонали и под ней нужен

В случае обработки всех элементов на главной диагонали и под ней нужен
вложенный цикл: номер строки будет меняться от 1 до N, а номер столбца для каждой строки i — от 1 до i:

for i:= 1 to N do
for j:= 1 to i do begin
{ работаем с  A[i,j] }
end;

Слайд 13

Чтобы переставить строки или столбцы, достаточно одного цикла. Например, переставим строки 2

Чтобы переставить строки или столбцы, достаточно одного цикла. Например, переставим строки 2
и 4, используя вспомогательную целую переменную с:

for j:= 1 to M do
c:= A[2,j];
A[2,j]:= A[4,j];
A[4,j]:= c
end;

Слайд 14

Задание 1.

Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99],

Задание 1. Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале
и находит максимальный и минимальный элементы в матрице и их индексы.

Пример:
Матрица А:
12 14 67 45
32 87 45 63
69 45 14 11
40 12 35 15
Максимальный элемент A[2,2]=87
Минимальный элемент A[3,4]=11

Слайд 15

Задание 2.

Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99],

Задание 2. Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале
а затем записывает нули во все элементы выше главной диагонали. Алгоритм не должен изменяться при изменении размеров матрицы.

Пример:
Матрица А:
12 14 67 45
32 87 45 63
69 45 14 30
40 12 35 65
Результат:
12 0 0 0
32 87 0 0
69 45 14 0
40 12 35 65

Слайд 16

Вопросы и задания

Что такое матрицы? Зачем они нужны?
Сравните понятия «массив» и «матрица».
Как

Вопросы и задания Что такое матрицы? Зачем они нужны? Сравните понятия «массив»
вы думаете, можно ли считать, что первый индекс элемента матрицы — это номер столбца, а второй — номер строки?
Могут ли индексы элементов матрицы принимать отрицательные и нулевые значения?
Что такое главная и побочная диагонали матрицы?
Почему суммирование элементов главной диагонали требует одиночного цикла, а суммирование элементов под главной диагональю — вложенного?
Имя файла: Матрицы.-10-класс.pptx
Количество просмотров: 49
Количество скачиваний: 0