Лабораторная работа 4.1. Матрицы

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

ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ

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

#include <iostream>

using namespace std;

int main() {

int N;

int matrix[100][100];

cout << "N=";

cin >> N;

for (int i=0; i<N; i++) {

for (int j=0; j<N; j++) {

if (i==j) {

matrix[i][j] = rand()%1000;

} else {

matrix[i][j] = 0;

}

}

}

for (int i=0; i<N; i++) {

for (int j=0; j<N; j++) {

cout.width(4);

cout << matrix[i][j];

}

cout << endl;

}

system("pause");

return 0;

}

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

#include <iostream>

using namespace std;

int main() {

int N;

int matrix[100][100];

cout << "N="; cin >> N;

for (int i=0; i<N; i++) {

for (int j=0; j<N; j++) {

matrix[i][j] = i<=j? rand()%100: 0;

}

}

for (int i=0; i<N; i++) {

for (int j=0; j<N; j++) {

cout.width(4);

cout << matrix[i][j];

}

cout << endl;

}

system("pause");

return 0;

}

Задача 3. Напишите программу, которая принимает с клавиатуры число N, создает матрицу, заполненную случайными числами, и выводит ее на экран. Затем вычислите сумму элементов, расположенных на побочной диагонали.

#include <iostream>

using namespace std;

int main() {

setlocale(LC_ALL, "Russian");

int N;

int matrix[100][100];

cout << "N=";

cin >> N;

for (int i=0; i<N; i++) {

for (int j=0; j<N; j++) {

matrix[i][j] = rand()%10;

}

}

for (int i=0; i<N; i++) {

for (int j=0; j<N; j++) {

cout.width(2);

cout << matrix[i][j];

}

cout << endl;

}

int sum = 0;

for (int i=0; i<N; i++) {

sum += matrix[i][N-i-1];

}

cout << "Сумма=" << sum << endl;

system("pause");

return 0;

}

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

#include <iostream>

#include <ctime>

using namespace std;

int main() {

srand(time(0));

setlocale(LC_ALL, "Russian");

int N;

int matrix[100][100];

cout << "N=";

cin >> N;

for (int i=0; i<N; i++) {

for (int j=0; j<N; j++) {

matrix[i][j] = rand()%100;

}

}

for (int i=0; i<N; i++) {

for (int j=0; j<N; j++) {

cout.width(3);

cout << matrix[i][j];

}

cout << endl;

}

int imax=0, jmax=0;

for (int i=0; i<N; i++) {

for (int j=0; j<N; j++) {

if (matrix[imax][jmax] < matrix[i][j]) {

imax=i, jmax=j;

}

}

}

cout << "Максимальный элемент равен " <<

matrix[imax][jmax] << endl;

cout << "Находится в строке " <<imax<<endl;

system("pause");

return 0;

}

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

#include <iostream>

#include <ctime>

using namespace std;

int main() {

srand(time(0));

setlocale(LC_ALL, "Russian");

int N;

int matrix[100][100];

cout << "N=";

cin >> N;

for (int i=0; i<N; i++) {

for (int j=0; j<N; j++) {

matrix[i][j] = rand()%10;

}

}

for (int i=0; i<N; i++) {

for (int j=0; j<N; j++) {

cout.width(3);

cout << matrix[i][j];

}

cout << endl;

}

cout << "Введите номер строки:\n";

int s;

cin >> s;

int sum=0;

for (int j=0; j<N; j++) {

sum += matrix[s][j];

}

cout << "Сумма равна " << sum << endl;

system("pause");

return 0;

}

ЗАДАЧИ

1. Создайте нулевую матрицу. Матрица называется нулевой, если все ее элементы равны нулю.

2. Создайте единичную матрицу. Квадратная матрица называется единичной, если все ее диагональные элементы равны единице, а остальные - нулю.

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

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

5. Создайте матрицу, заполненную нулями и единицами в шахматном порядке.

6. Создайте симметричную матрицу, заполненную случайными числами. Квадратная матрица A называется симметричной, если она симметрична относительно главной диагонали, другими словами, для всех ее элементов выполняется равенство Aij=Aji.

7. Создайте антисимметричную матрицу, заполненную случайными числами. Квадратная матрица A называется антисимметричной, если для всех ее элементов выполняется равенство Aij=-Aji.

8. Создайте нижнетреугольную матрицу, заполненную случайными числами. Квадратная матрица называется нижнетреугольной, если все ее элементы, расположенные над главной диагональю, равны нулю.

9. Квадратная матрица называется клеткой Жордана, если все ее диагональные элементы равны одному числу; элементы, расположенные выше главной диагонали, равны единиц; остальные элементы равны нулю. Напишите программу, которая принимает с клавиатуры число N, создает клетку Жордана размера N на N и выводит ее на экран. На диагональ этой матрицы поставьте случайное число.

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

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

12. Создайте матрицу, у которой по диагонали расположены последовательные числа от 1 до N, а остальные элементы равны нулю.

13. Напишите программу, которая принимает с клавиатуры число N и заполняет квадратную матрицу размера N по следующему правилу: на главной диагонали матрицы должны быть расположены нули, а остальные элементы матрицы – случайными числами.

14. Напишите программу, которая принимает с клавиатуры число N и заполняет квадратную матрицу размера N по следующему правилу: на побочной диагонали матрицы должны быть расположены нули, а на остальных позициях – случайные числа.

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

16. Напишите программу, которая создает матрицу, заполненную как таблица умножения, и выводит ее на экран.

17. След матрицы – это сумма диагональных элементов этой матрицы. Вычислите след матрицы.

18. Найдите максимальный и минимальный элементы матрицы.

19. Найдите позиции (номер строки и столбца) максимального и минимального элементов матрицы.

20. Найдите сумму всех элементов матрицы.

21. Определите количество четных чисел в этой матрице.

22. Предложите пользователю ввести число и проверьте, есть ли это число в матрице.

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

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

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

26. Норма Фробениуса для матрицы вычисляется как корень квадратный из суммы квадратов элементов матрицы. Напишите программу, которая принимает с клавиатуры число N, создает матрицу размера N на N, заполненную случайными числами, и выводит ее на экран. Затем вычислите норму Фробениуса этой матрицы.

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

28. Введите с клавиатуры число и определите, сколько чисел из матрицы превосходят это число.

29. Введите номер столбца и вычислите сумму его элементов.

30. Введите номер столбца и определите максимальный и минимальный элементы в нем.

31. Введите номер строки и определите максимальный и минимальный элементы в ней.

32. Выведите диагональные элементы матрицы через запятую.

33. Реализуйте проверку того, что матрица является матрицей Адамара.

34. Введите N и создайте латинский квадрат размера N.

35. Введите N и создайте магический квадрат размера N.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: