Ir ao conteúdo

Posts recomendados

Postado

Boa noite pessoal. 

Estou com dificuldade para encontrar a determinante de uma matriz. 

Não consegui utilizar o método da triangulação.

Abaixo segue o trecho do código que consegui utilizar para gerar a matriz.

 

Sou iniciante, desculpem caso seja algo muito simples de resolver.

 

programa {
    funcao inicio() {
        inteiro m, linha=0, coluna=0
        real matriz_a[100][100]
        
        escreva("Digite o numero de linhas e colunas da matriz quadrada: \n")
        leia(m)
        
        
        para(linha=0;linha<m;linha++)
        {
           
            para(coluna=0;coluna<m;coluna++)
            {
                escreva("Informe o elemento:", linha,coluna, " \n")
                leia(matriz_a[linha][coluna])
            }
        }
        
        para(linha=0;linha<m;linha++)
        {
            para(coluna=0;coluna<m;coluna++)
            {
                escreva(matriz_a[linha][coluna]," ")
            }
            escreva("\n")
        }
        
    }
}

 

  • Curtir 1
Postado

Estou com dificuldades até mesmo para matrizes do tipo 2x2.

O cálculo deve ser a diagonal principal - diagonal secundária. Estou tentando elaborar um algoritmo que faça essa multiplicação da diagonal, no entanto ele sempre me retorna "0". Se colocar a operação de soma da diagonal, ele faz esta operação.

 

programa {
	funcao inicio() {
		inteiro m=0, linha=0, coluna=0, k=1, det=0, diag1=0, i=0, j=0
		real matriz_a[2][2]
		
	
		
		para(i=0;i<2;i++)
		{
		    para(j=0;j<2;j++)
		    {
		        escreva("Informe o elemento:", i,j, " \n")
		        leia(matriz_a[i][j])
		    }
		}
		
		para(i=0;i<2;i++)
		{
		    para(j=0;j<2;j++)
		    {
		        escreva(matriz_a[i][j]," ")
		    }
		    escreva("\n")
		}
			para(i=0;i<2;i++)
		{
		    para(j=0;j<2;j++)
		    {
		        se(i==j)
		        diag1 = diag1*(matriz_a[i][j])
		    }
		    
		}
		escreva("a diagonal 1 eh: ", diag1)
		
	}
}

 

Postado

Para matriz 2x2, acredito que seja este código:

 

programa {
	funcao inicio() {
		inteiro m, linha=0, coluna=0, diag1=1, diag2=1, determinante=0
		real matriz_a[100][100]
		
		escreva("Digite o numero de linhas e colunas da matriz quadrada: \n")
		leia(m)
		
		
		para(linha=0;linha<m;linha++)
		{
		   
		    para(coluna=0;coluna<m;coluna++)
		    {
		        escreva("Informe o elemento:", linha,coluna, " \n")
		        leia(matriz_a[linha][coluna])
		    }
		}
		
		para(linha=0;linha<m;linha++)
		{
		    para(coluna=0;coluna<m;coluna++)
		    {
		        escreva(matriz_a[linha][coluna]," ")
		    }
		    escreva("\n")
		}
		
		para(linha=0;linha<m;linha++)
		{
		    para(coluna=0;coluna<m;coluna++)
		    {
		        se(linha==coluna e m<3)
		        diag1=diag1*matriz_a[linha][coluna]
		    }
		    
		}
	
	 
	
	
	para(linha=0;linha<m;linha++)
	{
	    para(coluna=0;coluna<m;coluna++)
	    {
	        se(linha+coluna+1==m e m<3)
	        {
	        diag2=diag2*matriz_a[linha][coluna]
	        }
	    
	
	determinante=diag1-diag2
}
}
        escreva("A diagonal principal eh: \n", diag1, "\n")
        
        escreva("A diagonal secundaria eh: \n", diag2,"\n")
        
        escreva("A determinante eh:\n ", determinante)
	    
	}
}

 

@Simon Viegas o problema agora é replicar para matrizes de ordem maior heheh

