8
I have the following code:
def processa(matriz):
print('----- Matriz Lida -----')
for i in range(len(matriz)):
for j in range(len(matriz[0])):
print(matriz[i][j].center(6), end=' ')
print()
return
def localizaCelulaComMaiorValor(matriz):
resp = (0, 0)
for lin in range(len(matriz)):
for col in range(len(matriz[lin])):
if matriz[lin][col] > matriz[resp[0]][resp[1]]:
menor = matriz[lin][col]
resp = (lin, col)
print('-----------------------')
print('Maior valor: ', menor, 'na posição: ', resp)
return
def localizaCelulaComMenorValor(matriz):
resp = (0, 0)
for lin in range(len(matriz)):
for col in range(len(matriz[lin])):
if matriz[lin][col] < matriz[resp[0]][resp[1]]:
maior = matriz[lin][col]
resp = (lin, col)
print('Menor valor: ', maior, 'na posição: ', resp)
return
matriz =[]
condicao = 0
while condicao == 0:
a = input().split()
matriz.append(a)
if not a:
if not a and len(matriz) == 1:
print('----- Matriz Lida -----')
print('Matriz vazia, não existem valores')
print('menor e maior!!!')
exit()
matriz.pop()
processa(matriz)
localizaCelulaComMaiorValor(matriz)
localizaCelulaComMenorValor(matriz)
exit()
When I type nothing, the displayed message is:
----- Matriz Lida ----
Matriz vazia, não existem valores menor e maior!!!.
That is correct.
When typing the matrix example:
132 232
342 4
222 234
1232 13
The message displayed is:
----- Matriz Lida ----
132 232
342 4
222 234
1232 13
Maior valor: 4 na posição: (1, 1)
Menor valor: 1232 na posição: (3, 0)
That’s also correct.
When typing the matrix example:
8 5 6 7
13 -4 5 55
2 3 300 2
10 2 4 8
The message displayed is:
----- Matriz Lida ----
8 5 6 7
13 -4 5 55
2 3 300 2
10 2 4 8
Traceback (most recent call last):
File "LOCALIZAÇÃO_FILE", line 46, in <module>
localizaCelulaComMaiorValor(matriz)
File "LOCALIZAÇÃO_FILE", line 18, in localizaCelulaComMaiorValor
print('Maior valor: ', menor, 'na posição: ', resp)
UnboundLocalError: local variable 'menor' referenced before assignment
Where am I going wrong for examples like this, since the first example works? In the second example is only working the display of the resulting matrix, does not display the largest/smallest number and its location. How to fix?