Você está aqui: Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Como testar se uma matriz é uma Matriz Triangular Superior em Portugol - Desafio de Programação Resolvido em Portugol

Quantidade de visualizações: 520 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 Portugol 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
Resposta/Solução:

Veja a resolução comentada deste exercício usando Portugol Webstudio:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// Matriz Triangular Superior em Portugol
programa {
  funcao inicio() {
    inteiro ordem
    logico triangular_superior

    // vamos pedir a ordem da matriz
    escreva("Número de linhas e colunas da matriz: ")
    leia(ordem)

    // variáveis usadas na resolução do problema
    // como o VisuAlg não permite a passagem de variáveis
    // na criação do vetor ou matriz, vamos criar uma matriz
    // de no máximo 10 linhas e 10 colunas
    inteiro matriz[ordem][ordem]
    
    // vamos pedir para o usuário informar os valores
    // dos elementos da matriz, uma linha de cada vez
    escreva("\n")
    para (inteiro i = 0; i < ordem; i++) { 
      para (inteiro j = 0; j < ordem; j++) {
        escreva("Linha ", (i + 1), " e coluna ", (j + 1), ": ")
        leia(matriz[i][j])
      }
    }
 
    // vamos mostrar a matriz da forma que ela foi informada
    escreva("\nValores na matriz:\n\n")
    para (inteiro i = 0; i < ordem; i++) {
      para (inteiro j = 0; j < ordem; j++) {
        escreva(matriz[i][j], "   ")
      }
      // passa para a próxima linha da matriz
      escreva("\n")
    }

    // agora vamos testar se a matriz é uma matriz triangular
    // superior
    triangular_superior = verdadeiro

    para (inteiro i = 0; i < ordem; i++) {
      para (inteiro 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  
        se ((j < i) e (matriz[i][j] != 0)) {
          triangular_superior = falso
        }
      }
    }

    se (triangular_superior == verdadeiro) {
      escreva("\nA matriz é uma matriz triangular superior")
    }
    senao {
      escreva("\nA matriz não é uma matriz triangular superior")
    }
  }
}

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:

Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Laços

Exercícios Resolvidos de Portugol - A concessionária de veículos "CARANGO VELHO" está vendendo os seus veículos com descontos. Faça um algoritmo Portugol

Quantidade de visualizações: 686 vezes
Pergunta/Tarefa:

A concessionária de veículos "CARANGO VELHO" está vendendo os seus veículos com descontos. Faça um algoritmo Portugol que calcule e exiba o valor do desconto e o valor a ser pago pelo cliente de vários carros. O desconto deverá ser calculado de acordo com o ano do veículo.

Até o ano 2000 o desconto é 12%, e acima de 2000 o desconto é de 7%. Seu código deverá solicitar o valor do carro e o seu ano e aplicar o desconto correspondente. Além disso o sistema deverá perguntar se deseja continuar calculando descontos até que a resposta seja: "(N) Não". Informar o total de carros com ano até 2000 e o total geral a ser pago pelo cliente.

Sua saída deve ser parecida com:

Informe o valor do carro sem desconto: 25000
Informe o ano do carro: 2010
Desconto concedido: 1750
Valor do carro com desconto: 23250
Deseja adicionar mais carros? [S, N]: S

Informe o valor do carro sem desconto: 30500
Informe o ano do carro: 1985
Desconto concedido: 3660
Valor do carro com desconto: 26840
Deseja adicionar mais carros? [S, N]: S

Informe o valor do carro sem desconto: 16800
Informe o ano do carro: 1990
Desconto concedido: 2016
Valor do carro com desconto: 14784
Deseja adicionar mais carros? [S, N]: N

Total de carros com ano até 2000: 2
Total geral a pagar: 64874
Resposta/Solução:

Veja a resolução comentada deste exercício usando Portugol Webstudio:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

