Программирование на языке Си Часть II Матрицы Учитель информатики: Корогод В.А.

Презентация:



Advertisements
Похожие презентации
Программирование на языке Паскаль Часть II Матрицы.
Advertisements

Матрицы 1. 2 Задача: запомнить положение фигур на шахматной доске abcdefgh
1 Программирование на языке Паскаль Матрицы. 2 Задача: запомнить положение фигур на шахматной доске abcdefgh
К. Поляков, Программирование на алгоритмическом языке. Часть II Тема 5. Матрицы.
К. Поляков, Программирование на алгоритмическом языке. Часть II Тема 5. Матрицы.
Программирование на языке Си Часть II Тема 1. Массивы Учитель информатики: Корогод В.А.
Двумерные числовые массивы Урок 2. План урока 1.Инициализация элементов массива. 2.Обработка элементов двумерного массива.
Двумерный массив. Матрица Прямоугольная таблица, состоящая из чисел А=
Программирование на языке Паскаль Массивы 1.Массивы (объявление, заполнение)Массивы (объявление, заполнение) 2.Поиск в массивеПоиск в массиве 3.Максимальный.
Массивы – структурированный тип данных, состоящий из фиксированного числа элементов одинакового типа, имеющих общее имя. Массив.
Двумерные массивы. Массивы Двумерный массив (матрица) – это массивы, положение элементов в которых описывается двумя индексами или прямоугольная таблица,
Массивы Теоретические сведения. Примеры решения задач. Задания для самостоятельного выполнения.
A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5] Двумерный массив можно представить.
Двумерные массивы. Двумерный массив При решении практических задач часто приходится иметь дело с различными таблицами данных, математическим эквивалентом.
В программах на языке Basic можно пользоваться таблицами. Таблицы в программировании называются массивами.
Часть 1 В математике таблицы чисел, состоящие из строк и столбцов называются матрицами и записываются в круглых скобках. Двумерный массив. Матрицы 1.
Язык программирования Pascal Массивы А. Жидков. Массивы Массив – поименованный набор однотипных элементов, каждый из которых имеет свой номер, (индекс).
Массивы Теоретические сведения. Примеры решения задач. Задания для самостоятельного выполнения.
Тема: Массивы.. Массив представляет собой набор элементов одного типа, каждый из которых имеет свой номер, называемый индексом. Массив Одномерный Многомерный.
ПРОГРАММИРОВАНИЕ МАССИВОВ Язык программирования Паскаль ЕАДК, преподаватель Неверова И.Ю.
Транксрипт:

Программирование на языке Си Часть II Матрицы Учитель информатики: Корогод В.А

2 Матрицы Задача: запомнить положение фигур на шахматной доске abcdefgh c6 A[5][2]

3 Матрицы Матрица – это прямоугольная таблица однотипных элементов. Матрица – это массив, в котором каждый элемент имеет два индекса (номер строки и номер столбца) A строка 1 столбец 2 ячейка A[2][3]

