Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_lab1.doc
Скачиваний:
36
Добавлен:
13.11.2018
Размер:
6.74 Mб
Скачать

Лабораторная работа №6 Обработка на пк двумерных массивов.

Цель лабораторной работы – освоение методики обработки информации в двумерных массивах.

Перед выполнением лабораторной работы студент должен знать:

- определение и правила описания двумерных массивов разных типов;

- способы доступа к элементам массива данных;

- способы инициализации элементов массива;

- способы алгоритмизации поиска минимальных и максимальных значений в двумерных массивах;

После выполнения лабораторной работы студент должен уметь:

- выполнять инициализацию массивов разных типов и размерности;

- использовать средства языка С++ для преобразования типов данных;

- выполнять алгоритмизацию поиска минимальных и максимальных значений в двумерных массивах;

Двумерные массивы

Двумерный массив является структурированным типом данных, который создается путем вложения одномерных массивов.

Доступ к элементам выполняется по индексам строк и столбцов.

В С++ объявление двумерного массива определяет количество строк, количество столбцов и тип данных элементов массива. Например, массив Т

type T [ RowCount ] [ ColCount ] ;

может быть представлен следующим образом:

Столбцы

0 1 2 3 4 5 6 7 8

__________________________________________

0 __________________________________________

1 _________10______________________________

2 _______________________________-3_________

3 __________________________________________

Строки

Ссылка на элементы массива Т производится с помощью индексов строки и столбца:

T[i] [j], 0 <= i <= RowCount – 1, 0 <= j <= ColCount – 1

Например, матрица Т – это массив целых размером 4 х 8:

int T [4] [8];

Причем значение T[1] [2] = 10 и T[2] [6] = -3.

Концепция двумерного массива может быть расширена для охвата основных многомерных массивов, элементы в которых доступны с помощью трех или более индексов.

Двумерный массив можно представить как список одномерных массивов.

Например, T[0] – это строка 0, которая состоит из ColumnCount отдельных элементов.

Запись

int T[ ] [8];

указывает, что Т является списком из 8-элементных массивов.

Двумерный массив может инициализироваться присваиванием элементам по одной строке каждый раз. Например, массив Т задает таблицу размером 3 х 4:

int T [3] [4] = { {20, 5, -30, 0}, {-40, 15, 100, 80}, {3, 0, 0, -1} };

Двумерные таблицы являются наиболее распространенной формой представления данных экономического характера. Любая таблица – документ, как правило, содержит:

  • наименование, так называемую «шапку» с именами колонок (строк);

  • строки – записи таблицы, имеющие одинаковую длину, и содержащие несколько разнотипных по характеру, но связанных между собой полей – реквизитов;

  • итоговую часть.

Задача 1. Составить программу обработки двумерных массивов согласно следующего задания:

Вариант 1

Дана целочисленная прямоугольная матрица. Определить:

количество строк, не содержащих ни одного нулевого элемента;

максимальное из чисел, встречающихся в заданной матрице более одного раза.

Вариант 2

Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента.

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

Вариант 3

Дана целочисленная прямоугольная матрица. Определить:

количество столбцов, содержащих хотя бы один нулевой элемент;

номер строки, в которой находится самая длинная серия одинаковых элементов.

Вариант 4

Дана целочисленная квадратная матрица. Определить:

произведение элементов в тех строках, которые не содержат отрицательных элементов;

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

Вариант 5

Дана целочисленная квадратная матрица. Определить:

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

минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.

Вариант 6

Дана целочисленная прямоугольная матрица. Определить:

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

номера строк и столбцов всех седловых точек матрицы.

Примечание. Матрица А имеет седловую точку Аij, если Аij является минимальным элементом в i-й строке и максимальным в j-м столбце.

Вариант 7

Для заданной матрицы размером 8 на 8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом.

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

Вариант 8

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

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

Вариант 9

Соседями элемента Аij в матрице назовем элементы Аkl с i - 1 < k < i + l, j - 1 < l < j+1, (k, l) != (i, j). Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы. Построить результат сглаживания заданной вещественной матрицы размером 10 на 10.

В сглаженной матрице найти сумму модулей элементов, расположенных ниже главной диагонали.

Вариант 10

Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10. Найти сумму модулей элементов, расположенных выше главной диагонали.

Вариант 11

Коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы. С помощью допустимых преобразований привести систему к треугольному виду. Найти количество строк, среднее арифметическое элементов которых меньше заданной величины.

Вариант 12

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

Вариант 13

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

Вариант 14

Осуществить циклический сдвиг элементов квадратной матрицы размерности М х N вправо на k элементов таким образом: элементы 1-й строки сдвигаются в последний столбец сверху вниз, из него — в последнюю строку справа налево, из нее — в первый столбец снизу вверх, из него — в первую строку; для остальных элементов — аналогично.

Вариант 15

Дана целочисленная прямоугольная матрица. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент.

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

Вариант 16

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

Найти номер первого из столбцов, не содержащих ни одного отрицательного элемента.

Вариант 17

Путем перестановки элементов квадратной вещественной матрицы добиться того, чтобы ее максимальный элемент находился в левом верхнем углу, следующий по величине — в позиции (2,2), следующий по величине — в позиции (3,3) и т. д., заполнив таким образом всю главную диагональ.

Найти номер первой из строк, не содержащих ни одного положительного элемента.

Вариант 18

Дана целочисленная прямоугольная матрица. Определить:

количество строк, содержащих хотя бы один нулевой элемент;

номер столбца, в котором находится самая длинная серия одинаковых элементов.

Вариант 19

Дана целочисленная квадратная матрица. Определить:

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

минимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.

Вариант 20

Дана целочисленная прямоугольная матрица. Определить:

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

номера строк и столбцов всех седловых точек матрицы.

Примечание. Матрица А имеет седловую точку Аij, если Аij является минимальным элементом в i-й строке и максимальным в j-м столбце.

Задача № 2. Перестановкой строк и столбцов упорядочить по возрастанию элементы главной диагонали квадратной матрицы.

Задача № 3. Написать программу циклического сдвига элементов квадратной матрицы на заданное количество позиций, считая, что матрица связана по строкам

Задача № 4. Написать программу, которая для квадратной матрицы определяет максимум среди сумм элементов, расположенных на линиях, параллельных главной диагонали, и выше.

Задача № 5. Дана целочисленная прямоугольная матрица. Переходом назовем перемещение к соседнему элементу по горизонтали или по вертикали. Найти количество различных путей прохода матрицы с левого верхнего угла в правый нижний, если допустимыми являются только переходы «вправо на один элемент» и «вниз на один элемент». Определить путь, сумма элементов которого максимальна.

Контрольные вопросы

1. Дайте определение массива.

2. Что понимается под двумерным массивом?

3. Как располагается двухмерный массив в памяти?

4. Укажите примеры задания размерности массива.

5. Как можно инициализировать элементы массива?

6. Приведите пример определения двумерного массива.

7. Какую информационную нагрузку несет имя одномерного массива?

8.Какую информационную нагрузку несет имя двухмерного массива?

9.Какая операция используется для определения адреса произвольного элемента массива?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]