programa {
  funcao inicio() {
    // variáveis usadas na resolução do problema
    real valor_carro, valor_desconto, valor_carro_desconto
    real total_geral
    inteiro ano
    inteiro total_carros_ano_2000
    caracter resposta
    
    // vamos inicializar os valores de algumas variáveis
    total_geral = 0
    total_carros_ano_2000 = 0

    // repete até que o usuário informe o valor "N"
    faca {
      // vamos ler o valor do carro sem desconto
      escreva("\nInforme o valor do carro sem desconto: ")
      leia(valor_carro)
      
      // vamos ler o ano do carro
      escreva("Informe o ano do carro: ")
      leia(ano)

      // o ano é menor ou igual a 2000
      se (ano <= 2000) {
        valor_desconto = valor_carro * (12.0 / 100.0)
        // vamos somar mais este carro
        total_carros_ano_2000 = total_carros_ano_2000 + 1
      }
      senao {
        valor_desconto = valor_carro * (7.0 / 100.0)
      }

      // calculamos o valor do carro com o desconto
      valor_carro_desconto = valor_carro - valor_desconto
      escreva("Desconto concedido: ", valor_desconto)
      escreva("\nValor do carro com desconto: ", valor_carro_desconto)

      // somamos mais este valor ao total geral
      total_geral = total_geral + valor_carro_desconto

      // perguntamos se o usuário deseja adicionar mais carros
      escreva("\nDeseja adicionar mais carros? [S, N]: ")
      leia(resposta)
    } enquanto((resposta != 'N') e (resposta != 'n'))  

    // mostramos os resultados
    escreva("\nTotal de carros com ano até 2000: ", total_carros_ano_2000)
    escreva("\nTotal geral a pagar: ", total_geral)
  }
}



Portugol ::: Dicas & Truques ::: Cadeias e Caracteres

Como testar se uma sub-cadeia está contida em uma cadeia de caracteres em Portugol usando a função posicao_texto()

Quantidade de visualizações: 204 vezes
Nesta dica mostrarei como podemos verificar se uma substring está contida em uma string em Portugol. Para isso nós vamos usar a função posicao_texto() da biblioteca Texto.

A função posicao_texto() pede a sub-cadeia a ser pesquisada, a cadeia na qual a pesquisa será feita e o índice do primeiro caractere a partir do qual a sub-string será pesquisada.

Se a substring for encontrada, a função retorna a posição do primeiro caractere. Caso contrário o valor -1 será retornado.

Veja o código completo para um programa Portugol no qual testamos se uma palavra está contida em uma frase:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

programa {
  // vamos importar a biblioteca Texto
  inclua biblioteca Texto --> tx
  
  funcao inicio() {
    // vamos criar uma frase
    cadeia frase = "Gosto de programar em Portugol"
    // vamos criar uma sub-cadeia
    cadeia palavra = "Portugol"

    // vamos verificar se a sub-cadeia está contida na cadeia
    se (tx.posicao_texto(palavra, frase, 0) != -1) {
      escreva("A substring está contida na string")   
    }
    senao {
      escreva("A substring não está contida na string") 
    }
  }
}

Ao executar este código Portugol nós teremos o seguinte resultado:

A substring está contida na string.


Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercício Resolvido de Portugol - Um programa que lê três números inteiros e mostra o maior

Quantidade de visualizações: 2977 vezes
Pergunta/Tarefa:

Faça um algoritmo em Portugol que solicita três números inteiros e mostra o maior deles. Exiba uma mensagem caso os três números não forem diferentes. Sua saída deverá ser parecida com:

Informe o primeiro número: 5
Informe o segundo número: 8
Informe o terceiro número: 3
O segundo número é o maior
Resposta/Solução:

