• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

deathseeker25

[Resolvido/Abandonado] Relógio digital

14 mensagens neste tópico

eu n sei trabalhar com funcoes de tempo em C!!! Ja me fizeram falta mas ainda n tentei... nem vou tentar para ja!! :D mas força nisso :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
eu n sei trabalhar com funcoes de tempo em C!!! Ja me fizeram falta mas ainda n tentei... nem vou tentar para ja!! :D mas força nisso :D

LOL...eu tenho andado a estudar quase exclusivamente funções de tempo em C....

Mas não são necessárias assim muitas para fazerem com que o meu relógio funcione....Usa-se a biblioteca <time.h> e <math.h>, onde está definido quanto vale cada segundo e usa-se uns loops (while e for) para fazerem surgir os printfs, etc...

Alem disso usa-se a função matemática "fmod" que serve para dividir numeros double ou float de forma a ficarem numeros inteiros com um determinado numero de casas decimais....

No entanto, faltame a imaginação para saber como fazer realmente o relógio digital assim como os menus (que ainda não aprendi em C, mas que hei-de começar a estudar...).

Qualquer dica, desde o utilizador mais noob até ao mais experiente é bem-vinda aqui...

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na sei se isto te pode ajudar mas neste momento é o ke sei dentro do ke pertendes, esta função vai buscar a hora instantanea ao sistema (comptador).

void hora(void)
{
   struct  time t;

   gettime(&t);

   printf("\n\tHora: %2d:%02d:%02d.%02d\n",t.ti_hour,
                                                      t.ti_min,
                                                      t.ti_sec,
                                                      t.ti_hund);

     getch();

}//Fim 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Na sei se isto te pode ajudar mas neste momento é o ke sei dentro do ke pertendes, esta função vai buscar a hora instantanea ao sistema (comptador).

void hora(void)
{
   struct  time t;

   gettime(&t);

   printf("\n\tHora: %2d:%02d:%02d.%02d\n",t.ti_hour,
                                                      t.ti_min,
                                                      t.ti_sec,
                                                      t.ti_hund);

     getch();

}//Fim 

Upa...isto já é C mais avançado do que aquele que eu escrevo....Podias explicar-me, se pudesses, que é que cada instrução significa? Á parte dos printfs etc...

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas

Alem disso usa-se a função matemática "fmod" que serve para dividir numeros double ou float de forma a ficarem numeros inteiros com um determinado numero de casas decimais....

Acho que há aqui uma coisa que não bate certo...em relação ao 'fmod'

Tinha a ideia que o 'fmod' calculava o resto da divisão (modulo) de um double por outro...e portanto deve devolver um double, e não um inteiro.

É apenas a minha ideia do que me lembro, já não uso estas funções a algum tempo...:D

Abraços!!  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se estiveres a usar o DJGPP, podes usar assim para obter o tempo:

#include <dos.h>


int main(){
struct time t;
gettime(&t);
printf("\n%d:%d:%d", t.ti_hour, t.ti_min,t.ti_sec);
return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Este pessoal anda rapido :D

O melhor é ires mmo  biblioteca do DJGPP q la encontras a explicar a função gettime

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Boas

Alem disso usa-se a função matemática "fmod" que serve para dividir numeros double ou float de forma a ficarem numeros inteiros com um determinado numero de casas decimais....

Acho que há aqui uma coisa que não bate certo...em relação ao 'fmod'

Tinha a ideia que o 'fmod' calculava o resto da divisão (modulo) de um double por outro...e portanto deve devolver um double, e não um inteiro.

É apenas a minha ideia do que me lembro, já não uso estas funções a algum tempo...:D

Abraços!!  ;)

Bom, parece que o erro foi mesmo meu....aliás a interpretação é que não foi muito boa e passo a citar aquilo que li:

(....)função da biblioteca fmod que dá o resto da divisão exacta de dois numeros reais.

in "Elementos da programação em C" de Pedro Guerreiro.

Eu confundi com a função floor que segundo esse mesmo livro:

Aliás, a parte inteira de um numero real pode obter-se com uma outra função de biblioteca, a função floor

Peço então desculpas pelo equívoco....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Citação
Este pessoal anda rapido :D

O melhor é ires mmo  biblioteca do DJGPP q la encontras a explicar a função gettime

O que é o DJGPP?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Peço então desculpas pelo equívoco....

Não era suposto pedires desculpa...

Eu é que houve uns tempos que usei muitas funções matemáticas e tinha essa ideia do 'fmod', só isso...

Por isso é se diz que estamos sempre a aprender  ;)

Abraços!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Peço então desculpas pelo equívoco....

Não era suposto pedires desculpa...

Eu é que houve uns tempos que usei muitas funções matemáticas e tinha essa ideia do 'fmod', só isso...

Por isso é se diz que estamos sempre a aprender  ;)

Abraços!!

Ora nem mais.... :D

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Citação
Citação
Este pessoal anda rapido

O melhor é ires mmo  biblioteca do DJGPP q la encontras a explicar a função gettime

O que é o DJGPP?

Citação
DJGPP is a complete 32-bit C/C++ development system for Intel 80386 (and higher) PCs running DOS. It includes ports of many GNU development utilities. The development tools require a 80386 or newer computer to run, as do the programs they produce. In most cases, the programs it produces can be sold commercially without license or royalties.

Dá uma olhadela aqui. :D

Abraços!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O DJGPP é um compilador para C:

DJGPP is a complete 32-bit C/C++ development system for Intel 80386 (and higher) PCs running DOS. It includes ports of many GNU development utilities. The development tools require a 80386 or newer computer to run, as do the programs they produce. In most cases, the programs it produces can be sold commercially without license or royalties
Site: http://www.delorie.com/djgpp/
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora