[ Foro de Pascal ]

duda en programar una alarma

19-Dec-2015 21:03
Invitado (RAFADURAN)
3 Respuestas

buenas luis estuve mirando el codigo que desarrollaste en el link
me pueden ayudar con este codigo??? - reloj

sin embargo al ejecutarlo no entendi na, pues no se exactamente a que se refiere el procedimiento cambiar_de__hora y programar_alarma, es que no entiendo como seria la ejecucion del mismo si puedieras explicarmelo un poco mejor de que es lo que desarrolaste y como debo ejecutarlo, porque pienso que deberia primero mostrarse el reloj con la hora del sistema y luego definir el procedimiento programar_alarma, no se porque entonces esta en este codigo el procedimiento cambio _de_hora, podrias ayudarme con ello a mejorarlo un poco mas a la realidad, te lo agradezco inmensamente luis


23-Dec-2015 21:28
Nacho Cabanes (+84)

Imagino que te refieres a este hilo:

http://www.aprendeaprogramar.com/mod/forum/discuss.php?d=1884

En ese hilo hay varias versiones del programa. ¿Te refieres a la última, de Luis Torres, o a la primera, de Luis Cisneros?


24-Dec-2015 04:33
Invitado (RAFADURAN)

BUENAS NOCHES
ME REFIERO A LA DE LUIS TORRES, GRACIAS POR RESPONDER.


27-Dec-2015 00:44
Nacho Cabanes (+84)

Este es el programa del que hablabas:


program reloj; 
uses 
 crt,dos; 
var 
 hrs,min,seg,h,m,hs,mm  :integer; 
 opcion               :char; 
procedure cambio_de_hora; 
begin 
 writeln('Cambiar hora'); 
 readln(h); 
 hrs:=h; 
 writeln('Cambiar minutos'); 
 readln(m); 
 min:=m; 
 seg:=seg; 
end; 

procedure programar_alarma; 
begin 
 write('¨A que hora desea progrmar la alarma?'); 
 writeln; 
 read(hs); 
 write(':'); 
 read(m); 
end; 

procedure sonido; 
begin 
 if (hrs=hs) and (m=min) 
  then 
   begin 
    repeat 
     sound(1000); 
    until keypressed;
   nosound;
   end; 
end; 

procedure relojs; 
begin 
seg:=seg; 
repeat 
       gotoxy(18,19); 
       writeln('°°°°°°°°°°°°°'); 
       gotoxy(18,20); 
       writeln('°'); 
       gotoxy(18,21); 
       writeln('°°°°°°°°°°°°°'); 
       gotoxy(30,20); 
       writeln('°'); 
gotoxy(20,20); 
writeln(hrs,' : ',min,' : ',seg); 
seg:=seg+1; 
delay(1000); 
if seg=60 then 
begin 
seg:=0; 
min:=min+1; 
end; 
if min=60 then 
begin 
min:=0; 
hrs:=hrs+1 
end; 
if hrs=24 then 
  hrs:=0;
sonido; 
until keypressed; 
end; 

begin 
repeat 
  clrscr; 
  writeln('1.-Ajustar reloj'); 
  writeln('2.-Programar alarma'); 
  writeln('3.-Salir del programa'); 
  opcion :=readkey; 
  case opcion of 
  '1': 
    begin 
     cambio_de_hora; 
    end; 
  '2': 
    begin 
    programar_alarma; 
    sonido; 
    end; 
  end; 
   relojs; 
  until opcion='3'; 
end. 


 
"cambiar_hora" cambia la hora actual del reloj (pidiendo al usuario la hora y minutos actuales), mientras que "programar_alarma" cambia la hora (y minutos) en los que debería sonar la alarma.

Sobre los otros dos procedimientos, "relojs" muestra el reloj en pantalla y lo actualiza, y "sonidos" hace sonar la alarma si el instante actual coincide con el de la alarma.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)