Ir ao conteúdo
  • Cadastre-se

VisualG Relogio digital no VisualG


Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

  • 3 anos depois...
  • 3 anos depois...

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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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