Ir ao conteúdo
  • Cadastre-se

VisualG Total de recursos arrecadados por multa


Posts recomendados

Como ficaria o restante desse código?

 

Descrição: Crie um algoritmo que ajude o DETRAN a saber o total de recursos que foram arrecadados com a aplicação de multas de trânsito. O algoritmo deve ler as seguintes informações para cada motorista:

  • O número da carteira de motorista (caso o usuário digite o número 0, finalizar o programa);
  • Número de multas;
  • Valor da cada uma das multas;
  • Deve ser impresso o número da carteira, o valor da dívida de cada motorista;
  • e ao final da leitura o total de recursos arrecadados (somatório de todas as multas).

 

Var
   cart,mult:inteiro
   val:real
Inicio
   cart <-1
   enquanto cart <> 0 faca
      escreval (" Informe a carteira de motorista ou 0 para finalizar")
      leia (cart)
      escreval (" Informe o número de multas")
      leia(mult)
      escreval (" Informe o valor de cada uma das multas")
      leia (val)
   fimenquanto

 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@Eli Almeidaa    essa é uma questão de interpretar o que pede no enunciado ,  e pelo que entendi , precisa pegar o número da carteira e a quantidade de multas ,  e pegar também o valor de cada multa separadamente , pois pode ter de valores diferentes ,  e depois mostrar esse valor total ,  e também para sair do programa ao Digitar o nÚmero 0 ,  precisa colocar uma condição com o comando se , pois  em qualquer tipo de loop , mesmo ao digitar 0 ele vai continuar e pedir os dados do mesmo jeito e só depois sair do programa ,  e seria melhor que assim que digitar o zero ele termine o programa na mesma Hora , e já mostra o somatório do valor total arrecadado com as multas .

Algoritmo "detranses"
Var
  cart , mult , i      : inteiro
  val , ax , somatorio : real
Inicio
  cart <-1
  enquanto cart <> 0 faca
    val <- 0.00      // precisa inicializar pois vai repetir para cada multa
    escreval (" Informe a carteira de motorista ou 0 para finalizar")
    leia     (cart)
    se cart = 0 então
      interrompa     // esse comando faz sair desse loop enquanto
    fimse

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
10 horas atrás, Eli Almeidaa disse:

olhei alguns exemplos na web, mas não consegui entender direito essa questão. Como ficaria ? 

 

Basicamente a sugestão seria você focar problema. Primeiro entende, depois resolve. Foque no problema! Qual parte não teria entendido? 

 

 

Tipo: 

  • O número da carteira de motorista (caso o usuário digite o número 0, finalizar o programa);

Já sabe fazer. É só o número.

  • Número de multas;

Idem. É só ler.

  • Valor da cada uma das multas;

Opa! Como assim "cada valor"? Não entendi. Seria um subproblema (do problema geral). Eu entendi assim: se foram 3 multas, eu leria o valor de cada uma.

Entendi, mas como faço para ler o valor de cada multa?. Ou seja: a dúvida seria especificamente sobre isso. Entende? Daí, pararia para achar algo... com aquilo que já teve contato... por aí vai.

 

Beleza! Uma forma que imagino que poderia ser, seria utilizar um laço de repetição se baseando pela quantidade de multa que eu já li antes. Exemplo:

      para i de 1 ate qtdMultas faca
         escreva (" Multa ", i:2, ": ")
         leia(valorMulta)
         valorDivida <- valorDivida + valorMulta
      fimPara

 

 Se forem 3 multas, vai ler 3 valores. Para cada valor que ler, já vai fazendo a soma do subtotal. 

 

Perceba que tudo deve meio que seguir um fluxo natural... seguir os passos como se fosse fazer na mão mesmo.. utilizando um papel e lápis. O VisualG e o Portugol servem apenas como um mecanismo para automatizar o processo. Mais abaixo posto um código completo para deixar mais claro.

  • Deve ser impresso o número da carteira, o valor da dívida de cada motorista;

É isso que tá escrito!!!

  • e ao final da leitura o total de recursos arrecadados (somatório de todas as multas).

Idem.

 

 

 

Veja um código com uma possível solução:

 

algoritmo "Total de recursos arrecadados no DETRAN"
//Descrição: Crie um algoritmo que ajude o DETRAN a saber o total de recursos
//que foram arrecadados com a aplicação de multas de trânsito. O algoritmo
//deve ler as seguintes informações para cada motorista:

//O número da carteira de motorista(caso o usuário digite o número 0,
//finalizar o programa);
//Número de multas;
//Valor de cada uma das multas;
//Deve ser impresso o número da carteira, o valor da dívida de cada motorista;
//e ao final da leitura o total de recursos arrecadados (somatório de todas as
//multas).
var
   cartMotorista, qtdMultas, i : inteiro
   valorMulta, valorDivida, valorArrecadado : real

Inicio
   enquanto (VERDADEIRO) faca
      escrevaL(" Informe a carteira de motorista ou 0 para finalizar")
      leia(cartMotorista)

      se (cartMotorista = 0) então
         interrompa()
      fimSe

      escrevaL(" Informe o número de multas")
      leia(qtdMultas)
      escrevaL(" Informe o valor de cada uma das multas")
      valorDivida <- 0

      para i de 1 ate qtdMultas faca
         escreva (" Multa ", i:2, ": ")
         leia(valorMulta)
         valorDivida <- valorDivida + valorMulta
      fimPara

      escrevaL("Carteira de Motorista: ", cartMotorista:1)
      escrevaL("Valor da dívida : R$ ", valorDivida:1:2)

      valorArrecadado <- valorArrecadado + valorDivida
      escrevaL("")
      escrevaL("")
   fimEnquanto

   escrevaL(" Total de recursos arrecadados: R$ ", valorArrecadado:1:2 )
fimAlgoritmo

 

 

image.png

 

 

Veja: isso seria uma possível solução completa! Como sabido por nós, não é o foco do fórum. Postei para servir de referência, já que está fazendo outros exercícios.

 

Daí, poderia reanalisar o enunciado e comparando com essa possível solução. Ir tentando entender a lógica aplicada. Tente ir percebendo como tentei seguir exatamente o quê foi proposto no enunciado.. como uma receita de bolo. Pode está "certo", pode está "errado". Mas a ideia é tentar seguir, inicialmente, apenas o que foi pedido! Se entendeu algo diferente, vai refletindo e ajustando detalhes... 

 

Qualquer dúvida ou sugestão é só postar

 

No aguardo.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Em 21/03/2023 às 23:01, Simon Viegas disse:

 

Basicamente a sugestão seria você focar problema. Primeiro entende, depois resolve. Foque no problema! Qual parte não teria entendido? 

 

 

Tipo: 

  • O número da carteira de motorista (caso o usuário digite o número 0, finalizar o programa);

Já sabe fazer. É só o número.

  • Número de multas;

Idem. É só ler.

  • Valor da cada uma das multas;

Opa! Como assim "cada valor"? Não entendi. Seria um subproblema (do problema geral). Eu entendi assim: se foram 3 multas, eu leria o valor de cada uma.

Entendi, mas como faço para ler o valor de cada multa?. Ou seja: a dúvida seria especificamente sobre isso. Entende? Daí, pararia para achar algo... com aquilo que já teve contato... por aí vai.

 

Beleza! Uma forma que imagino que poderia ser, seria utilizar um laço de repetição se baseando pela quantidade de multa que eu já li antes. Exemplo:

      para i de 1 ate qtdMultas faca
         escreva (" Multa ", i:2, ": ")
         leia(valorMulta)
         valorDivida <- valorDivida + valorMulta
      fimPara

 

 Se forem 3 multas, vai ler 3 valores. Para cada valor que ler, já vai fazendo a soma do subtotal. 

 

