La Red de Conocimientos Pedagógicos - Currículum vitae - Reloj programado en lenguaje C

Reloj programado en lenguaje C

Te doy 2 opciones, ambas son originales:

La primera:

#includelt;graphics.hgt;

#includelt ;math.hgt;

#includelt;dos.hgt;

#define pi 3.1415926

#define X(a,b,c) x =a *cos(b*c*pi/180-pi/2) 300;

#define Y(a, b, c) y=a*sin(b*c*pi/180-pi/ 2) 240;

#define d(a,b,c) X(a,b,c);Y(a,b,c);line(300,240,x,y )

void init()

{int i, l, x1, x2, y1, y2

setbkcolor(1); 300, 240, 200);

círculo(300, 240, 205);

círculo(300, 240, 5); 0;ilt;60;i)

{if(i5==0) l=15;

else l=5;

x1=200* cos(i*6*pi/180) 300;

y1=200*sin(i*6*pi/180) 240;

x2=(200 -l)* cos(i*6*pi/180) 300

y2=(200-l)*sin(i*6*pi/180)

línea(x1, y1, x2, y2);

}

}

principal()

{

int x , y;

int gd=VGA, gm=2;

unsigned char h, m, s;

tiempo de estructura t[1 ]; p>

initgraph(amp; gd, amp; gm, "d:\\tc");

init()

setwritemode(1)

gettime(t);

h=t[0].ti_hora

m=t[0].ti_min

s=; t[0].ti_sec;

setcolor(7);

d(150, h, 30);

setcolor(14);

d(170, m, 6);

setcolor(4);

d(190, s, 6);

mientras( !kbhit())

{ while(t[0].ti_sec==s)

gettime(t);

sonido( 400); /p>

retraso(70);

sonido(200);

retraso(30);

nosound();

setcolor(4);

d(190, s, 6);

p> s=t[0].ti_sec;

d(190, s, 6);

if (t[0].ti_min!=m)

{

setcolor(14);

d(170, m, 6);

m=t[0].ti_min

p> p>

d(170, m, 6);

}

si (t[0].ti_hour!=h)

{ setcolor (7);

d(150, h, 30);

h=t[0].ti_hour

d(150, h; , 30 );

sonido(1000);

retraso(240);

sin sonido(); ;

sonido(2000);

retraso(240);

nosound(); > }

getch();

closegraph();

}

Segundo:

#includelt ;graphics.hgt;

#includelt;math.hgt;

#includelt;dos.hgt;

#define PI 3.1415926

#define x0 320 /*Define las coordenadas del centro del reloj*/

#define y0 240

void DrawClock(int x, int y, int color) /*Dibuja el dial* /

{ int r=150; /*radio del dial*/

float th;

setcolor(color);

círculo( x, y, r);

círculo(x, y, 2);

}

void DrawHand(int x, int y, float th, int l, int color)

{

int x1, y1

x1=x l*sin(th); p> y1 =y-l*cos(th);

setcolor(color);

line(x, y, x1, y1);

}

void main()

{int gdriver=DETECT, gmode;

struct time curtime;

float th_hour, th_min, th_sec;

initgraph(amp; gdriver, amp; gmode, "");

setbkcolor(0);

while(! kbhit())

{

DrawClock(x0, y0, 14);

gettime(amp; curtime /*Obtener la hora actual del sistema*/

gotoxy(35, 20); /*Ubicar la posición de salida*/

if((float)curtime.ti_hourlt;=12) /*Procesando antes del mediodía*/

{printf ( "AM ");

if((float)curtime.ti_hourlt; 10) printf("0"); /*Agregar cero antes de las diez*/

printf ("0f:", (float)curtime.ti_hour);

}

else /*Procesamiento por la tarde*/

{printf(" PM " );

if((float)curtime.ti_hour-12lt;10) printf("0");

printf(".0f:", (float)curtime .ti_hour -12);

}

if((float)curtime.ti_minlt;10) printf("0");

printf(". 0f: ", (float)curtime.ti_min);

if ((float)curtime.ti_seclt; 10) printf("0");

printf(".0f" , ( float)curtime.ti_sec);

/*Las siguientes tres líneas calculan el ángulo de rotación de la manecilla del reloj, comenzando desde la vertical hacia arriba, y en el sentido de las agujas del reloj es positivo*/

th_sec=( float )curtime.ti_sec*0.1047197551; /*2π/60=0.1047197551*/

th_min=(float)curtime.ti_min*0.1047197551 th_sec/60.0; curtime .ti_hour*0.523598775 th_min/12.0; /* 2π/12=0.5235987755 */

DrawHand(x0, y0, th_hour, 70, 2) /*Dibujar manecilla de hora*/

<); p> DrawHand(x0, y0, th_min, 110, 3); /*Minuto mano*/

DrawHand(x0, y0, th_sec, 140, 12); >

sleep(1); /*Actualizar después de un segundo de retraso*/

cleardevice();

}

closegraph();

}