4 Матрицы Объявление: const int N = 3, M = 4; int A[N][M]; float a[2][2] = {{3.2, 4.3}, {1.1, 2.2}}; char sym[2][2] = { 'a', 'b', 'c', 'd' }; const int N = 3, M = 4; int A[N][M]; float a[2][2] = {{3.2, 4.3}, {1.1, 2.2}}; char sym[2][2] = { 'a', 'b', 'c', 'd' }; Ввод с клавиатуры: for ( i = 0; i < N; i ++ ) for ( j = 0; j < M; j ++ ) { printf ( "A[%d][%d]=", i, j); scanf ( "%d", &A[i][j] ); } for ( i = 0; i < N; i ++ ) for ( j = 0; j < M; j ++ ) { printf ( "A[%d][%d]=", i, j); scanf ( "%d", &A[i][j] ); } Если переставить циклы? ? A[0][0]=25 A[0][1]=14 A[0][2]=14... A[2][3]=54 i i j j for ( j = 0; j < M; j ++ ) for ( i = 0; i < N; i ++ ) {

5 Матрицы Заполнение случайными числами for ( i = 0; i < N; i ++ ) for ( j = 0; j < M; j ++ ) A[i][j] = random(25)- 10; for ( i = 0; i < N; i ++ ) for ( j = 0; j < M; j ++ ) A[i][j] = random(25)- 10; Какой интервал? ? цикл по строкам цикл по столбцам Вывод на экран for ( i = 0; i < N; i ++ ) { for ( j = 0; j < M; j ++ ) printf("%5d", A[i,j]); printf("\n"); } for ( i = 0; i < N; i ++ ) { for ( j = 0; j < M; j ++ ) printf("%5d", A[i,j]); printf("\n"); } перейти на новую строку for ( j = 0; j < M; j ++ ) printf("%5d", A[i][j]); for ( j = 0; j < M; j ++ ) printf("%5d", A[i][j]); вывод строки Если переставить циклы? ? в той же строке

6 Обработка всех элементов матрицы Задача: заполнить матрицу из 3 строк и 4 столбцов случайными числами и вывести ее на экран. Найти сумму элементов матрицы. main() { const int N = 3, M = 4; int A[N][M], i, j, S = 0;... // заполнение матрицы и вывод на экран for ( i = 0; i < N; i ++ ) for ( j = 0; j < M; j ++ ) S += A[i][j]; printf("Сумма элементов матрицы S=%d", S); } main() { const int N = 3, M = 4; int A[N][M], i, j, S = 0;... // заполнение матрицы и вывод на экран for ( i = 0; i < N; i ++ ) for ( j = 0; j < M; j ++ ) S += A[i][j]; printf("Сумма элементов матрицы S=%d", S); } for ( i = 0; i < N; i ++ ) for ( j = 0; j < M; j ++ ) S += A[i][j]; for ( i = 0; i < N; i ++ ) for ( j = 0; j < M; j ++ ) S += A[i][j];

7 Задания Заполнить матрицу из 8 строк и 5 столбцов случайными числами в интервале [-10,10] и вывести ее на экран. «4»: Найти минимальный и максимальный элементы в матрице и их номера. Формат вывода: Минимальный элемент A[3][4]=-6 Максимальный элемент A[2][2]=10 «5»: Вывести на экран строку, сумма элементов которой максимальна. Формат вывода: Строка 2:

8 Операции с матрицами Задача 1. Вывести на экран главную диагональ квадратной матрицы из N строк и N столбцов. A[0][N-1] A[1][1] A[2][2] A[N-1][N-1] for ( i = 0; i < N; i ++ ) printf ( "%5d", A[i][i] ); for ( i = 0; i < N; i ++ ) printf ( "%5d", A[i][i] ); Задача 2. Вывести на экран вторую диагональ. A[N-1][0] A[N-2][1] A[1][N-2] сумма номеров строки и столбца N-1 A[0][0] for ( i = 0; i < N; i ++) printf ( "%5d", A[i][ N-1-i ]); for ( i = 0; i < N; i ++) printf ( "%5d", A[i][ N-1-i ]); N-1-i

9 Операции с матрицами Задача 3. Найти сумму элементов, стоящих на главной диагонали и ниже ее. Одиночный цикл или вложенный? ? строка 0: A[0][0] строка 1: A[1][0]+A[1][1]... строка i: A[i][0]+A[i][2]+...+A[i][i] S = 0; for ( i = 0; i < N; i ++ ) for ( j = 0; j <= i; j ++ ) S += A[i][j]; S = 0; for ( i = 0; i < N; i ++ ) for ( j = 0; j <= i; j ++ ) S += A[i][j]; цикл по всем строкам for ( j = 0; j <= i; j ++ ) S += A[i][j]; for ( j = 0; j <= i; j ++ ) S += A[i][j]; складываем нужные элементы строки i

10 Операции с матрицами Задача 4. Перестановка строк или столбцов. В матрице из N строк и M столбцов переставить 1-ую и 3-ю строки j A[1][j] A[3][j] for ( j = 0; j <= M; j ++ ) { c = A[1][j]; A[1][j] = A[3][j]; A[3][j] = c; } for ( j = 0; j <= M; j ++ ) { c = A[1][j]; A[1][j] = A[3][j]; A[3][j] = c; } Задача 5. К третьему столбцу добавить шестой. for ( i = 0; i < N; i ++ ) A[i][3] += A[i][6]; for ( i = 0; i < N; i ++ ) A[i][3] += A[i][6];

11 Задания Заполнить матрицу из 7 строк и 7 столбцов случайными числами в интервале [-10,10] и вывести ее на экран. Обнулить элементы, отмеченные зеленым фоном, и вывести полученную матрицу на экран. «4»: «5»:

12 1. Дан двумерный массив. Найти сумму элементов каждой строки. 2. Дан двумерный массив. Найти значение максимального элемента каждого столбца. 3. Дана матрица порядка n. Получить произведение ее диагоналей. 4. Дан двумерный массив. Найти значение максимального элемента каждого столбца.