Perceba que tudo deve meio que seguir um fluxo natural... seguir os passos como se fosse fazer na mão mesmo.. utilizando um papel e lápis. O VisualG e o Portugol servem apenas como um mecanismo para automatizar o processo. Mais abaixo posto um código completo para deixar mais claro.

  • Deve ser impresso o número da carteira, o valor da dívida de cada motorista;

É isso que tá escrito!!!

  • e ao final da leitura o total de recursos arrecadados (somatório de todas as multas).

Idem.

 

 

 

Veja um código com uma possível solução:

 

algoritmo "Total de recursos arrecadados no DETRAN"
//Descrição: Crie um algoritmo que ajude o DETRAN a saber o total de recursos
//que foram arrecadados com a aplicação de multas de trânsito. O algoritmo
//deve ler as seguintes informações para cada motorista:

//O número da carteira de motorista(caso o usuário digite o número 0,
//finalizar o programa);
//Número de multas;
//Valor de cada uma das multas;
//Deve ser impresso o número da carteira, o valor da dívida de cada motorista;
//e ao final da leitura o total de recursos arrecadados (somatório de todas as
//multas).
var
   cartMotorista, qtdMultas, i : inteiro
   valorMulta, valorDivida, valorArrecadado : real

Inicio
   enquanto (VERDADEIRO) faca
      escrevaL(" Informe a carteira de motorista ou 0 para finalizar")
      leia(cartMotorista)

      se (cartMotorista = 0) então
         interrompa()
      fimSe

      escrevaL(" Informe o número de multas")
      leia(qtdMultas)
      escrevaL(" Informe o valor de cada uma das multas")
      valorDivida <- 0

      para i de 1 ate qtdMultas faca
         escreva (" Multa ", i:2, ": ")
         leia(valorMulta)
         valorDivida <- valorDivida + valorMulta
      fimPara

      escrevaL("Carteira de Motorista: ", cartMotorista:1)
      escrevaL("Valor da dívida : R$ ", valorDivida:1:2)

      valorArrecadado <- valorArrecadado + valorDivida
      escrevaL("")
      escrevaL("")
   fimEnquanto

   escrevaL(" Total de recursos arrecadados: R$ ", valorArrecadado:1:2 )
fimAlgoritmo

 

 

image.png

 

 

Veja: isso seria uma possível solução completa! Como sabido por nós, não é o foco do fórum. Postei para servir de referência, já que está fazendo outros exercícios.

 

Daí, poderia reanalisar o enunciado e comparando com essa possível solução. Ir tentando entender a lógica aplicada. Tente ir percebendo como tentei seguir exatamente o quê foi proposto no enunciado.. como uma receita de bolo. Pode está "certo", pode está "errado". Mas a ideia é tentar seguir, inicialmente, apenas o que foi pedido! Se entendeu algo diferente, vai refletindo e ajustando detalhes... 

 

Qualquer dúvida ou sugestão é só postar

 

No aguardo.

@Simon Viegas,obrigada agora deu para entender algumas coisas que não estava entendendo, modifiquei algumas coisas para

não ficar igual.

 

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Em 22/03/2023 às 23:26, Eli Almeidaa disse:

@Simon Viegas,obrigada agora deu para entender algumas coisas que não estava entendendo, modifiquei algumas coisas para

não ficar igual.

 

Sugiro tentar entender tudo. Se tiver algum ponto que não entendeu, para para entender.

 

Geralmente as bases dos problemas se repetem... ou seja: melhor tentar ir assimilando no início, quando se deparar com algo semelhantes, já vai menos dificuldade.

 

Qual parte não entendeu?

 

 

Adendo: aqui não estamos estudando VisualG, mas sim técnicas de programação (é universal). Que inclui também "técnicas de entender coisas que ainda não entendemos" 😄.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!