如何知道pascal程序的运行时间
我参照的是http://zhidao.baidu.com/question/38349705.html的方法但是输入同一个数据两次的运行时间不一样?而且好像时间也没那么久...
我参照的是http://zhidao.baidu.com/question/38349705.html 的方法 但是输入同一个数据 两次的运行时间不一样?而且 好像时间也没那么久(3s+)? 我感觉一输进去结果就出来了
求高手测试下 是我操作有误还是这个方法不行?
附测试用的一个小程序
program friend;
uses sysutils;
var t:double;
n,i,j,c:longint;
p:boolean;
begin
t:=now;
read(n);
for i:=1 to n do
begin
p:=false;
for j:=2 to trunc(sqrt(i)) do
begin
if i mod j=0 then
begin
p:=true;
break;
end;
end;
if p=true then inc(c);
end;
writeln(c+1);
t:=(now-t)*86400;
write(t:0:2);
end. 展开
求高手测试下 是我操作有误还是这个方法不行?
附测试用的一个小程序
program friend;
uses sysutils;
var t:double;
n,i,j,c:longint;
p:boolean;
begin
t:=now;
read(n);
for i:=1 to n do
begin
p:=false;
for j:=2 to trunc(sqrt(i)) do
begin
if i mod j=0 then
begin
p:=true;
break;
end;
end;
if p=true then inc(c);
end;
writeln(c+1);
t:=(now-t)*86400;
write(t:0:2);
end. 展开
2个回答
展开全部
用dos中的gettime函数
比如说:
uses dos;{打在开头}
……
……{你的程序}
……
gettime(a1,b1,c1,d1);{要写在输入之后。。。如果是文件输入的话就可以输在前面}
……
……{你的程序}
……
gettime(a2,b2,c2,d2);
writeln((a2-a1)*3600000+(b2-b1)*60000+(c2-c1)*1000+(d2-d1)*10,'ms');{此时输出的就是你程序运行的时间了,单位为毫秒。。。a1,a2,b1,b2,c1,c2,d1,d2都是word型的}
比如说:
uses dos;{打在开头}
……
……{你的程序}
……
gettime(a1,b1,c1,d1);{要写在输入之后。。。如果是文件输入的话就可以输在前面}
……
……{你的程序}
……
gettime(a2,b2,c2,d2);
writeln((a2-a1)*3600000+(b2-b1)*60000+(c2-c1)*1000+(d2-d1)*10,'ms');{此时输出的就是你程序运行的时间了,单位为毫秒。。。a1,a2,b1,b2,c1,c2,d1,d2都是word型的}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询