Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Леднева_программирование_на_JAVA.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

Алгоритмы обработки матриц по строкам и столбцам

Наиболее часто встречаются задачи, в которых требуется вычислить суммы, максимальные (минимальные) элементы каждой строки и столбца матрицы и расположить их в конце строки и столбца соответственно.

Задача 7.3. Ввести матрицу а размерностью m*n. Выполнить следующие операции:

– подсчитать суммы элементов по строкам и вывести исходную матрицу, а в конце каждой строки – сумму.

– подсчитать суммы элементов по столбцам и вывести исходную матрицу и соответствующие суммы под каждым столбцом.

Общий алгоритм:

1. Ввести матрицу а.

2. Вывести матрицу а построчно.

3. Подсчитать суммы в строках и вывести их вместе с матрицей.

4. Подсчитать суммы в столбцах.

5. Вывести матрицу с суммами по столбцам.

6. Закончить.

Алгоритм с уточненными пунктами 3 и 4:

1. Ввести матрицу а.

2. Вывести матрицу а построчно.

// подсчет в строках

3. Для номера строки i от 0 до a.length:

3.1. Принять сумма sum = 0 // сумма строки

3.2. Для номера столбца j от 0 до a[i].length

вывести элемент a[i][j]

вычислить sum+=a[i][j];

3.3. Вывести sum.

// подсчет в столбцах

4.1. Создать массив sumStl для хранения сумм элементов столбцов.

4.2. Для номера столбца j от 0 до a[0].length:

4.2.1. Принять сумма sumStl [j] = 0 // сумма j-того столбца

4.2.2. Для номера строки i от 0 до a.length

вычислить sumStl [j]+=a[i][j];

5.1. Вывести матрицу а.

5.2. Вывести массив sumStl, чтобы значения сумм попадали под соответствующие столбцы.

6. Закончить.

Задача 7.4. Ввести матрицу а размерностью m*n.

Выполнить следующие операции:

– найти минимальные элементы в каждой строке и вывести исходную матрицу, а в конце каждой строки – минимум и его номер;

– найти максимальные элементы в каждом столбце и вывести исходную матрицу, а в конце каждого столбца – максимум.

Укрупненный алгоритм:

1. Ввести матрицу а.

2. Вывести матрицу а построчно.

// подсчет в строках

3. Для номера строки i от 0 до a.length:

3.1. Принять номер столбца минимума nmin=0.

3.2. Принять минимум равным min=a[i][nmin].

3.3. Для номера столбца j от 0 до a[i].length

если a[i][j] <min

nmin=j;

min=a[i][j];

3.4. вывести min и nmin

// подсчет в столбцах

4. Создать массив maxStl для хранения минимальных элементов столбцов

4.1. Для номера столбца j от 0 до a[0].length:

4.1.1. Принять номер строки максимума nmax=0.

4.1.2. Принять maxStl [nmax]=a[nmax][j] // начальные значения

4.1.3. Для номера строки i от 0 до a.length

если a[i][j] >max

nmax=i;

maxStl[j]=a[i][j];

5. Вывести матрицу а.

6. Вывести массив maxStl // значения максимумов под // соответствующими столбцами

7. Закончить.

Задания

Задание 7.1. Создать приложения для задач 7.1-7.4 из теоретической части лабораторной работы.

Задание 7.2. Выполнить задания по бригадам для одного из вариантов, заданного преподавателем из табл. 7.1.

Таблица 7.1

Вариант 1

1. Ввести в ЭВМ матрицу b размером n*m. Вывести ее по строкам, а затем вывести последнюю строку матрицы и ее минимальный элемент.

2. Ввести в ЭВМ матрицу p размером n*m. Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= m). Вывести из матрицы p столбец с номером nom и сумму его положительных элементов.

Продолжение табл.7.1

Вариант 2

1. Ввести в ЭВМ матрицу a размером n*m. Вывести ее по строкам, а затем вывести первую строку матрицы и сумму и количество ее положительных элементов.

2. Ввести в ЭВМ матрицу q размером n*m. Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= m). Вывести из матрицы p столбец с номером nom, его максимальный элемент и номер строки, в которой он находится.

Вариант 3

1. Ввести в ЭВМ матрицу c размером n*m. Вывести ее по строкам, а затем вывести последний столбец матрицы и его максимальный элемент.

2. Ввести в ЭВМ матрицу p размером n*m. Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= n). Вывести из матрицы p строку с номером nom и сумму ее элементов.

Вариант 4

1. Ввести в ЭВМ матрицу d размером n*m. Вывести ее по строкам, а затем вывести первый столбец матрицы и сумму его четных элементов.

2. Ввести в ЭВМ матрицу q размером n*m. Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= n). Вывести из матрицы p строку с номером nom и ее максимальный элемент и номер столбца, в котором он находится.

Вариант 5

1. Ввести в ЭВМ матрицу a размером n*m. Вывести ее по строкам, а затем вывести последнюю строку матрицы и ее максимальный элемент.

2. Ввести в ЭВМ матрицу p размером n*m. Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= m). Вывести из матрицы p столбец с номером nom, сумму и количество его положительных элементов.

Вариант 6

1. Ввести в ЭВМ матрицу b размером n*m. Вывести ее по строкам, а затем вывести первую строку матрицы и сумму и количество ее положительных элементов.

2. Ввести в ЭВМ матрицу q размером n*m. Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= m). Вывести из матрицы p столбец с номером nom, его минимальный элемент и номер строки, в которой он находится.

Продолжение табл. 7.1

Вариант 7

1. Ввести в ЭВМ матрицу c размером n*m. Вывести ее по строкам, а затем вывести последний столбец матрицы и его минимальный элемент.

2. Ввести в ЭВМ матрицу p размером n*m. Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= n). Вывести из матрицы p строку с номером nom, сумму и количество его положительных элементов.

Вариант 8

1. Ввести в ЭВМ матрицу d размером n*m. Вывести ее по строкам, а затем вывести первый столбец матрицы и сумму и количество его положительных элементов.

2. Ввести в ЭВМ матрицу q размером n*m. Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= n). Вывести из матрицы p строку с номером nom и ее минимальный элемент и номер столбца, в котором он находится.

Вариант 9

1. Ввести в ЭВМ матрицу x размером n*m. Вывести ее по строкам, а затем вывести последнюю строку матрицы и ее максимальный четный элемент.

2. Ввести в ЭВМ матрицу q размером n*m. Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= m). Вывести из матрицы p столбец с номером nom, сумму и количество его элементов.

Вариант 10

1. Ввести в ЭВМ матрицу y размером n*m. Вывести ее по строкам, а затем вывести первую строку матрицы и сумму ее элементов.

2. Ввести в ЭВМ матрицу x размером n*m. Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= m). Вывести из матрицы p столбец с номером nom, его максимальный элемент и номер строки, в которой он находится.

Вариант 11

1. Ввести в ЭВМ матрицу a размером n*m. Вывести ее по строкам, а затем вывести второй столбец матрицы и его минимальный элемент.

2. Ввести в ЭВМ матрицу p размером n*m. Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= n). Вывести из матрицы p строку с номером nom, сумму его четных элементов.

Окончание табл. 7.1

Вариант 12

1. Ввести в ЭВМ матрицу b размером n*m. Вывести ее по строкам, а затем вывести предпоследний столбец матрицы и сумму и количество его элементов.

2. Ввести в ЭВМ матрицу q размером n*m. Вывести ее по строкам. Затем ввести некоторое значение nom (1 <=nom<= n). Вывести из матрицы p строку с номером nom и ее минимальный четный элемент и номер столбца, в котором он находится.