Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Alternativa a delay?
Forum - Pascal - Alternativa a delay?

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
È poco affidabile, e me ne sono reso conto facendo girare un programma sul pc della scuola..ma in alternativa c'è qualche altra procedura??

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 22:32
Venerdì, 02/04/2010
Certamente!

E' possibile richiedere l' ora locale al bios del computer.

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 23:21
Venerdì, 02/04/2010
Testo quotato

Postato originariamente da Giarados:

È poco affidabile, e me ne sono reso conto facendo girare un programma sul pc della scuola..ma in alternativa c'è qualche altra procedura??



per fare cosa?

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 0:06
Sabato, 03/04/2010
Testo quotato

Postato originariamente da TheKaneB:

Testo quotato

Postato originariamente da Giarados:

È poco affidabile, e me ne sono reso conto facendo girare un programma sul pc della scuola..ma in alternativa c'è qualche altra procedura??



per fare cosa?



Per far tutto :D..dalla durata di un suono all'attesa prima di un randomize all'attesa per far comparire un certo testo.

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 12:56
Sabato, 03/04/2010
ho buttato giù queste poche riga di codice:

Codice sorgente - presumibilmente Delphi

  1. program ritardatore;
  2.  
  3. uses dos;
  4.  
  5. var
  6.         h,m,s,s100:word;
  7.         attesa:integer;
  8.         appoggio:integer;
  9.         i:integer;
  10.  
  11. begin
  12.  
  13. write('Secondi da attendere: '); readln(attesa);
  14. gettime(h,m,s,s100);
  15. appoggio:=s;
  16. i:=0;
  17.  
  18.  
  19. repeat
  20. gettime(h,m,s,s100);
  21.  
  22. if s=appoggio+1 then
  23. begin
  24. i:=i+1;
  25. appoggio:=s;
  26. end;
  27.  
  28. until attesa=i;
  29.  
  30.  
  31. writeln('Sono passati: ',i,' secondi');
  32. end.



non riesco ad adattarlo ai centesimi di secondo :(

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 13:29
Sabato, 03/04/2010
Ciao!

Ho letto il tuo programma, e a mio avviso, potresti crearti due funzioni separate:

La prima calcola i secondi dalla mezzanotte, mentre la seconda attende per un tempo prestabilito.

Ecco un esempio:
Codice sorgente - presumibilmente Delphi

  1. program ritardatore;
  2. uses dos;
  3.  
  4. var attesa,t0:real;
  5.  
  6. function tempo:real;
  7. var h,m,s,s100:word;
  8. begin
  9.  GetTime(h, m, s, s100);
  10.  tempo:=3600*(h+0.0) + 60*m + s + 0.01*s100;
  11.  { ho messo "(h+0.0)" per un problema di overflow }
  12. end;
  13.  
  14. procedure pausa(t:real);
  15. var t0:real;
  16. begin
  17.  t0:=tempo;
  18.  while tempo-t0<t do; { attesa per un tempo predefinito }
  19. end;
  20.  
  21. begin
  22.  write('Secondi da attendere: ');
  23.  readln(attesa);
  24.  t0:=tempo;
  25.  pausa(attesa);
  26.  writeln('Sono passati: ',tempo-t0:6:3,' secondi');
  27.  readln;
  28. end.


Attenzione! Il programma non funziona al cambio di data.

PM Quote