Ir ao conteúdo

Posts recomendados

Postado

Olá boa tarde!
eu estou com um projeto de fazer um relógio digital na faculdade
só q eu to com dificuldade em colocar o dito cujo em laço:wacko:
por exemplo
quando chegar em 59 segundos
mudar pra 1 minuto
e quando chegar em 59 minutos
mudar pra um hora
e deixa isso num loop eterno
:(
fico mais ou menos assim o começo
---------------------------------------------

se (segundo > 59) então
    minuto <- minuto + 1
    segundo <- 0
fimse
se (minuto > 59) então
    hora <- hora + 1
    minuto <- 0
    segundo <- 0
fimse
se (hora > 23) então
   hora <- 0
   minuto <- 0
   segundo <- 0
fimse

-----------------------------------------------

se alguem puder dizer que jeito é melhor de fazer
usando o enquanto o repita ou o faça
e como eu posso fazer ou dar um ideia eu agradeço
eu to usando o visualg para fazer esse algortimo
como podem ver sou novo no forum e desde de já agradeço. :)

  • Curtir 1
Postado
var
   i,j,k,h:inteiro
inicio
escreval("Insira a hora atual em horas, minutos e segundos")
leia(i,j,k)
enquanto h=0 faca
   enquanto i<=23 faca
      enquanto j<=59 faca
         enquanto k<=59 faca
            escreval(i,j,k)
            k<-k+1
         fimenquanto
         se k=60 então
            k<-0
         fimse
         j<-j+1
      fimenquanto
      i<-i+1
      se j=60 então
         j<-0
      fimse
   fimenquanto
   se i=24
      i<-0
   fimse
fimenquanto
// Seção de Comandos
fimalgoritmo

 

Esse algoritmo vai fazer o relógio, porém o timing você vai ter que se virar.

  • Curtir 1
  • 3 anos depois...
  • 3 anos depois...
Postado

Gente, criei um relógio digital queria ajuda a resolver um problema nos segundos não aparece 0 e sim 60

Quem puder me dar alguma dica agradeço.

algoritmo"relógio"
var
   hh ,mm , ss :inteiro
var
   t:texto
inicio
leia(hh)
leia(mm)
leia(ss)
t<-":"
ss<-ss+1
escreval ("relógio")
escreval(hh,t,mm,t,ss)
esperar 1 segundos
se (ss=60) então
   mm<-mm+1
   ss<-0
fimse
se (mm=60)então
   hh<-hh+1
   mm<-0
fimse
se (hh=24)então
   hh<-0
   mm<-0
fimse
limpatela
repita
   ss<-ss+1
   escreval ("relógio")
   escreval(hh,t,mm,t,ss)
   esperar 1 segundos
   se (ss=60) então
      mm<-mm+1
      ss<-0
   fimse
   se (mm=60)então
      hh<-hh+1
      mm<-0
   fimse
   se (hh=24)então
      hh<-0
      mm<-0
   fimse
   limpatela
ate hh>76
fimalgoritmo

 

  • Curtir 1
  • Membro VIP
Postado

Olá @Eder Janio.

 

Está escrito em que linguagem?

Usa qual programa e versão    ou   que site para compilar/executar?

 

 

Sobre:

1 hora atrás, Eder Janio disse:

Gente, criei um relógio digital queria ajuda a resolver um problema nos segundos não aparece 0 e sim 60

Você está atualizando, e depois imprimindo e só após verifica... basta atualizar e verificar antes de imprimir...

 

 

No Visualg (testei no 3.6.0.5) poderia ficar assim:

algoritmo "relogio"
var
   hh ,mm , ss :inteiro
//var
//   t:texto #usam-se 'caracter"
   t :caracter
inicio
escreva ("Horas   :")
leia(hh)
escreva ("Minutos :")
leia(mm)
escreva ("Segundos:")
leia(ss)
t<-":"
ss<-ss+1
escreval("Relógio")
escreval(hh,t,mm,t,ss)
//esperar 1 segundos
escreval("aguarde processamento..")
timer 3000 //em milissegundos
timer 0
se (ss=60) ENTÃO
   mm<-mm+1
   ss<-0
fimse
se (mm=60)ENTÃO
   hh<-hh+1
   mm<-0
fimse
se (hh=24)ENTÃO
   hh<-0
   mm<-0
fimse
limpatela
repita
   escreva ("Hora: ")
   escreval(hh,t,mm,t,ss)
   timer 1000
   timer 0
   ss<-ss+1
   se (ss=60) ENTÃO
      mm<-mm+1
      ss<-0
   fimse
   se (mm=60) ENTÃO
      hh<-hh+1
      mm<-0
   fimse
   se (hh=24) ENTÃO
      hh<-0
      mm<-0
   fimse
   limpatela
ate hh>76 //por que 76?
fimalgoritmo

No caso, ai eu imprimi, depois atualizei e logo após verifica.

adicionado 33 minutos depois

ADENDO:

Como o "start" da virada vem dos segundos... a estrutura dos se deveria ficar mais ou menos assim:

se (ss=60) ENTÃO
   mm<-mm+1
   ss<-0
   se (mm=60)ENTÃO
      hh<-hh+1
      mm<-0
      se (hh=24)ENTÃO
         hh<-0
         mm<-0
      fimse
   fimse
fimse

Ou seja, só precisa verificar os minutos e os segundo foram atualizados... só precisa verificar as horas se os minutos foram atualizados... é uma cadeia...

 

Att

  • Curtir 1

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