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

lousada

Relogio

5 mensagens neste tópico

Tou a pensar fazer um relogio mas sao muito novo em progrmação alguem podia fazer um para ver os codigos etc?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Procura pela biblioteca time.h no google.

Tem la tudo que precisas  ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Depois de obteres os valores dos minutos e horas, convém colocar isso num formato mais facil para tu trabalhares e o ideal é escreveres isso numa string, fiz aqui um pequeno código onde mostra por exemplo como podes escrever os valores numa string, e como podes escrever isso por exemplo na consola de forma suave, actualizando apenas o valor de 60 em 60s necessitando para isso 1o de sincronizar o processo...

#include <time.h>
#include <stdio.h>
#include <windows.h>

int main(void)
{
    time_t tempo;
    struct tm *data;
    char string[12] = "  :   horas";
    char caracter;
    
    printf("Espera para sincronizar o relógio");
    do{
    time(&tempo);
    }
    while(tempo%60!=0);
    printf("\r");
    printf("                                       ");
    printf("\r");
do{
    Sleep(60);
    time(&tempo);
    data=localtime(&tempo);
    
    caracter = (*data).tm_hour/10 + '0';
    string[0]=caracter;
    
    caracter = (*data).tm_hour%10 + '0';
    string[1]=caracter;
    
    caracter = (*data).tm_min/10 + '0';
    string[3]=caracter;
    
    caracter = (*data).tm_min%10 + '0';
    string[4]=caracter;
    
    if((tempo%60)==0)printf("%s \r",string);
}while(1);
    return 0;   
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

acho que já estou a abusar da vossa ajuda mas podias explicar paço por paço cada código? se não foi chato sff

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hmmm, ora bem aqui vamos ...

    time_t tempo;
    struct tm *data;

Isto aqui definete as variáveis que vais usar a partir da classe time.h

o time_h é um numero enorme que te diz o numero de segundos que passaram desde o dia 1 jan de 1970 axo eu, até ao momento em que tu fazes "load" desse valor.

o struct tm é um struct composto por dia, hora,minuto, mes etc td informação relativa ao tempo que se pode calcular a partir do numero de segundos que passaram desde 1970.

Para obter essa informação tens que usar estas funções da classe time.h

time(&tempo);
data=localtime(&tempo);

a função time date o tal nmeor de segundos e tem como argumento um ponteiro para time_t

e a função localtime faz-te os tais calculos a partir do numeor de segundos.

Depois para criar a string usas isto

caracter = (*data).tm_hour/10 + '0';
    string[0]=caracter;

caracter = (*data).tm_hour%10 + '0';
    string[1]=caracter;

na string tens que escrever digito por digito os valores das horas e minutos, e como as horas podem ir até  á unidade das dezenas o que se faz para encontrar o 1o algrismo(das dezenas) é ver qual é a parte inteira da divisão ( / ) das horas por 10 e para encontrar a unidade é pegar no resto da divisão das horas por 10 ( % ).

Para saberes qual o valor em ascii desse lagarismo para escreveres na string é muito facil, basta somares ao '0' ( valor ascii do zero) porque os algarismo vem todos seguidos na tabela de ascii.

Bem, o melhor que tens a fazer e começar a fazer programas em c, muito pequenos, para imprimir coisas ver como são feitas as operções matemáticas etc, porque se não estudares tu passo a passo n vais compreender as coisas ...

 

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