| VisualgMaster Bem vindo ao fórum visualgmaster, tudo relacionado ao visualg, tire suas dúvidas, resolva seus algoritmos. |
| | Matriz quadrada | |
| | Autor | Mensagem |
---|
guga22 Iniciante
Número de Mensagens : 175 Data de inscrição : 27/10/2007
| Assunto: 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 | |
| | | Admin Administradores
Número de Mensagens : 126 Data de inscrição : 26/10/2007
| Assunto: Re: Matriz quadrada Qua Nov 21, 2007 11:30 am | |
| O que seria subalgoritmo? Sub-rotina?
Última edição por Admin em Ter Jun 24, 2008 6:15 pm, editado 1 vez(es) | |
| | | guga22 Iniciante
Número de Mensagens : 175 Data de inscrição : 27/10/2007
| Assunto: 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? | |
| | | Suporte Administradores
Número de Mensagens : 35 Data de inscrição : 26/10/2007
| Assunto: 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. | |
| | | guga22 Iniciante
Número de Mensagens : 175 Data de inscrição : 27/10/2007
| Assunto: Re: Matriz quadrada Sáb 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 é? | |
| | | Suporte Administradores
Número de Mensagens : 35 Data de inscrição : 26/10/2007
| Assunto: Re: Matriz quadrada Sáb Nov 24, 2007 12:23 pm | |
| Matriz simétrica é quando uma matriz é igual à ela mesma transposta (invertida). | |
| | | guga22 Iniciante
Número de Mensagens : 175 Data de inscrição : 27/10/2007
| Assunto: Re: Matriz quadrada Sáb Nov 24, 2007 2:00 pm | |
| | |
| | | gfilho Novato
Número de Mensagens : 39 Idade : 35 Localização : Rio Branco Data de inscrição : 15/11/2007
| Assunto: Re: Matriz quadrada Sáb 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. | |
| | | guga22 Iniciante
Número de Mensagens : 175 Data de inscrição : 27/10/2007
| Assunto: 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. | |
| | | guga22 Iniciante
Número de Mensagens : 175 Data de inscrição : 27/10/2007
| Assunto: 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 | |
| | | gfilho Novato
Número de Mensagens : 39 Idade : 35 Localização : Rio Branco Data de inscrição : 15/11/2007
| Assunto: 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] | |
| | | guga22 Iniciante
Número de Mensagens : 175 Data de inscrição : 27/10/2007
| Assunto: Re: Matriz quadrada Qui Nov 29, 2007 11:14 pm | |
| Vou tentar fazer depois eu volto a postar aqui | |
| | | Conteúdo patrocinado
| Assunto: Re: Matriz quadrada | |
| |
| | | | Matriz quadrada | |
|
Tópicos semelhantes | |
|
| Permissões neste sub-fórum | Não podes responder a tópicos
| |
| |
| |
|