Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
YaP_laby.pdf
Скачиваний:
156
Добавлен:
31.05.2015
Размер:
915.49 Кб
Скачать

ЛАБОРАТОРНАЯ РАБОТА № 6 ОБРАБОТКА МАТРИЦ

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

Задания

1.Изучить:

а) правила организации вложенного цикла с учетом порядка перебора элементов матрицы;

б)правила использования приемов программирования в структурах с вложенными циклами;

в) способы ввода и вывода матриц, имеющиеся в языке программирования.

2.Разработать алгоритм решения в соответствии с заданием.

3.Составить программу решения задачи.

4.Подготовить тестовый вариант программы и исходных данных.

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

1.Указать основные правила организации вложенных циклов.

2.Указать способы выхода из внутреннего цикла.

3.Как организовать вывод матрицы в общепринятом виде?

4.Как организовать вывод нижней треугольной матрицы в общепринятом виде?

5.Как организовать ввод матрицы размером N x M элементов?

6.Верно ли утверждение, что индекс массива должен иметь тип float.

Вариантызаданий

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

2. Даны целые числа a1, a2, a3. Построить целочисленную матрицу bij ,

i, j = 1, 2, 3, для которой bij = a i – 3 a j.

3. Дана целочисленная матрица размера N x M. Вывести номер ее последней строки столбца, содержащего равное количество положительных и отрицательных элементов (нулевые элементы не учитываются).

4. Дана целочисленная матрица размера M x N. Различные строки (столбцы) матрицы назовем похожими, если совпадают множества чисел, встречающихся в этих строках (столбцах). Найти количество строк столбцов, похожих на первую последнюю строку столбца.

Языки программирования. Метод. указания по лаб. работам

-32-

ЛАБОРАТОРНАЯ РАБОТА № 6 ОБРАБОТКА МАТРИЦ

Варианты заданий

5.Дана целочисленная матрица размера M x N. Найти количество ее строк столбцов, все элементы которых различны.

6.Дана квадратная матрица. Найти максимальное значение из элемен-

тов, расположенных в левом нижнем углу.

7. Дана квадратная матрица порядка M. Найти суммы элементов ее диагоналей, параллельных главной побочной (начиная с одноэлементной диагонали A[1,M]1|A[1,1]2).

8.Дана квадратная матрица порядка M. Вывести минимальные максимальные из элементов каждой ее диагонали, параллельной главной побочной (начиная с одноэлементной диагонали A[1,M]3|A[1,1]4).

9.Дана квадратная матрица порядка M. Заменить нулями элементы, лежащие одновременно выше ниже главной диагонали (включая эту диаго-

наль) и выше ниже побочной диагонали (также включая эту диагональ).

10.Дана квадратная матрица порядка M. Зеркально отразить ее элементы относительно [горизонтальной оси симметрии] [вертикальной оси симметрии] [главной диагонали] [побочной диагонали] матрицы.

11.Дана квадратная матрица порядка M. Повернуть ее на 90о, 180о, 270о

вположительном направлении.

12.Дана матрица размера N x M. Вывести количество строк столбцов,

элементы которых монотонно возрастают, убывают.

13.Дана матрица размера N x M. Найти минимальный, максимальный среди элементов тех строк столбцов, которые упорядочены либо по возрастанию, либо по убыванию.

14.Дана квадратная матрица. Составить программу, которая прибавила бы каждому элементу данной строки элемент, который принадлежит этой строке и главной диагонали.

15.Дана матрица размера N x m. Поменять местами строки столбцы, содержащие минимальный и максимальный элементы матрицы.

16.В матрице А (m, n) найти строку с максимальной суммой элементов

истроку с минимальной суммой элементов. Далее сформировать вектор

В (2, m), у которого бы элементы чередовались с максимальной и минимальной строками.

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

18.В данной целочисленной квадратной матрице указать индексы всех элементов, имеющих наибольшее значение.

19.Задана квадратная матрица. Найти местоположение столбца (номерL) строки c минимальной суммой элементов, а также элемент с минимальным

значением в матрице А. Далее сформировать вектор Р (5), каждый элемент которого равен разности соответствующих элементов К-столбца и L-строки, деленной на минимальный элемент матрицы А.

20. Задана прямоугольная матрица размера N х M. Найти местоположение (номер К) строки с максимальной суммой элементов. Далее сформировать матрицу В размером N х M, каждый элемент строки которой равнялся бы элементу соответствующей строки матрицы А, деленному на соответствующий элемент К-й строки.

Языки программирования. Метод. указания по лаб. работам

-33-

ЛАБОРАТОРНАЯ РАБОТА № 6 ОБРАБОТКА МАТРИЦ

Варианты заданий

21. Задана квадратная матрица R (n, n). Найти номер столбца К и строки L с максимальным произведением. Сформировать вектор В (2n), элементы которого чередуются: нечетные равны сумме, а четные – разности элементов К-го столбца и L-й строки.

22.Дана целочисленная матрица размера M x N. Найти элемент, являющийся максимальным в своей строке и минимальным в своем столбце.

23.Дана матрица размера M x N. Элемент называется локальным минимумом (максимумом), если он меньше (больше) всех окружающих его

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

24. Дана матрица размера M x N. Поменять местами ее строки столбцы так, чтобы их минимальные и максимальные элементы образовывали возрастающую убывающую последовательность.

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

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

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

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

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

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

31.По матрице A построить матрицу B того же размера. Элемент bij

матрицы B определяется следующим образом. Через элемент aij матрицы A проводятся две диагонали, параллельные побочной и главной. Элемент bij

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

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

33.Среди столбцов целочисленной матрицы, которые содержат только четные числа, найти строку с максимальной суммой элементов

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

элементов максимально.

35. Дана матрица, найти максимальное значение среди минимальных по строкам.

Примеррешениявариантазадания

Дана квадратная матрица размером N x N. Переставить элементы верхнего треугольника матрицы с соответствующими элементами нижнего треугольника.

Языки программирования. Метод. указания по лаб. работам

-34-

ЛАБОРАТОРНАЯ РАБОТА № 6 ОБРАБОТКА МАТРИЦ

Пример решения варианта задания

Анализ задачи.

1. Начальные данные:

а) константа n, которая определяет размер матрицы; б) двумерный массив размерности n;

в) параметр i для цикла по строкам; г) параметр j для цикла по столбцам;

д) параметр r для промежуточной информации.

2.Результат вычисления: новая матрица с переставленными элементами.

3.Определяем диапазон изменения индексов элементов верхней треугольной матрицы:

а) если a[i][j] элемент верхнего треугольника матрицы, то его надо переставить с элементом a[n-1][j] нижнего треугольника;

б) строки верхней треугольной матрицы изменяются от индекса 0 до индекса n/2 (независимо от того, является ли значение n четным или нечетным).

в) номера столбцов j элементов верхнего треугольника i-той строки меняются от i до n-1- i.

На основании проделанного анализа запишем код программы для поставленной задачи.

void main()

 

{

const n = 5;

 

int i,j, a[n][n];

 

int r;

 

 

clrscr();

 

printf (“ Введи элементы матрицы: \n”);

 

for (i = 0; i <= n-1;i++)

 

for ( j = 0; j <= n-1; j++)

 

{

printf(“a(%d,%d)= “,i,j);

 

scanf(

"%d", &a[i][j]);

 

cout << "Введена матрица: \n";

 

for ( i = 0;i < n; i++)

 

{ for ( i = 0; j < n; j++)

 

printf(“%d “, a[i][j]);

 

printf("\n");

 

}

 

 

 

for ( i = 0; i <= n/2; i++)

 

for (j = i; j <= n-1-i; j++)

 

{ r = a[i][j];

 

a[i][j] = a[n-1-i][j];

 

a[n-1-i] [j]=r; }

 

cout << "\n\nМатрица после перестановки:\n";

 

for ( i = 0; i <= n-1; i++)

 

{ for ( j = 0; j <= n-1; j++)

 

printf("%d ", a[i][j]);

 

printf("\n"); }

 

getch();}

 

 

 

 

 

 

Языки программирования. Метод. указания по лаб. работам

-35-

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