Veja a resolução comentada deste exercício usando Portugol Webstudio:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// Um programa que lê três números inteiros e mostra o maior
programa {
  funcao inicio() {
    // variáveis usadas na resolução do problema
    inteiro num1, num2, num3 
    
    // vamos solicitar os três números inteiros
    escreva("Informe o primeiro número: ")
    leia(num1)
    escreva("Informe o segundo número: ")
    leia(num2)
    escreva("Informe o terceiro número: ")
    leia(num3)
    
    // o primeiro número é o maior?
    se (num1 > num2 e num1 > num3) {
      escreva("O primeiro número é o maior")
    }
    senao {
      // o segundo número é o maior?
      se (num2 > num1 e num2 > num3) {
        escreva("O segundo número é o maior")
      }
      senao{
        // o terceiro número é o maior?
        se (num3 > num1 e num3 > num2) { 
          escreva("O terceiro número é o maior")
        }
        // os número não são diferentes
       senao {
         escreva("Os três números não são diferentes")
       }
    }
  }
}



Vamos testar seus conhecimentos em

Dimensionamento de lajes maciças à flexão

Determinadas estruturas, como as empregadas em pavimentos de garagens de edificações residenciais, demandam o emprego de vãos maiores entre os pilares, de modo a garantir espaço para a manobra dos veículos.

A partir disso, analise as afirmativas a seguir:

I. O acréscimo de altura nas seções transversais é a solução mais empregada para aumentar a rigidez da laje e, desse modo, aumentar a capacidade desta em resistir aos esforços de flexão.

PORÉM

II. O acréscimo de altura provoca o aparecimento de sobrecargas na laje, sendo necessário proceder ao redimensionamento da estrutura, de modo a verificar se os critérios de segurança e serviço serão atendidos.

Assinale a alternativa correta:

A) As afirmações I e II são proposições verdadeiras, mas a II não justifica a I.

B) As afirmações I e II são proposições verdadeiras e a II justifica a I.

C) A afirmativa I é uma proposição verdadeira, e a II, falsa.

D) A afirmação II é uma proposição verdadeira, e a I, falsa.

E) As afirmações I e II são proposições falsas.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Dimensionamento de pilares de extremidade

Dimensionar a área de aço para as armaduras é uma das etapas mais importantes no dimensionamento dos pilares de extremidade. Esses pilares podem ter uma armadura longitudinal que deve atender aos requisitos de armadura mínima estabelecidos em norma, como também uma armadura transversal e, em alguns casos, uma armadura transversal suplementar.

Diante disso, qual é o valor da área de aço da armadura longitudinal e armadura mínima do pilar de extremidade a seguir?



A) As = 10,35cm2; Asmínima = 2,42cm2.

B) As = 15cm2; Asmínima = 10cm2.

C) As = 35cm2; Asmínima = 5cm2.

D) As = 23cm2; Asmínima = 15cm2.

E) As = 18,5cm2; Asmínima = 7,45cm2.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Perda de Carga Localizada, Acessórios de Tubulação

Considerando a questão: "Qual a perda de carga singular em um conduto de 100 m, diâmetro de 100 mm, com um fluido escoando a 2 m/s, apresentando as seguintes singularidades rosqueadas na tubulação: válvula globo totalmente aberta e cotovelo de 45º com raio normal?".

Qual o erro relativo da perda de carga linear em comparação com a perda de carga total?

A) 0,08%.

B) 4,30%.

C) 8,28%.

D) 9,00%.

E) 0,09%.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Dimensionamento de pilares intermediários

O pilar P6 é classificado como pilar intermediário porque as vigas são contínuas sobre o pilar, não originando flexão importante que deva ser considerada no cálculo do pilar.

Considerando que a largura do pilar seja de 14cm, o coeficiente de majoração da carga yn é 1,25.

Dados: Nk = 600kN
lex = ley = 280cm

Qual é a força normal de cálculo?

A) 750kN.

B) 1.050kN.

C) 700kN.

D) 690kN.

E) 840kN.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

JavaScript é o mesmo que Java?

A) Sim

B) Não
Verificar Resposta Estudar Cards Todas as Questões

Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Portugol

Veja mais Dicas e truques de Portugol

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 29 usuários muito felizes estudando em nosso site.