Ajuda com exercício de matrizes!
O exercício é este:
"Faça uma subrotina que receba uma matriz M(10,10), o número de uma linha L, o número de uma
coluna C e retorne a matriz N(9,9) resultante da remoção da linha L e da coluna C".
Eu fiz um código em que consigo prosseguir corretamente até o fim da primeira linha. Não sei como consertar, para o código fluir corretamente, podem me ajudar?
Segue o código que já construí:
algoritmo "semnome"
var
L, C, y, x:inteiro
N: vetor [1..9,1..9] de inteiro
M: vetor [1..10,1..10] de inteiro
inicio
// Eu não fiz a parte de leitura de quais linhas e colunas o usuário quer
//retirar, então atribuí valores a duas variáveis, para simular a resposta.
x<- 2 //linha a ser retirada
y <- 2//coluna a ser retirada
//Lê matriz M, com valores aleátórios.
//Só utilizei os valores aleatórios para fins e teste.
//Posso mudar para leitura manual, a qualquer momento.
Para L de 1 ate 10 faca
Para C de 1 ate 10 faca
M[L,C] <- Randi(9)
FimPara
FimPara
//Escreve matriz M
Para L de 1 ate 10 faca
Para C de 1 ate 10 faca
Escreva (M[L,C])
FimPara
EscrevaL()
FimPara
EscrevaL()
//Aqui é onde o problema começa!
//Teoricamente, era para atribuir a matriz N os valores da matriz M
//caso X ou Y não fossem iguais a L (Linha) e C (coluna)
Para L de 1 ate 9 faca
Para C de 1 ate 9 faca
//Se Y e X for igual linha e coluna a ser retirada o bloco é executado
Se (L = x) e (C = y) entao
N[L,C] <- M[L+1,C+1]
Senao
Se (L = x) entao
//Se L for igual a linha a ser retirada o bloco é executado
N[L,C] <- M[L+1,C+1]
Senao
Se (C = y) entao
//Se C for igual a coluna a ser retirada o bloco é executado
N[L,C] <- M[L,C+1]
Senao
//Caso não seja verdadeiro, alguns dos casos anteriores
//Atribui normalmente
N[L,C] <- M[L,C]
FimSe
FimSe
FimSe
FimPara
FimPara
//Escreve matriz N
Para L de 1 ate 9 faca
Para C de 1 ate 9 faca
Escreva (N[L,C])
FimPara
EscrevaL()
FimPara
EscrevaL()
fimalgoritmo
Discussão (6)
Carregando comentários...