【Delay】不使用CRT进行Dealy
pascal吧
全部回复
仅看楼主
level 11
这个...说来惭愧,楼主div和mod搞反了,以至于预期上个星期完成的延迟到了这个星期...
好,那现在就公开源码吧(P.S.:我公开的是程序代码,要改成过程的自己改吧= =)
program Delay_MAYBE;
uses dos;
var
a,b,c,d:word;
q,w,e,r:word;
a1,b1,c1,d1:word;
di1,di2,di3,di4:longint;
time:integer;
Vco,Vco2:longint;
begin
readln(time);
gettime(a,b,c,d);
di1:=time mod 100;
d1:=(d+di1)mod 100;
di2:=time div 100;
Vco:=((d+di1)div 100)+c+di2;
c1:=Vco mod 60;
di2:=((di1+d)div 100)+di2;
Vco2:=((c+di2)div 60)+b;
b1:=Vco2 mod 60;
a1:=(a+(Vco2 div 60))mod 24;
repeat
gettime(q,w,e,r);
until(q>=a1)and(w>=b1)and(e>=c1)and(r>=d1);
end.
2015年11月15日 02点11分 1
level 11
这个算法应该算效率比较高的,而且精度应该比crt的delay要高一些——毕竟是调用时间来判断的嘛![呵呵]
2015年11月15日 02点11分 2
gettime太不精确了。。
2015年11月16日 05点11分
@ax_pokl 没错没错,这的确灰常不精确[滑稽]
2017年02月21日 04点02分
2017年05月14日 01点05分
level 2
好牛逼的样子
2015年11月16日 06点11分 5
机器人
2017年02月17日 08点02分
level 11
原创函数啊...
2016年05月29日 02点05分 6
level 7
呵呵 似乎挺有用 但是......
2016年06月01日 00点06分 7
level 11
过来看一眼,原来我大P吧已经被SB达学院占领了[滑稽][冷]
2016年07月01日 05点07分 8
呵呵
2016年07月02日 03点07分

2016年07月02日 03点07分
过来看一眼,感觉P吧要废了...
2016年07月03日 05点07分
level 1
Windows 下直接用 Randomize ,然后 RandSeed 的值就是 GetTickCount() 的返回值。
其他系统下调用 Randomize 后 RandSeed 的值也是和时间相关的某个值,具体可以看下 FPC 的源代码。
2016年07月05日 06点07分 9
1