VisualgMaster

Bem vindo ao fórum visualgmaster, tudo relacionado ao visualg, tire suas dúvidas, resolva seus algoritmos.
 
InícioInício  PortalPortal  FAQFAQ  BuscarBuscar  Registrar-seRegistrar-se  MembrosMembros  GruposGrupos  Conectar-se  

Compartilhe | 
 

 Matriz quadrada

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
guga22
Iniciante
Iniciante


Número de Mensagens : 175
Data de inscrição : 27/10/2007

MensagemAssunto: Matriz quadrada   Qua Nov 21, 2007 10:41 am

Escreva um subalgoritmo que verifica se uma matriz é ou não simétrica.
Eu não sei como fazer esse algoritmo
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Admin
Administradores
Administradores
avatar

Número de Mensagens : 126
Data de inscrição : 26/10/2007

MensagemAssunto: Re: Matriz quadrada   Qua Nov 21, 2007 11:30 am

O que seria subalgoritmo? Sub-rotina?

_________________
Equipe VisualgMaster.


Última edição por Admin em Ter Jun 24, 2008 6:15 pm, editado 1 vez(es)
Voltar ao Topo Ir em baixo
Ver perfil do usuário http://visualgmaster.livreforum.com
guga22
Iniciante
Iniciante


Número de Mensagens : 175
Data de inscrição : 27/10/2007

MensagemAssunto: Re: Matriz quadrada   Qua Nov 21, 2007 11:32 am

Eu tambêm não sei o que e subalgoritmo
Mais esquecendo este conceito de subalgoritmo como eu faria para verificar se a matriz e simétrica e quadrada?
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Suporte
Administradores
Administradores
avatar

Número de Mensagens : 35
Data de inscrição : 26/10/2007

MensagemAssunto: Re: Matriz quadrada   Qua Nov 21, 2007 12:31 pm

Conceito de matriz transposta: as linhas se transformam em colunas e as colunas se transformam em linhas. Logo, se na matriz normal é M[a,i]...na transposta será M[i,a] sabendo disso podemos fazer um Se comparando cada elemento da matriz com ele transposto, algo como:

Se (M[a,i] = M[i,a]) entao
PosicoesIguais <- PosicoesIguais + 1

Agora você terá em um acumulador o número de posições iguais, e você sabe que essa matriz será simétrica se TODAS as posições forem iguais, então é só comparar esse acumulador com o número de posições da matriz, se for igual (ou seja, se todas as posições forem iguais), então é simétrica.

Lembre-se que o número de posições da matriz é
Linhas * Coluna

Por exemplo: uma matriz [1..3,1..3] tem 9 posições.
Voltar ao Topo Ir em baixo
Ver perfil do usuário
guga22
Iniciante
Iniciante


Número de Mensagens : 175
Data de inscrição : 27/10/2007

MensagemAssunto: Re: Matriz quadrada   Sab Nov 24, 2007 9:25 am

Não entendi bem o que você quis dizer.
Mais uma Matriz e simetrica quando todos os elementos são iguais não é?
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Suporte
Administradores
Administradores
avatar

Número de Mensagens : 35
Data de inscrição : 26/10/2007

MensagemAssunto: Re: Matriz quadrada   Sab Nov 24, 2007 12:23 pm

Matriz simétrica é quando uma matriz é igual à ela mesma transposta (invertida).
Voltar ao Topo Ir em baixo
Ver perfil do usuário
guga22
Iniciante
Iniciante


Número de Mensagens : 175
Data de inscrição : 27/10/2007

MensagemAssunto: Re: Matriz quadrada   Sab Nov 24, 2007 2:00 pm

Ta vou tentar fazer
Voltar ao Topo Ir em baixo
Ver perfil do usuário
gfilho
Novato
Novato


Masculino
Número de Mensagens : 39
Idade : 28
Localização : Rio Branco
Data de inscrição : 15/11/2007

MensagemAssunto: Re: Matriz quadrada   Sab Nov 24, 2007 4:08 pm

Guga, se voce fizer esse algoritmo declarando duas matrizes ficara muito facil de resolver.


--Faca a declaracao de duas matriz, por exemplo: A e B

--Gere a matriz a Matriz A, e em seguida, faca a matriz B receber a transposta de A, ou seja, o elemento A[i,j] vai ser igual ao elemento B[j,i]. Por exemplo:
+ Suponha que o elemento A[2,1] seja igual a 3, logo o elemento B[1,2] sera igual a 3. Como fazer isso?
+ Simples, faca a leitura do elemento, Leia (A[i,j]), e em seguida faca B[j,i] <- A[i,j], pronto, ao terminar o looping de leitura a matriz B, transposta de A, ja estara formada.

--Depois de a matriz A ja ter sido toda lida e a matriz B ter recebido a transposta de A basta comparar a matriz A com a matriz B. Para ser simetrica a matriz A tem que ser igual a sua transposta, nesse caso B. Logo, A e B tem que ser iguais. Use uma variavel com um valor fixo, que so sera alterado caso seja encontrado algum elemento A[i,j] diferente do elemento B[i,j] correspondente.
Voltar ao Topo Ir em baixo
Ver perfil do usuário
guga22
Iniciante
Iniciante


Número de Mensagens : 175
Data de inscrição : 27/10/2007

MensagemAssunto: Re: Matriz quadrada   Qua Nov 28, 2007 10:51 am

Não entendi esta parte aqui daria para explicar melhor?

Depois de a matriz A ja ter sido toda lida e a matriz B ter recebido a transposta de A basta comparar a matriz A com a matriz B. Para ser simetrica a matriz A tem que ser igual a sua transposta, nesse caso B. Logo, A e B tem que ser iguais. Use uma variavel com um valor fixo, que so sera alterado caso seja encontrado algum elemento A[i,j] diferente do elemento B[i,j] correspondente.
Voltar ao Topo Ir em baixo
Ver perfil do usuário
guga22
Iniciante
Iniciante


Número de Mensagens : 175
Data de inscrição : 27/10/2007

MensagemAssunto: Re: Matriz quadrada   Qua Nov 28, 2007 10:51 am

O começo do meu algoritmo esta assim:

algoritmo "Matriz transposta"
//Função:
// Data : 28/11/07
// Seção de Declarações
var
matA : vetor [1..2,1..4] de real
matB : vetor [1..4,1..2] de real
i, j, p : inteiro //os índice sempre inteiro
inicio
// Seção de Comandos
p <- 1
enquanto (p=1) faca

Para i de 1 ate 2 passo 1 faca
Para j de 1 ate 4 passo 1 faca
escreva("Digite um valor do elemento da linha" , i, ", coluna ",j, " da matriz A: ")
leia (matA[i,j])
matB[j,i] <- matA[i,j]
fimpara
fimpara
escreval

escreva("A matriz A é:")
escreval
para i de 1 ate 2 passo 1 faca
escreval
para j de 1 ate 4 passo 1 faca
escreva (matA[i,j], " ")
fimpara
fimpara
escreval

Escreva("A matriz B é:")
escreval
Para i de 1 ate 4 passo 1 faca
escreval
para j de 1 ate 2 passo 1 faca
escreva (matB[i,j]," ")
fimpara
fimpara
escreval

escreval("Deseja continuar (1)Sim (2)Não")
leia(p)
fimenquanto

fimalgoritmo
Voltar ao Topo Ir em baixo
Ver perfil do usuário
gfilho
Novato
Novato


Masculino
Número de Mensagens : 39
Idade : 28
Localização : Rio Branco
Data de inscrição : 15/11/2007

MensagemAssunto: Re: Matriz quadrada   Qui Nov 29, 2007 3:07 pm

Citação :
Não entendi esta parte aqui daria para explicar melhor?

Depois de a matriz A ja ter sido toda lida e a matriz B ter recebido a transposta de A basta comparar a matriz A com a matriz B. Para ser simetrica a matriz A tem que ser igual a sua transposta, nesse caso B. Logo, A e B tem que ser iguais. Use uma variavel com um valor fixo, que so sera alterado caso seja encontrado algum elemento A[i,j] diferente do elemento B[i,j] correspondente.
´

Isso e o metodo da contradicao. Tipo, apos a matriz B ja ter recebido todos os valores de A, ou seja, apos B ser a transposta de A, voce pode usar o metodo da contradicao, exemplo:

simetrica <- 1
para i de 1 ate 4 faca
para j de 1 ate 4 faca
se (A[i,j]<>B[j,i]) entao
simetrica <- 0
fimse
fimpara
fimpara
Se (simetrica=1) entao
escreva ("a matriz e simetrica")
senao
escreva ("a matriz nao e simetrica")
fimse


--VIu?? voce procurar algo que possa provar que a matriz nao e simetrica, neste caso seria A[i,j]<>B[j,i]
Voltar ao Topo Ir em baixo
Ver perfil do usuário
guga22
Iniciante
Iniciante


Número de Mensagens : 175
Data de inscrição : 27/10/2007

MensagemAssunto: Re: Matriz quadrada   Qui Nov 29, 2007 11:14 pm

Vou tentar fazer depois eu volto a postar aqui
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Conteúdo patrocinado




MensagemAssunto: Re: Matriz quadrada   

Voltar ao Topo Ir em baixo
 
Matriz quadrada
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» [Aula] Array e Matriz em GML
» Barra de rolamento do fórum quadrada
» Como meto o meu forum sem imagem quadrada no cabeçalho?
» VPN PPTP com 1 matriz e 2 filial ?
» vim postar minha arma ficou legal

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
VisualgMaster :: VisualgMaster :: Pedidos de algoritmos :: Algoritmos resolvidos-
Ir para: