Ir ao conteúdo
  • Cadastre-se

Calcular a velocidade média, distância e tempo


Posts recomendados

Boa tarde,

Estou desenvolvendo um algoritmo no visualG no qual ele pede que o usuário escolha uma opção:
Caso ele escolha a opção 1 o algoritmo calcule a velocidade media de um carro percorrida em uma determinada distancia e tempo digitados pelo usuário. 

Caso ele escolha a opção 2 o algoritmo calcule a distância percorrida de um carro em uma determinada velocidade e tempo digitados pelo usuário.

Caso ele escolha a opção 3 o algoritmo calcule a distância percorrida de um carro em uma determinada velocidade e tempo digitados pelo usuário. 

Caso ele escolha a opção 0 o programa é encerrado.

Caso escolha outra opção aparece opção inválida!

Até ai tudo tranquilo!

As dúvidas são as seguintes:
 

Dúvida 1: Caso usuário escolha 1, ele irá digitar a distância e o tempo, caso o tempo seja um valor quebrado ex: 1h e 20 min, como o usuário iria digitar esse valor?
Dúvida 2: Caso usuário escolha 2, idem acima!

Dúvida 3: Caso usuário escolha 3, ele irá digitar a distância e o velocidade para calcular o tempo, porém o tempo até 1h e 59 minutos, quando passa pra 2 horas ele mostra 1 hora e 6o minutos. Como corrigir isso?
 

Segue abaixo os códigos do arquivo em questão! Caso queiram o arquivo com o código para teste, favor escrever uma mensagem com o e-mail que eu encaminharei para testes
Agradeço a colaboração de todos!
 

algoritmo "Física"
// Função : Calcular a velocidade média, Distância e tempo
// Autor :  Lucas Sandes
// Data : 27/04/2016
// Seção de Declarações 
var
opc                                               :inteiro
dist,tempo,tempm,h,min,vm         :real
inicio
      escreval ("Escolha a opção desejada!")
      escreval
      escreval ("===============================")
      escreval ("|1: VELOCIDADE MEDIA                      |")
      escreval ("|2: DISTÂNCIA PERCORRIDA              |")
      escreval ("|3: TEMPO PERCORRIDO                    |")
      escreval ("|0: SAIR                                                 |")
      escreval ("===============================")
      escreva (">> ")
      leia (opc)
      
      escolha (opc)
             caso 1
                   escreval
                   escreval ("Vamos calcular a Velocidade média")
                   escreval ("=================================")
                   escreval
                   escreval ("Qual a distância percorrida?")
                   escreva (">> ")
                   leia (dist)
                   escreval
                   escreval ("Qual tempo gasto?")
                   escreva (">> ")
                   leia (tempo)
                   vm <- dist / tempo
                   escreval
                   escreval ("Sua velocidade média final foi de: ",vm:1:1," Km/h")
             caso 2
                   escreval
                   escreval ("Vamos calcular a distância percorrida!")
                   escreval ("=================================")
                   escreval
                   escreval ("Qual a sua velocidade?")
                   escreva (">> ")
                   leia (vm)
                   escreval
                   escreval ("Qual tempo gasto?")
                   escreva (">> ")
                   leia (tempo)
                   escreval
                   dist <- vm * tempo
                   escreval ("Sua distância final percorrida foi de: ",dist," Km")
             caso 3
                   escreval
                   escreval ("Vamos calcular o tempo percorrido!")
                   escreval ("==================================")
                   escreval
                   escreval ("Qual a sua distância?")
                   escreva (">> ")
                   leia (dist)
                   escreval
                   escreval ("Qual a velocidade?")
                   escreva (">> ")
                   leia (vm)
                   tempo <- dist / vm
                   tempm <- tempo * 60
                   min <- tempm - 60
                   h <- (tempm - min)/60
                   escreval
                   escreva ("Você percorreu",h," horas e",min," minutos")
             caso 0
                  limpatela
                  escreva("Fim do programa, pressione ESC para sair")
             outrocaso
                      escreva("Opção inválida")
             fimescolha
     fimalgoritmo

 

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

