§ 15. Двумерные массивы
15.3. Обработка двумерных массивов
Обработка двумерных массивов позволяет получить какие-то результаты путем анализа данных в массиве. Сам массив при этом не изменяется. Задачи поиска элементов, удовлетворяющих условию, подсчета суммы, поиска максимального и др. во многом решаются аналогично тому, как это происходило для линейных массивов. Пример 15.8. Задан двумерный массив d из m строк и n столбцов. Посчитать сумму тех элементов массива, у которых сумма квадратов номера строки и номера столбца равна заданному числу x. Этапы выполнения задания I. Исходные данные: переменные m и n (количество строк и столбцов в массиве), d — двумерный массив, x (число). II. Результат: переменная s (сумма искомых элементов). III. Алгоритм решения задачи. 1. Ввод исходных данных. Массив вводится поэлементно. IV. Описание переменных: n, x, s – int, d – vector<vector <int>> Пример 15.9. Задан двумерный массив d из m сток и n столбцов. Определить, есть ли в массиве хотя бы один элемент, кратный x. Если да, то вывести индексы его местоположения. Этапы выполнения задания I. Исходные данные: переменные m и n (количество строк и столбцов в массиве), d — двумерный массив, x (число). II. Результат: переменные r, c (номера строки и столбца, в которых найден элемент) или сообщение «не найден». III. Алгоритм решения задачи. 1. Ввод исходных данных. Массив заполняется случайными числами. IV. Описание переменных: n, x, r, c – int, d – vector<vector <int>> Если в массиве несколько элементов, удовлетворяющих условию задачи, то будет выведен последний найденный элемент. Если нужен первый элемент, то можно ввести дополнительную переменную-флаг, которая будет равна true, пока значения r и c не изменились. После их изменения она станет false и значения r и c больше меняться не будут (пример 15.10). Пример 15.11. Задан двумерный массив d из m строк и n столбцов. Найти минимальный и максимальный элементы и вывести индексы их местоположения. Этапы выполнения задания I. Исходные данные: переменные m и n — количество строк и столбцов в массиве, d — двумерный массив, x — число. II. Результат: переменные r_min, c_min, r_max, c_max — номера строки и столбца, в которых найден элемент. III. Алгоритм решения задачи. 1. Ввод исходных данных. Массив заполняется случайными числами. IV. Описание переменных: n, m, n_min, c_min, r_max, c_max – int, d – vector<vector <int>> Если в массиве несколько элементов, равных максимальному (минимальному), то будет выводиться местоположение первого из таких элементов. Если нужно получить местоположение последнего, то достаточно заменить знак «>» («<») на «>=» («<=»). |
Пример 15.8. V. Программа:
VI. Тестирование. VII. Анализ результатов. Будут просуммированы элементы, имеющие номера [1][2] и [2][1] (они выделены). В математике для матрицы определены понятия главная диагональ и побочная диагональ. На главной диагонали находятся элементы матрицы d[i][j], для которых верно условие i = j. Для элементов побочной диагонали: i + j = n – 1 (n — число столбцов, нумерация с 0). Пример 15.9. V. Программа:
VI. Тестирование. Пример 15.10. Фрагмент программы:
Пример 15.11. V. Программа:
VI. Тестирование. |