Postado
programa {
	funcao inicio() {
		inteiro m, linha=0, coluna=0, diag1=1, diag2=1, determinante=0, diag3=1, diag3_a=1, diag3_t=1, diag4=1, diag4_a=1, diag4_t=1
		inteiro diag5=1, diag5_a=1, diag5_t=1, diag6=1, diag6_a=1, diag6_t=1, det3=0
		real matriz_a[100][100]
		
		escreva("Digite o numero de linhas e colunas da matriz quadrada: \n")
		leia(m)
		
		
		para(linha=0;linha<m;linha++)
		{
		   
		    para(coluna=0;coluna<m;coluna++)
		    {
		        escreva("Informe o elemento:", linha,coluna, " \n")
		        leia(matriz_a[linha][coluna])
		    }
		}
		
		para(linha=0;linha<m;linha++)
		{
		    para(coluna=0;coluna<m;coluna++)
		    {
		        escreva(matriz_a[linha][coluna]," ")
		    }
		    escreva("\n")
		}
		
		para(linha=0;linha<m;linha++)
		{
		    para(coluna=0;coluna<m;coluna++)
		    {
		        se(linha==coluna)
		        diag1=diag1*matriz_a[linha][coluna]
		    }
		    
		}
	
	 
	para(linha=0;linha<m;linha++)
	{
	    para(coluna=0;coluna<m;coluna++)
	    {
	        se(linha+coluna+1==m)
	        {
	        diag2=diag2*matriz_a[linha][coluna]
	        }
	    }
	    
	} 
	para(linha=0;linha<m;linha++)
	{
	    para(coluna=0;coluna<m;coluna++)
	    {
	        se(coluna==linha+1)
	        {
	        diag3=diag3*matriz_a[linha][coluna]
	        }
	    }
	} 
	
		para(linha=0;linha<m;linha++)
	{
	    para(coluna=0;coluna<m;coluna++)
	    {
	        se(linha==coluna+2)
	        {
	        diag3_a=diag3_a*matriz_a[linha][coluna]
	        }
	    }
	} 
	
	diag3_t=diag3*diag3_a
	
	
	    para(linha=0;linha<m;linha++)
	{
	    para(coluna=0;coluna<m;coluna++)
	    {
	        se(linha==coluna+1)
	        {
	        diag4=diag4*matriz_a[linha][coluna]
	        }
	    }
    }
    
    para(linha=0;linha<m;linha++)
	{
	    para(coluna=0;coluna<m;coluna++)
	    {
	        se(coluna==linha+2)
	        {
	        diag4_a=diag4_a*matriz_a[linha][coluna]
	        }
	    }
	    diag4_t=diag4*diag4_a
	} 
	  para(linha=0;linha<m;linha++)
	{
	    para(coluna=0;coluna<m;coluna++)
	    {
	        se(linha+coluna==m)
	        {
	        diag5=diag5*matriz_a[linha][coluna]
	        }
	    }
    }
    
    para(linha=0;linha<m;linha++)
	{
	    para(coluna=0;coluna<m;coluna++)
	    {
	        se(coluna==linha e coluna+linha==0)
	        {
	        diag5_a=diag5_a*matriz_a[linha][coluna]
	        }
	    }
	    diag5_t=diag5*diag5_a
	} 
	
	 para(linha=0;linha<m;linha++)
	{
	    para(coluna=0;coluna<m;coluna++)
	    {
	        se(linha+coluna==1)
	        {
	        diag6=diag6*matriz_a[linha][coluna]
	        }
	    }
    }
    
     para(linha=0;linha<m;linha++)
	{
	    para(coluna=0;coluna<m;coluna++)
	    {
	        se(coluna+linha==4)
	        {
	        diag6_a=diag6_a*matriz_a[linha][coluna]
	        }
	    }
	    diag6_t=diag6*diag6_a
	} 
	
det3=(diag1+diag3_t+diag4_t)-(diag2+diag5_t+diag6_t)
	
        escreva("A diagonal 1 eh: \n", diag1, "\n")
        
        escreva("A diagonal 2 eh: \n", diag2,"\n")
        
        escreva("A diagonal 3 eh: \n", diag3_t,"\n")
        
        escreva("A diagonal 4 eh: \n", diag4_t,"\n")
        
        escreva("A diagonal 5 eh: \n", diag5_t,"\n")
        
        escreva("A diagonal 6 eh: \n", diag6_t,"\n")
        
        escreva("A determinante eh: \n", det3 ,"\n")
        
        
}

}



	

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!