Dúvida 1: Caso usuário escolha 1, ele irá digitar a distância e o tempo, caso o tempo seja um valor quebrado ex: 1h e 20 min, como o usuário iria digitar esse valor?
Dúvida 2: Caso usuário escolha 2, idem acima!

Você terá que ver o seguinte: qual unidade que retornará? km/h, m/s etc...

Se for km/h, terá que entrar a hora em decimal (1h20min = 1,3 hora) e o km

se for m/s, terá que entrar a hora já em segundo ou dividir o km/h por 3,6 pra dar m/s

 

 

No último caso terá que ir dividindo por 60 e juntar tudo no fim... se quer saber o tempo viajado

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

1 minuto atrás, diegocmatte disse:

1 e 2: não importa muito pois como tu declarou as variaveis como REAL. Exemplo: "1h30" ele deverá escrever "1,5"

 

o que seria a variavel MIN?

1h20min = Uma hora e vinte minutos... hehe

O problema é que tentar fazer algo pro usuário entrar diretamente 1h30 seria muito complicado e muito fácil de bugar... então, quando aparecer o texto de "digite o tempo", adicione junto " em decimal" ou coisa assim, para que seja entrado já 1,5 no valor da hora...

 

 

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

1 minuto atrás, diegocmatte disse:

1 e 2: não importa muito pois como tu declarou as variaveis como REAL. Exemplo: "1h30" ele deverá escrever "1,5"

 

o que seria a variavel MIN?

A variável min será para a opção 3

escreva ("Você percorreu",h," horas e",min," minutos")

3 minutos atrás, diegocmatte disse:

1 e 2: não importa muito pois como tu declarou as variaveis como REAL. Exemplo: "1h30" ele deverá escrever "1,5"

 

o que seria a variavel MIN?

 

6 minutos atrás, diegocmatte disse:

1 e 2: não importa muito pois como tu declarou as variaveis como REAL. Exemplo: "1h30" ele deverá escrever "1,5"

 

o que seria a variavel MIN?

A variável min será para a opção 3

escreva ("Você percorreu",h," horas e",min," minutos")

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

tipo, não manjo muito desse teu algoritmo lá...

mas tu teria que pegar o valor que o programa vai retornar (tipo 1,5) pra hora...

fazer 1,5 menos 1 = 0,5

 

multiplicar por 60

 

e o resultado seria min = 30

 

se fosse mais de 2h, acho que teria que fazer um "while" (enquanto) o valor for > 1 ele deve diminuir 1 e adicionar um contador...

aí, na Hora você escreve o contador e no min, pega o numero 0,5 por ex e multiplica por 60...

 

deve funcionar.

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

2 minutos atrás, Raimar Lunardi disse:

tipo, não manjo muito desse teu algoritmo lá...

mas tu teria que pegar o valor que o programa vai retornar (tipo 1,5) pra hora...

fazer 1,5 menos 1 = 0,5

 

multiplicar por 60

 

e o resultado seria min = 30

 

se fosse mais de 2h, acho que teria que fazer um "while" (enquanto) o valor for > 1 ele deve diminuir 1 e adicionar um contador...

aí, na Hora você escreve o contador e no min, pega o numero 0,5 por ex e multiplica por 60...

 

deve funcionar.

Valeu parceiro, vou testar aqui

2 minutos atrás, diegocmatte disse:

Por exemplo: Dist = 150, VM = 100, tempo será 1,5 (tempo em horas, 1h30 nesse caso).

Multiplique 1,5 por 60 e tu terás 90 (tempo em minutos) 

E depois converter os 90 min em horas

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

  • 2 semanas depois...

olá  Lucas.Sandes
  seu código está bom, só precisa modificar algumas linhas. Peça  para o usuário

digitar o tempo em minutos, por exemplo se for digitar 1h e 30min digite 90.

 E a distancia em KM, e a velocidade media em KM/H, e Ali no caso 3 depois de

leia(vm)  coloque assim min := dist / vm * 60 e coloque um repita de forma que

se min for maior que 59.999, seja somado um à hora, e subtraia 60 da variável min

até que min seja menor que 60.    Aí ele vai mostrar as horas e os minutos certos  . 
 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!