Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Лабораторная работа № 8(12ноября) обработка двумерных массивов. . 2



Содержание

 

Лабораторная работа № 8(12ноября) ОБРАБОТКА ДВУМЕРНЫХ МАССИВОВ.. 2

8.1 КРАТКАЯ ТЕОРИЯ.. 2

8.1.1. понятие многомерных массивов. ввод и вывод матриц. 2

8.1.2. типовые алгоритмы обработки матриц. 3

8.1.2. алгоритмы обработки матриц вцелом.. 3

Задача 8.1. 3

Задача 8.2. 4

8.1.2. алгоритмы обработки матриц по строкам и столбцам.. 5

Задача 8.3. 5

Задача 8.4. 6

8.2 ЗАДАНИЯ.. 7

8.2.1. Общие задания. 7

8.2.2. задания по бригадам.. 7


Лабораторная работа № 8(12ноября)
ОБРАБОТКА ДВУМЕРНЫХ МАССИВОВ

Содержание

 

Цель работы – знакомство с алгоритмами обработки матриц: ввод/вывод, нахождением суммы количества, минимума/максимума по строкам/столбцам.

8.1 КРАТКАЯ ТЕОРИЯ

8.1.1. понятие многомерных массивов. ввод и вывод матриц

Массив, который в качестве своих элементов содержит другие массивы, называется многомерным массивом.

Объявляются массивы так:

int[][] mas2; // двумерный – 2 индекса

double[][][] mas3; // трёхмерный массив – 3 индекса

int[][][][] mas4; // четырехмерный - 4 индекса

 

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

При создании массива можно указать явно размер каждого его уровня, но можно указать только размер первого уровня:

 

matr = int[3][4]; // Матрица из 3 строк и 4 столбцов

int[][] matr2 = int[5][]; /* Матрица из 5 строк. Сколько элементов будет в каждой строке, пока не известно. */

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

Создать многомерный массив можно сразу, явно указав его элементы:

int[][] = {{1,2, 8, 6}, {1,2,3,4,5}, {1,2,3,7}}; //матрица

int[][] = {{1,2}, {1,2,3,4,5}, {1,2,3}};//неравномерный массив

Содержание

 

Обычно рассматриваются двумерные массивы с равным количеством элементов в каждой строке, т.е. матрицы.

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

Ввод матрицы:

int[][] x = new int[6][4];

for(int i=0; i<x.length; i++) {

for(int j=0; j<x[i].length; j++) {

x[i][j] = sc.nextInt();

}

}

Вывод матрицы:

for(int i=0; i<x.length; i++) {

for(int j=0; j<x[i].length; j++) {

System.out.print(x[i][j] + "\t");

}

System.out.println(); // Переход на следующую строку

}

8.1.2. типовые алгоритмы обработки матриц

Далее рассмотрено несколько задач с алгоритмами обработки матриц.

8.1.2. алгоритмы обработки матриц вцелом



Задача 8.1. Ввести матрицу а размерностью m*n (n<=10, m<=8). Подсчитать сумму всех элементов матрицы, а также сумму и количество положительных элементов.

 

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

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

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

2. Принять общую сумму элементов sum =0;

3. Принять сумму положительных элементов sump =0;

4. Принять количество положительных элементов kolp =0;

Содержание

 

5. Для i от 1 до a.length

Для j от 1 до a[i][j].length

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

5.2. если a[i][j] >0

kolp++;

sump+=a[i][j];

6. Вывести результаты

7. Закончить

 

Задача 8.2. Ввести матрицу x размерностью m*n (n<=10, m<=8). Найти максимум и минимум среди всех элементов, а также номера строк и столбцов, на пересечении которых они находятся. Поменять максимум и минимум местами.

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

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

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

3. Принять номер строки минимума nmini =0;

4. Принять номер столбца минимума nminj =0;

5. Принять минимум равным начальному элементу min =x[0][0];

6. Принять номер строки максимума nmaxi =0;

7. Принять номер столбца максимума nmaxj =0;

8. Принять максимум равным начальному элементу max =x[0][0];

9. Для i от 1 до x. length

Для j от 1 до x [i].length

9.1. если x[i][j] < min

nmini=i;

nminj=j;

min=x[i][j];

9.2. если x[i][j] >max

nmaxi=i;

nmaxj=j;

max=x[i][j];

10. Вывести результаты о максимуме и минимуме.

Содержание

 

11 Поменять местами минимальный и максимальный элемент матрицы.

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

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

 

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

Задача 8.3. Ввести матрицу а размерностью m*n (n<=10, m<=8). Выполнить следующее:

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

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

 

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

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

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

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

3. Для i от 1 до a.length

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

3.2. Для j от 1 до a[i].length

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

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

3.3. вывести sum

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

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

5. Для j от 1 до a[0].length

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

5.2. Для i от 1 до a.length

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

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

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

7. Закончить

Содержание

 


Задача 8.4. Ввести матрицу а размерностью m*n (n<=10, m<=8).

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

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

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

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

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

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

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

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

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

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

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

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

nmin = j;

min = a [i][j];

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

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

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

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

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

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

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

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

nmax = i;

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

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

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

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

Содержание

 

8.2 ЗАДАНИЯ

8.2.1. Общие задания

Задание 8.1. Создать приложения для задач 8.1 – 8.4, описанных в лабораторной работе.

8.2.2. Задания по бригадам

Вариант 1

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

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

Вариант 2

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

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

Вариант 3

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

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

Вариант 4

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

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

Содержание

 

Вариант 5

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

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

Вариант 6

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

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

Вариант 7

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

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

Вариант 8

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

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

 

Содержание

 

Вариант 9

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

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

Вариант 10

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

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

Вариант 11

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

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

Вариант 12

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

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

 


Дата добавления: 2015-09-30; просмотров: 34 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
Лазеры на вибронных кристаллах | Тема : Предмет та об'єкт юридичної деонтології.

mybiblioteka.su - 2015-2024 год. (0.021 сек.)