Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
é... Faça um algoritmo que construa uma matriz M por N de números reais e se esta matriz for quadrada ( M = N )
imprimir sua diagonal principal.
eu ate achei uma explicação em um topico do forum mas ñ entendi bastante,
preciso de uma ideia como começar sei q para uma matriz ser quadrada as linhas e as colunas tem q ter quantidades iguais
eu comecei assim mas sei q esta errado
matriz: vetor[1..5,1..5] de inteiro
num, contc, contl: inteiro
inicio
contc:= 1
contl:= 1
para de contl de 1 ate 5 faca
para contc de 1 ate 5 faca
onde achei Ex matriz
acho q entendi!!
mas e essa diagonal principal.
voce terá dois laços para "andar" pelos elementos da matriz.
Quando os índices forem iguais voce estará em um elemento da diagonal principal.
Veja:
para i de 1 ate ncolunas
para j de 1 ate nlinhas
// quando i = j voce estará em um elemento da diagonal principal
Para saber se i = j use um "se".
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
no caso da diagonal principal é pra caucular o so pra dizer se é quadrada ou ñ?
Se a matriz for quadrada imprimir a diagonal principal.
Voce terá um "se" que identifica se a matriz é quadrada.
Dentro desse "se" voce terá dois laços para percorrer a matriz, e dentro de cada iteração voce pode fazer um "se" que identifique se é um elemento da diagonal principal.
se (ncolunas = nlinhas) entao
para i de 1 ate ncolunas
para j de 1 ate nlinhas
se (i = j) entao
//imprimir elemento
fimse
fimpara
fimpara
senao
//matriz nao eh quadrada
fimse
velho ñ consegui bons resultados mais vou postar o q eu conseguir fazer
CODE
var
matriz: vetor[1..20,1..15] de inteiro
num, coluna, linha, contc, contl: inteiro
inicio
contc:= 1
contl:= 1
leia (coluna)
leia (linha)
se (coluna = linha) entao
para contl de 1 ate linha faca
para contc de 1 ate coluna faca
leia (num)
se (contl = contc) entao
matriz [contl, contc]:= num
escreva (matriz [contl, contc])
fimse
fimpara
fimpara
senao
escreva ("não é quadrada")
fimse
fimalgoritmo
oq eu entendi é q no você tem q preencher a matriz primeiro!
depois você diz quais são os numero da matriz principal!
é isso msm?
eu acho q os elemento saos os numeros por isso fiz assim, mas ñ tenho certeza
Como voce só precisa mostrar o preenchimento da matriz se ela for quadrada basta uma pequena adaptação no seu códio.
Veja:
se (coluna = linha) entao
para contl de 1 ate linha faca
para contc de 1 ate coluna faca
leia (matriz[contl, contc])
se (contl = contc) entao
escreva (matriz [contl, contc])
fimse
fimpara
fimpara
senao
Teste.
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
valeu pessoal
var
matriz: vetor[1..20,1..15] de inteiro
num, coluna, linha, contc, contl: inteiro
inicio
contc:= 1
contl:= 1
leia (coluna)
leia (linha)
se (coluna = linha) entao
para contl de 1 ate linha faca
para contc de 1 ate coluna faca
leia (matriz [contl, contc])
se (contl = contc) entao
escreva (matriz [contl, contc])
fimse
fimpara
fimpara
senao
escreva ("não é quadrada")
fimse
fimalgoritmo
Pessoal, não é preciso 2 'for's para imprimir a diagonal de uma matriz...
A diagonal de uma matriz é dada por matriz[cont][cont], não?
Simplficando:
var
matriz: vetor[1..20,1..15] de inteiro
coluna, linha, cont: inteiro
inicio
leia (coluna)
leia (linha)
se (coluna = linha) entao
para cont de 1 ate linha faca
leia (matriz [cont, cont])
escreva (matriz [cont, cont])
fimpara
senao
escreva ("não é quadrada")
fimse
fimalgoritmo
Isso é verdade com um loop apenas voce resolve a diagonal.
Com os dois é possível percorrer toda a matriz.
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
>
Pessoal, não é preciso 2 'for's para imprimir a diagonal de uma matriz...
A diagonal de uma matriz é dada por matriz[cont][cont], não?
Da maneira que está fazendo a matriz terá tamanho fixo 5 x 5.
Voce pode definir um tamanho maximo para a matriz e ler o numero de colunas e linhas para que só esse espaço seja preenchido.
matriz: vetor[1..5,1..5] de inteiro
ler (ncolunas)
ler (nlinhas)
ncolunas e nlinhas deve ser menor que 5, nesse caso.
se ncolunas = nlinhas a matriz é quadrada.
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif