Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TCHE

[Resolvido] matriz

Recommended Posts

é... 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.