5. Matrices
5.01. Write a program that reads a matrix of integers from
the console, then a number, and prints all the positions at
which that number appears in the matrix.
The matrix definition on the console will contain a line with
two positive integer numbers R and C – the number of rows and
columns in the matrix – followed by R lines, each containing
C numbers (separated by spaces), representing each row of the
matrix.
The number you will need to find the positions of will be
entered on a single line, after the matrix.
You should print each position on a single line – first print
the row, then the column at which the number appears.
If the number does not appear in the matrix, print not found.
Use vectors.
5.02. Write a program that reads two integer matrices (2D
arrays) from the console and compares them element by
element. For better code reusability, you could do the
comparison in a function, which returns true if they are
equal and false if not.
Each matrix definition on the console will contain a line
with a positive integer number R – the number of rows in the
matrix – followed by R lines containing the numbers in the
matrix, separated by spaces.
The matrices will have at most 10 rows and at most 10
columns.
Print equal if the matrices match, and not equal if they
don’t match.
Example input Expected output
2 3
1 2 3
4 5 6
3
0 2
2 3
1 2 3
4 2 2
2
0 1
1 1
1 2
2 3
1 -2 -3
4 -5 6
5
not found
5.03. We say that in the elements of the matrix there is
a local minimum ( ) for , if the elements that stay on it's
left, right, up and down position are bigger than it. Write a
program that finds and outputs all the elements of the matrix
for which has a local minimum.
5.04. Write a program which checks and prints the numbers of
those rows of a matrix containing at least one negative
element.
5.05. Write a program which:
a) inputs the elements of a square real matrix with size
by rows ;
b) from the matrix constructs a vector ,
where and the first elements of coincide with the
first column of , the second elements of with the second
Example input Expected output
1
1 2 3
1
1 2 3
equal
2
1 2 3
2 1 3
2
1 2 3
2 1 3
equal
2
11
21
2
11
21
equal
2
1 2
4 5 6
2
1 2
4 5 6 7
not equal
2
1 2 3
4 5 6
2
1 2
3 4
not equal
AnXm
aij A
A A
A
NxN
A B ⃗= (b1, b2, . . . , bm)
m = N2 N B ⃗
A N B
column of and etc., the last elements of coincide with
the last column of ;
c) sorts in ascending order the elements of ;
d) constructs a new square matrix with size , where the
elements from the first row coincide with the first
elements of , the elements from the second row coincide with
the second elements of < , etc., the elements from the
last row coincide with the last elements of ;
e) prints matrix by rows.
5.06. Let A be a n-th order square matrix. Write a program
which finds:
a) the sum of the elements over the main diagonal;
b) the product of the elements under the main diagonal;
c) the sum of the positive elements from the main diagonal;
d) the product of the elements from the secondary diagonal;
e) the sum of the elements outside the secondary diagonal.
5.07. Write a program which erases the k-th column of the
matrix . Deleting means moving the columns with one to the
left and reducing the number of columns by one.
5.08. Write a program which finds the sum of the squares of
those elements in a real matrix of n-th order, which are
special. A special element is element for which the following
inequality is true:
.
5.09. It is given the set of pairs:
, where and , are integer
numbers. Write a program which checks whether the set M
defines a function. Hint: The set M defines a function
whenever for every is satisfied .
5.10. Let be three matrices and be two vectors.
Write a program which finds:
A N B
A
B ⃗
C NxN
N
B ⃗
N B ⃗
N B ⃗
C
AnXm
a[i, j] ≥
a[i − 1,j] + a[i, j − 1] + a[i, j + 1] + a[i + 1,j]
4
M
M = {(x1, y1), (x2, y2), . . . , (xn, yn)} xi yi i = 1,...,n
xi = xj yi = yj
Y = A, B,C X, Y
a) ;
b) ;
c) ;
d) , where is the transposed matrix of .
5.11. Write a program which finds the maximum number, which
occurs int a given n-th order matrix more than once.
5.12. We say that two columns of a matrix are alike if the
sets of numbers that make up the columns are equal. Write a
program that finds the numbers of all the columns of matrix
with size that are alike.
5.13. A matrix has a saddle point in if is a minimum
element in the i-th row and a maximum element in the j-th
column of . Write a program that determines if a saddle
point exists in a given matrix .
5.14. A matrix has a saddle point in if is a minimum
element in the i-th row and a maximum element in the j-th
column of . Write a program that finds all saddle points in
a given matrix .
5.15. A square matrix of -th order is given. Write a
program, which determines if there exist a number k, such
that the k-th column matches the k-th row of the matrix .
5.16. It is given a sequence of real numbers .
Write a program, which constructs and prints on the console
the square matrix:
5.17. Given a real square matrix of order . Write a
program which finds:
C = A + B
Y = A . X
C = A . B
A = AT AT A
A
A
N × N
A aij aij
A
A
A aij aij
A
A
A N
A
a1, a2, a3, . . . , an
A′ =
a1 a2 a3 . . . an−2 an−1 an
a2 −a3 a4 . . . an−1 an a1
a3 a4 a5 . . . an a1 a2 . . . an−2 an−1 an . . . an−5 an−4 an−3
an−1 an a1 . . . an−4 an−3 an−2
an a1 a2 . . . an−3 an−2 an−1
A N
5.18. It's given a real square matrix , , where
. Write a program which checks if is orthonormal,
where we define a matrix to be orthonormal if the scalar
product of any two different rows of is equal to 0 and the
*scalar product* of any row with itself is equal to 1.
5.19. Write a program which determines whether the square
matrix is a magic square, i.e. such that the sum of the
elements of all rows and columns is the same.
5.20. Write a program which asks the user for a natural
number and generates (also prints) eight matrices in
the pattern of the given example:
- for (note how all the numbers are aligned!):
a)
0 0 0 0
0 1 0 0
0 0 2 0
0 0 0 3
b)
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
c)
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
a) max
1≤i≤n
{min aij
1≤j≤n
}
b) max
1≤j≤n
{min aij
1≤i≤n
}
c) min
1≤i≤n
{max aij
1≤j≤n
}
d ) max
1≤j≤n
{min aij
1≤i≤n
}
A N × N
2 ≤ N ≤ 10 A
A
A
n n × n
n = 4
d)
1 2 3 4
0 1 2 3
0 0 1 2
0 0 0 1
e)
1 8 9 16
2 7 10 15
3 6 11 14
4 5 12 13
f)
1 3 6 10
2 5 9 13
4 8 12 15
7 11 14 16
g)
7 11 14 16
4 8 12 15
2 5 9 13
1 3 6 10
h)
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
5.21. Game of Life (Conway's Game of Life) is a game for zero
players and consists of a surface, divided in cells. Every
cell is dead or alive. The game is played in turns. Every
turn depends on the state of the game in the previous turn
following these rules:
- Every cell with less than two living neighbours dies (of
loneliness);
- Every living cell with more than three living neighbours
dies (too crowded);
- Every living cell with two or three living neighbours
stays alive for the next turn;
- Every dead cell with exactly three living neighbours
comes back to live.
Your task is to simulate this game. The initial state of the
surface should be hard-coded. On every turn the state of the
cells should be written to the console: 'X' for a living
cell, '.' for a dead cell.
- [Conway's Game of Life](https://en.wikipedia.org/wiki/
Conway%27s_Game_of_Life "Markdown Tutorial")
- [Simulation](https://bitstorm.org/gameoflife/ "Markdown
Tutorial")
- Some configurations:
![alt text](https://github.com/andy489/
Data_Structures_and_Algorithms_CPP/blob/master/assets/
Conway's%20Game%20of%20Life%2001.gif)
5.22. You are given numbers and a matrix that
consists of numbers 0 through 9. Your task is to create a
program that says how many islands and peninsulas are there.
These are the rules:
- 0 is water;
- 1-9 is the height of the ground;
- Islands are pieces of land connected by different grounds.
Example of an island:
00000000000000000
00000000110000000
00000001211000000
00000012321100000
00000123432110000
00000012332211000
00000001211000000
00000000100000000
00000000000000000
- Peninsulas are like islands but on the edge of the map.
Example of a peninsula:
98620000000000
76542110000000
84321000000000
52321100000000
32100000000000
21000000000000
10000000000000
n, m n × m
- Note that we don't actually care if the land is an island
or peninsula. We care about the number of different connected
lands.
5.23. We are given the coefficients and
. Write a program which solves the system of linear
equations:
github.com/andy489
Example input Expected output
10 5
4321000131
3210010010
2100121000
2100010000
1000000001
4
aij
(1 ≤ i ≤ n,1 ≤ j ≤ n)
bi
(i = 1,...,n)
a11x1 + a12x2 + a13x3 + . . . + a1nxn = b1
a21x1 + a22x2 + a23x3 + . . . + a2nxn = b2
a31x1 + a32x2 + a33x3 + . . . + a3nxn = b3 . . .
an1x1 + an2x2 + an3x3 + . . . + annxn = bn