Слайд 2: Что такое матрица?
2 0 1 2 0 -1 0 1 1 -1 0 1 2 0 1 -1 Как закодировать? ? Матрица — это прямоугольная таблица, составленная из элементов одного типа (чисел, строк и т.д.). Каждый элемент матрицы имеет два индекса – номера строки и столбца. нет знака нолик крестик строка 1, столбец 2
Слайд 3: Объявление матриц
3 const int N = 3, M = 4 ; int A[N][M]; double X[ 10 ][ 12 ]; bool L[N][ 2 ]; строки столбцы строки столбцы Если удобна нумерация с 1? ? Нумерация строк и столбцов с нуля! !
Слайд 4: Простые алгоритмы
4 Заполнение случайными числами: for ( int i = 0 ; i < N; i ++ ) { for ( int j = 0 ; j < M; j++ ) { A[ i ][j] = randInt ( 20, 80 ); cout << width ( 3 ); cout << A[ i ][j]; } cout << endl ; } Суммирование: int sum = 0 ; for ( int i = 0 ; i < N; i ++ ) for ( int j = 0 ; j < M; j++ ) sum += A[ i ][j]; Вложенный цикл! !
Слайд 5: Задачи
5 « A »: Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99], и находит максимальный и минимальный элементы в матрице и их индексы. Пример : Матрица А: 12 14 67 45 32 87 45 63 69 45 14 11 40 12 35 15 Максимальный элемент A[2,2]=87 Минимальный элемент A[3,4]=11
Слайд 6: Задачи
6 « B »: Яркости пикселей рисунка закодированы числами от 0 до 255 в виде матрицы. Преобразовать рисунок в черно-белый по следующему алгоритму: вычислить среднюю яркость пикселей по всему рисунку все пиксели, яркость которых меньше средней, сделать черными (записать код 0), а остальные – белыми (код 255) Пример : Матрица А: 12 14 67 45 32 87 45 63 69 45 14 11 40 12 35 15 Средняя яркость 37.88 Результат: 0 0 255 255 0 255 255 255 255 255 0 0 255 0 0 0
Слайд 7: Задачи
7 «С»: Заполните матрицу, содержащую N строк и M столбцов, натуральными числами по спирали и змейкой, как на рисунках:
Слайд 8: Перебор элементов матрицы
8 Главная диагональ: for ( int i = 0 ; i < N; i ++ ) { // работаем с A[ i ][ i ] } Побочная диагональ: for ( int i = 0 ; i < N; i ++ ){ // работаем с A[ i ][N-1-i] } Главная диагональ и под ней: for ( int i = 0 ; i < N; i ++ ) for ( int j = 0 ; j <= i ; j++ ) { // работаем с A [ i ][ j ] }
Слайд 9: Перестановка строк
9 2-я и 4-я строки: for ( int j = 0 ; j < M; j++ ) { c = A[ 2 ][j]; A[ 2 ][j]= A[ 4 ][j]; A[ 4 ][j]= c; } 0 1 2 3 4 5 0 1 2 3 4 5
Слайд 10: Задачи
10 « A »: Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99], а затем записывает нули во все элементы выше главной диагонали. Алгоритм не должен изменяться при изменении размеров матрицы. Пример : Матрица А: 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
Слайд 11: Задачи
11 « B »: Пиксели рисунка закодированы числами (обозначающими цвет) в виде матрицы, содержащей N строк и M столбцов. Выполните отражение рисунка сверху вниз: 1 2 3 4 5 6 7 8 9 7 8 9 4 5 6 1 2 3 «С»: Пиксели рисунка закодированы числами (обозначающими цвет) в виде матрицы, содержащей N строк и M столбцов. Выполните поворот рисунка вправо на 90 градусов: 1 2 3 4 5 6 7 8 9 7 4 1 8 5 2 9 6 3
Слайд 12: Конец фильма
12 Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики ГБОУ СОШ № 163, г. Санкт-Петербург kpolyakov@mail.ru ЕРЕМИН Евгений Александрович к.ф.-м.н., доцент кафедры мультимедийной дидактики и ИТО ПГГПУ, г. Пермь eremin@pspu.ac.ru