Ir ao conteúdo

Posts recomendados

Postado

Boa noite, gostaria de saber se alguém poderia me ajudar, estou começando agora na programação e preciso fazer um algorítimo que some a hora de inicio de um jogo com a hora final e mostre quanto tempo durou o jogo, porém estou com dificuldade em saber como faz para o algorítimo entender q se o jogo começou as 22h e 35m de um dia e terminou as 21h e 55m ele soma as horas intendendo q teve uma mudança de data e o resultado n aparecer negativo 

Postado

Tem várias formas. Você pode, por exemplo, testar se o resultado é negativo. Caso seja, pega o módulo dele (torna positivo) e soma 24 horas e tem a sua resposta ;) 

Postado
2 minutos atrás, Shaman93 disse:

Tem várias formas. Você pode, por exemplo, testar se o resultado é negativo. Caso seja, pega o módulo dele (torna positivo) e soma 24 horas e tem a sua resposta ;) 

<>

algoritmo "Jogo"

var
hora_ini,hora_final,hora_total,minuto_ini,minuto_final,minuto_total:inteiro
inicio
escreval("Informe o hora e o minuto inicial do jogo:")
leia(hora_ini,minuto_ini)
escreval("Agora informe a hora e o minuto final do jogo")
leia(hora_final,minuto_final)
se(hora_ini>23)entao
escreval("*ERRO* ENTRADA DE DADOS NÃO É VÁLIDA EM HORA INICIAL *ERRO*")
senao
se(minuto_ini>59)entao
escreval("*ERRO* ENTRADA DE DADOS NÃO É VÁLIDA EM MINUTO INICIAL *ERRO*")
senao
se(hora_final>23)entao
escreval("*ERRO* ENTRADA DE DADOS NÃO É VÁLIDA EM HORA FINAL *ERRO*")
senao
se(minuto_final>59)entao
escreval("*ERRO* ENTRADA DE DADOS NÃO É VÁLIDA EM MINUTO FINAL *ERRO*")
senao
se hora_ini < hora_final entao
hora_total<- hora_final - hora_ini
senao
se (hora_ini > hora_final) entao
hora_total<- (hora_final + 24)- hora_ini
fimse
fimse
se minuto_ini > minuto_final entao
hora_total<- hora_total-1
fimse
se minuto_ini < minuto_final entao
minuto_total<- minuto_final - minuto_ini
senao
se minuto_ini > minuto_final entao
minuto_total<- (minuto_final + 60)- minuto_ini
fimse
fimse
se ((hora_ini<=23)ou(hora_final<=23)) ou ((minuto_ini<59) ou (minuto_final<59))entao
escreval("O tempo de duaração do jogo foi de :",hora_total," horas e ",minuto_total," minutos")
fimse
fimse
fimse
fimse
fimse
fimalgoritmo

<>

esse e o algoritmo como poderia fazer isso? 

 

Postado

Pra saber se é negativo, basta testar se hora final - hora inicial é menor que zero. Se for, você diz que hora = (hora final - hora inicial) * (-1) + 24.

Será que não fica mais fácil trabalhar com tudo em minutos? No início você multiplica o número de horas por 60 e soma à quantidade de minutos. Aí se a minutagem total (totalminutos_inicial - totalminutos_final) for menor que 0 você faz tempo = minutagem * (-1) + 1440. 
1440 é a quantidade de minutos em 24 horas.

No final converte de volta pra horas, divide a minutagem por 24 e o decimal (pra ficar só com a parte decimal pode fazer minutagem - int[minutagem]) multiplica por 60 pra achar os minutos. Mas aí você não pode mais usar inteiros, porque senão vai arredondar.

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