| Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) | 
| Como testar se uma matriz é uma Matriz Triangular Superior em C - Lista de Exercícios Resolvidos de CQuantidade de visualizações: 656 vezes | 
| Pergunta/Tarefa: Uma Matriz Triangular Superior é a matriz na qual todos os termos que estão abaixo da diagonal principal são iguais a zero e os termos que estão acima da diagonal principal são números reais. Veja um exemplo de Matriz Triangular Superior na imagem abaixo:  Escreva um programa C que pede para o usuário informar o número de linhas e colunas de uma matriz quadrada. Em seguida solicite os valores para cada um dos elementos da matriz. Para finalizar informe ao usuário se a matriz informada é uma matriz triangular superior. Sua saída deverá ser parecida com: 
Número de linhas e colunas da matriz: 3
Valor para a linha 0 e coluna 0: 8
Valor para a linha 0 e coluna 1: 2
Valor para a linha 0 e coluna 2: 3
Valor para a linha 1 e coluna 0: 0
Valor para a linha 1 e coluna 1: 3
Valor para a linha 1 e coluna 2: 9
Valor para a linha 2 e coluna 0: 0
Valor para a linha 2 e coluna 1: 0
Valor para a linha 2 e coluna 2: 2
Valores na matriz
    8     2     3 
    0     3     9 
    0     0     2 
A matriz é uma matriz triangular superior
Veja a resolução comentada deste exercício usando C: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  int ordem, i, j;
	
  // vamos pedir a ordem da matriz
  printf("Número de linhas e colunas da matriz: ");
  scanf("%d", &ordem);
    
  // agora vamos construir a matriz
  int matriz[ordem][ordem];
    
  // vamos ler os valores para os elementos da matriz
  printf("\n");
  for(i = 0; i < ordem; i++){ // linhas
    for(j = 0; j < ordem; j++){ // colunas
      printf("Valor para a linha %d e coluna %d: ", i, j);
      scanf("%d", &matriz[i][j]);       
    }        
  }
    
  // vamos mostrar a matriz da forma que ela foi informada
  printf("\nValores na matriz\n\n");
      
  for(i = 0; i < ordem; i++){
    for(j = 0; j < ordem; j++){
      printf("%5d ", matriz[i][j]);   
    }
      
    // passa para a próxima linha da matriz
    printf("\n");
  }
    
  // agora vamos testar se a matriz é uma matriz triangular
  // superior
  int triangular_superior = 1;
    
  for(i = 0; i < ordem; i++){
    for(j = 0; j < ordem; j++){
      // a condição para que a matriz seja triangular superior é
      // que os elementos abaixo da diagonal principal sejam
      // iguais a zero
      if((j < i) && (matriz[i][j] != 0)){
        triangular_superior = 0;
      }
    }
  }
    
  if(triangular_superior){
    printf("\nA matriz é uma matriz triangular superior");
  }
  else{
    printf("\nA matriz não é uma matriz triangular superior");
  }
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}
Listamos abaixo algumas propriedades específicas da matriz triangular. 1) o determinante de uma matriz triangular é igual ao produto dos termos da diagonal principal. 2) o produto entre duas matrizes triangulares é uma matriz triangular. 3) se um dos termos da diagonal principal da matriz triangular for igual a zero, então o seu determinante será igual a zero e, consequentemente, ela não será inversível. 4) a matriz inversa de uma matriz triangular é também uma matriz triangular. 5) a soma de duas matrizes triangulares superiores é uma matriz triangular superior; de forma análoga, a soma de duas matrizes triangulares inferiores é uma matriz triangular inferior. | 
|  Link para compartilhar na Internet ou com seus amigos: | 
| Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C | 
| Veja mais Dicas e truques de C | 
| Dicas e truques de outras linguagens | 
| MySQL - Como adicionar horas ao valor de um campo DATETIME ou TIME usando a função ADDTIME() do MySQL | 
| E-Books em PDF | ||||
| 
 | ||||
| 
 | ||||
| Linguagens Mais Populares | ||||
| 
			   1º lugar: Java | 


 
 





