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++ - Desafio de Programação Resolvido em C++Quantidade de visualizações: 332 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 <iostream> #include <iomanip> using namespace std; // função principal do programa int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema int ordem; // vamos pedir a ordem da matriz cout << "Número de linhas e colunas da matriz: "; cin >> ordem; // agora vamos construir a matriz int matriz[ordem][ordem]; // vamos pedir para o usuário informar os valores // dos elementos da matriz, uma linha de cada vez cout << "\n"; for(int i = 0; i < ordem; i++){ for(int j = 0; j < ordem; j++){ cout << "Linha " << (i + 1) << " e coluna " << (j + 1) << ": "; // lê o número e guarda na linha e coluna especificadas cin >> matriz[i][j]; } } // vamos mostrar a matriz da forma que ela foi informada cout << "\nValores na matriz\n\n"; for(int i = 0; i < ordem; i++){ for(int j = 0; j < ordem; j++){ cout << setw(5) << matriz[i][j]; } // passa para a próxima linha da matriz cout << "\n"; } // agora vamos testar se a matriz é uma matriz triangular // superior bool triangular_superior = true; for(int i = 0; i < ordem; i++){ for(int 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 = false; } } } if(triangular_superior){ cout << "\nA matriz é uma matriz triangular superior"; } else{ cout << "\nA matriz não é uma matriz triangular superior"; } cout << "\n" << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } 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: |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Laços |
Exercício Resolvido de C++ - Calculando e exibindo os números primos entre 2 e 100Quantidade de visualizações: 10050 vezes |
Exercícios Resolvidos de C++ - Calculando e exibindo os números primos entre 2 e 100 Pergunta/Tarefa: Um inteiro é um número primo se ele for divisível somente por 1 e por ele mesmo. Assim, 2, 3, 5 e 7 são primos, enquanto 4, 6, 8 e 9 não são. Note que o número 1 não é primo. Escreva um programa C++ que usa um laço for, while ou do...while para calcular e exibir os números primos entre 2 (incluindo) e 100 (incluindo). A saída do programa deverá ser parecida com: Numeros primos entre 2 e 100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 Veja a resolução comentada deste exercício: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]){ // limite dos números primos (incluindo) int limite = 100; // Lembre-se! O número 1 não é primo cout << "Numeros primos entre 2 e " << limite << endl; // laço que percorre os valores de 2 até o limite desejado for(int i = 2; i <= limite; i++){ bool primo = true; // se o valor de i for 7, a variável j do laço contará // de 2 até 7 / 2 (divisão inteira), ou seja, 3. Se o // módulo de 7 por qualquer um dos valores neste intervalo // for igual a 0, então o número não é primo for(int j = 2; j <= (i / 2); j++){ if(i % j == 0){ primo = false; // não é primo break; } } if(primo){ cout << i << " "; } } cout << "\n\n"; system("PAUSE"); return EXIT_SUCCESS; } |
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de C++ - Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior delesQuantidade de visualizações: 493 vezes |
Pergunta/Tarefa: Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior deles. Esse programa deve possuir uma função para verificar qual é o maior número. Atenção: seu código deverá assegurar que os dois números informados pelo usuário sejam diferentes. Exiba uma mensagem na tela caso isso acontecer. Sua saída deverá ser parecida com: Informe o primeiro número inteiro: 6 Informe o segundo número inteiro: 3 O maior número é: 6 Veja a resolução comentada deste exercício em C++: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <string> #include <iostream> using namespace std; // protótipo da função que receberá dois números inteiros // e retornará o maior deles int maior_numero(int num1, int num2); int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema int num1, num2, maior; // vamos pedir para o usuário informar os dois números cout << "Informe o primeiro número inteiro: "; cin >> num1; cout << "Informe o segundo número inteiro: "; cin >> num2; // os números são iguais? if(num1 == num2){ cout << "Erro. Os dois números são iguais.\n" << endl; } else{ // vamos chamar a função para obter o número maior maior = maior_numero(num1, num2); cout << "O maior número é: " << maior << "\n" << endl; } system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } // função que receberá dois números inteiros e retornará // o maior deles int maior_numero(int num1, int num2){ // o primeiro número é maior que o segundo? if(num1 > num2){ return num1; } else{ return num2; } } |
C++ ::: Fundamentos da Linguagem ::: Passos Iniciais |
Apostila C++ para iniciantes - Como usar a macro EXIT_SUCCESS em C++Quantidade de visualizações: 9481 vezes |
A macro EXIT_SUCCESS, disponível na biblioteca cstdlib da linguagem C++, pode ser usada como argumento para a função exit() para sinalizar que o programa finalizou sua execução sem erros. Os dois trechos de código abaixo são semelhantes: 1) Usando EXIT_SUCCESS para sinalizar que o programa foi finalizado com sucesso: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <cstdlib> using namespace std; int main(int argc, char *argv[]) { // programa foi finalizado com sucesso return EXIT_SUCCESS; } 2) Usando o valor 0 para sinalizar que o programa foi finalizado com sucesso: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <cstdlib> using namespace std; int main(int argc, char *argv[]) { // programa foi finalizado com sucesso return 0; } |
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |