Você está aqui: Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Laços

A concessionária de veículos "CARANGO VELHO" está vendendo os seus veículos com descontos. Faça um algoritmo Portugol - Desafio de Programação Resolvido em Portugol

Quantidade de visualizações: 689 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:

Este trecho de código ou resolução de exercício faz parte do Super Pack 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos em Java, Python, VisuAlg, Portugol, Delphi, C#, C, C++, VB.NET, Golang, Pascal, Ruby, PHP, e várias outras linguagens.

Aprenda a programar resolvendo problemas do mundo real. Tudo em português, com comentários em português.

Quero Ser Apoiador(a)


Link para compartilhar na Internet ou com seus amigos:

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

Como acessar os caracteres individuais de uma palavra ou frase em Portugol usando a função obter_caracter() da biblioteca Texto

Quantidade de visualizações: 270 vezes
Em algumas situações nós precisamos acessar os caracteres individuais de uma palavra ou frase no Portugol Studio ou Portugol Web Studio. Para isso nós podemos usar a função obter_caracter() da biblioteca Texto.

Esta função pede, como primeiro argumento, a palavra ou frase a partir da qual o caractere será extraído e, como segundo argumento, o índice do caractere (sempre começando em 0 para o primeiro caractere).

Veja um programa Portugol completo no qual obtemos o primeiro caractere de uma palavra:

----------------------------------------------------------------------
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() {
    cadeia palavra = "PORTUGOL"
    caracter letra = tx.obter_caracter(palavra, 0)
    escreva("A letra retornada é: ", letra)
  }
}

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

A letra retornada é: P

Veja agora como podemos usar o laço PARA para percorrer e exibir todos os caracteres individuais da palavra ou 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() {
    cadeia palavra = "PORTUGOL"

    para (inteiro i = 0; i <= tx.numero_caracteres(palavra) - 1; i++) {
      caracter letra = tx.obter_caracter(palavra, i)
      escreva("A letra é: ", letra, "\n")
    }
  }
}

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

A letra é: P
A letra é: O
A letra é: R
A letra é: T
A letra é: U
A letra é: G
A letra é: O
A letra é: L


Portugol ::: Dicas & Truques ::: Matemática e Estatística

Como resolver uma equação do segundo grau em Portugol - Como calcular Bhaskara em Portugol

Quantidade de visualizações: 2230 vezes
Como resolver uma equação do 2º grau usando Portugol

Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando um algoritmo escrito na ferramenta Portugol Studio, uma das preferidas para o aprendizado de algoritmos e lógica de programação.

Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a &#8800; 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita.

Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0.

Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente.

Como resolver uma equação do 2º grau

Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns:

a) Fórmula de Bhaskara;
b) Soma e produto.

O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa.

Como resolver uma equação do 2º grau usando Bhaskara

Como nosso algoritmo Portugol vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja:

\[\Delta =b^2-4ac\]

Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades:

a) Se determinante > 0, então a equação possui duas soluções reais.
b) Se determinante = 0, então a equação possui uma única solução real.
c) Se determinante < 0, então a equação não possui solução real.

Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara:

\[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\]

Vamos agora ao código Portugol (escrevi e testei no Portugol Webstudio). Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:

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

// "Como resolver uma equação do 2º grau usando Portugol
programa {
  // inclui a biblioteca Matematica
  inclua biblioteca Matematica --> mat

  // função principal do programa
  funcao inicio() {
    // variáveis usadas na resolução do problema
    // os coeficientes
    real a, b, c
    // as duas raizes, a imaginaria e o discriminante
    real raiz1, raiz2, imaginaria, discriminante

    // vamos pedir para o usuário informar os valores dos coeficientes
    escreva("Valor do coeficiente a: ")
    leia(a)
    escreva("Valor do coeficiente b: ")
    leia(b)
    escreva("Valor do coeficiente c: ")
    leia(c)

    // vamos calcular o discriminante
    discriminante = (b * b) - (4 * a * c)

    // a equação possui duas soluções reais?
    se (discriminante > 0) {
      raiz1 = ((b * -1) + mat.raiz(discriminante, 2.0)) / (2 * a)
      raiz2 = ((b * -1) - mat.raiz(discriminante, 2.0)) / (2 * a)
      escreva("Duas raizes: x1 = ", raiz1, " e x2 = ", raiz2)
    }
    // a equação possui uma única solução real?
    senao se (discriminante == 0){
      raiz1 = (b * -1) / (2 * a)
      raiz2 = (b * -1) / (2 * a)
      escreva("Duas raizes iguais: x1 = ", raiz1, " e x2 = ", raiz2)
    }
    // a equação não possui solução real?
    senao{
      raiz1 = (b * -1) / (2 * a)
      raiz2 = (b * -1) / (2 * a)
      imaginaria = mat.raiz((discriminante * -1), 2.0) / (2 * a)
      escreva("Existem duas raízes complexas: ")
      escreva("x1 = ", raiz1, " + " ,imaginaria, " e x2 = ", raiz2, " - ", imaginaria)
    }
  }
}

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

Valor do coeficiente a: 1
Valor do coeficiente b: 2
Valor do coeficiente c: -3
Existem duas raizes: x1 = 1.0 e x2 = -3.0


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: 217 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.


Desafios, 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á 23 usuários muito felizes estudando em nosso site.