| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 911 人关注过本帖
标题:我也不知道这个问题该怎么描述,路过的近来看看
只看楼主 加入收藏
qianne
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2004-7-30
收藏
 问题点数:0 回复次数:7 
我也不知道这个问题该怎么描述,路过的近来看看

我也不知道这个问题该怎么描述,有点像操作系统的任务

假如我有一个数组,希望数组里的每个成员各自记数(也可以说计时吧),然后时间到了设定的数,就对该成员进行相应的操作

不知道怎么实现记数(计时)还望知道的指点一二,在下先谢谢了

搜索更多相关主题的帖子: 描述 
2004-07-30 20:52
rabbit5455
Rank: 2
等 级:论坛游民
帖 子:123
专家分:25
注 册:2004-4-14
收藏
得分:0 

记时 一般 用 记时器

或者 是 中断。


Member Of Qingfeng Studio 王旭华[http://][http://hi.baidu.com/rabbit5455]
2004-08-04 20:56
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

哈哈,我10天前好象编写过这样的破程序,想想当初是因为不会中断才写的(现在还是没清楚,自卑中....)

友情提示:你可以用time.h库中的double difftime(time_t time_1,time_t time2); 作用,计算两个时间差~~

还有一个更加烂的方法:就是用循环:

void fun() { static int sign=0; /*循环记数标志*/ sign++; if(sign>60) sign=0; if(sign<=30){程序块1} else{程序块2} }

用sign做标记,当sign<=30的时候,执行程序块1;如果>30就执行程序块2;最后当sign到达设置的上限60后,自动清0

怎么样?够烂的吧


淘宝杜琨
2004-08-04 22:50
chengstone
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
帖 子:562
专家分:226
注 册:2004-4-3
收藏
得分:0 
记时器大都用中断

qq:69558139
2004-08-05 18:58
econoy
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2004-8-10
收藏
得分:0 

用中断吧。时钟中断号为0x1c,简单写一个例子,写完睡觉。

#include<stdio.h> #include<graphics.h> #include<dos.h>

int time=5,i;

void interrupt (*oldhandle)(); /*旧的中断*/ void stopisr() /*返回到旧的中断处理程序,不要忘记这步工作!*/ { setvect(0x1c,oldhandle); } void interrupt myhandle() /*新的时钟中断处理程序*/ { disable(); i++; if(i>18) { time--; i=0; if(time==0) { circle(320,240,50); setfillstyle(1,RED); floodfill(320,240,WHITE); stopisr(); /*别忘了返回旧中断处理*/ } } enable(); } main() { int gd=DETECT,gm; initgraph(&gd,&gm,""); setbkcolor(BLUE); oldhandle=getvect(0x1c); /*保存旧中断*/ setvect(0x1c,myhandle); /*安装新中断*/ outtextxy(1,1,"5"); outtextxy(1,25,"The programme will draw a circle after five seconds."); outtextxy(300,400,"You can Press any key to quit."); while(!kbhit()) { switch(time) { case 4:outtextxy(10,2,"4");break; case 3:outtextxy(20,2,"3");break; case 2:outtextxy(30,2,"2");break; case 1:outtextxy(40,2,"1");break; case 0:outtextxy(50,2,"0");break; } } stopisr();/* :o) */ }

写完检查一遍发现不妥,又在最后加了一句stopisr(),唉。

2004-08-13 03:21
小小虫子
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2004-8-13
收藏
得分:0 
有点不妥啊  编译不了

瞎说的 说错了请指教.... ================================= 我想吃叶子 我要努力!!!!!
2004-08-13 10:25
econoy
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2004-8-10
收藏
得分:0 
  tc2编译,你把错误贴上来研究一下。
2004-08-13 12:40
econoy
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2004-8-10
收藏
得分:0 

static time=5,i=0;

hoho,忘了给i 赋值了,不应该。

2004-08-14 12:43
快速回复:我也不知道这个问题该怎么描述,路过的近来看看
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020099 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved