編程等待時間
⑴ 怎樣用C++使函數等待一段時間
sleep(n);
其中n是毫秒數,sleep(1000)就是等待1秒鍾。
⑵ C語言編程中的延時
如果你指的是嵌入式方面的,這樣的延遲是有作用的,也是一種非精確計時器的一個實現方法。
我以12M的晶振為例,給你講一下:
12M的晶振的機器周期是1/12M*12,就是1us
不同的單片機執行語句的機器周期也不一定一樣(比如:Atmel 51系列及大多數51的一個機器周期是12個時鍾周期,華邦的只需要4個時鍾周期)。不過大體來說,一條for循環大概8個機器周期,在12M晶振下,通常用以下代碼實現1ms的延時:
void delayms(unsigned int ms)
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
大概算一下,120*8*1us=1ms,如果需要精確的定時,還是得用基於Tick定時器。
如果是
void delay(int d)
{
for(; d; --d);
}
d=1000的話,
那麼
大概算一下,1000*8*1us=8ms
所以,這可以實現一個大體8ms的延遲
⑶ 學習編程需要多長時間請求高手指點.
我想你應該是學習c++,java等高級語言
以我的個人經驗
從零學起應該可以在兩個月內學會編寫簡單的程序
繼續提高的話,因為涉及的內容很多,所以學習的難度會增大,學習進度自然也就慢了
但在五個月內可以達到中級程序員資格
⑷ 用C語言編程如何計算延時時間
那樣子你的調用系統的API來獲得調用此函數之前的系統時間,還有調用此函數返回之後的系統時間進行比較。
#include <windows.h>
#include <stdio.h>
voidmain()
{
SYSTEMTIME sys;
GetLocalTime( &sys );
int start=sys.wMilliseconds;//獲取開始時的毫秒數
//下面調用你的函數
delay(uint型變數);//這裡面的參數你必須自己看著辦
GetLocalTime( &sys );
int end=sys.wMilliseconds;//獲取調用delay函數之後的秒數
printf("調用delay函數消耗了%d毫秒!\n",end-start);
printf("注意:此程序只能處理1秒以內的延遲毫秒數!");
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=125;y>0;y--);
}
⑸ 每個人的服務時間存放在數組a中,編程求出其最短平均等待時間,a和n已定義,只需編程求最短等待時間段
#include<stdio.h>#include<stdlib.h>static int a[100], A, N;int f(int x){ int i, flag, max=0; for(i=0; i<A; i++) if(a[i]>=max) {max=a[i]; flag = i;} a[flag] = -1; if(x==1) return max; return max+f(x-1);}int main() { int i=0; A=10; N=3; srand(time(0)); for(i=0; i<A; i++) printf("%d ", a[i]=rand()%100); printf("\n%d", f(N));}
⑹ 如何讓程序等待
這個 需要利用串口中斷 假設說 中斷標志位 為 TI 接收緩存為sbuf 。。。。。。 void main() { 。。。。。 while((TI!=1)||((data=sbuf)!=0x10) ; //直到等到 有串口中斷 且接收位10h 才繼續執行
⑺ 如何讓C語言sleep()函數等待時間小於1秒
sleep()函數大概只能精確到50ms左右,你用sleep(10)是肯定不行的,如果你要精確的定時的話可以使用QueryPerformanceFrequency()函數,用法為:
LARGE_INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(&litmp);
dfFreq = (double)litmp.QuadPart;// 獲得計數器的時鍾頻率
QueryPerformanceCounter(&litmp);
QPart1 = litmp.QuadPart;// 獲得初始值
do
{
QueryPerformanceCounter(&litmp);
QPart2 = litmp.QuadPart;//獲得中止值
dfMinus = (double)(QPart2-QPart1);
dfTim = dfMinus / dfFreq;// 獲得對應的時間值,單位為秒
}while(dfTim<0.001);
其定時誤差不超過1微秒,精度與CPU等機器配置有關。
×××××××××××××××××××××××××
sleep()函數的中等待時間是以毫秒計算的,所以等待1秒就是sleep(1000),如果要讓等待時間小於一秒,那麼就讓傳入的參數小於1000就行了.
比如,等待0.1秒:
sleep(100);
⑻ 學編程需要多長時間
我自己是C、C++程序員,切身感受語法很簡單,幾個月就行了,而且如果你掌握了一種語言,其他的就很簡單了,但是編程主要是通過語言表達你解決問題的方法,語言僅僅是工具,演算法才是精髓,僅僅掌握語言這個工具,也不行。對於演算法,依個人資質不同而有難易之分,比如你有可能會適合面向過程,也有可能會適合面向對象,雖然面向對象是主流,但是面向過程在工控、嵌入式、科學計算等領域還是很實用的,看你自己的情況了~ 北大青鳥我聽說過,學費可能是4W吧,貌似分三期,大約2年左右,具體的我也不了解,還要你去面議的~~ 不過祝你成功,只要堅持,沒有什麼困難不能克服~! 另外說一句,不需要都學完,普遍了解,重點攻關,要精通一種,熟知每一種,因為重要的是演算法思想。 關於演算法,可以看看圖論、演算法設計與分析、操作系統等,裡面有很多解決問題的典型方法,還有數據結構,它會給你提供很多解決問題的工具與途徑。 暫時就想起來這么多了,嘿嘿~!
⑼ Excel中VB編程如何實現延時等待
MsgBoxEx函數能滿足你的要求,把Debug.Print 改成你想執行的語句即可
wType參數改成可以提示輸入VBA的vbMsgboxStyle常數。
這個API函數的參數如下:
hwnd:窗口句柄,可以設為0
lpText:消息框顯示內容,類似於MsgBox函數的第一個參數Prompt
lpCaption:消息框標題,類似於MsgBox函數的第三個參數Caption
wType:消息框類型,類似於MsgBox函數的第二個參數Buttons
wlange:不是太明白這個參數,0或者1都看不出什麼差別
dwTimeout:延時時間,單位是毫秒
返回的值和vbMsgBoxResult常數一樣,多了一個返回值32000表示超過延時時間未選擇任何按鈕。
Private Declare Function MsgBoxEx Lib "user32" Alias "MessageBoxTimeoutA" ( _
ByVal hwnd As Long, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal wType As VbMsgBoxStyle, _
ByVal wlange As Long, _
ByVal dwTimeout As Long) As Long『函數聲明
Private Sub TestMsgboxEx()』使用
Dim ret As Long
ret = MsgBoxEx(0, "要終止此程序么", "60秒後自動關閉", vbYesNo + vbInformation, 1, 60000)
If ret = 32000 Or ret = vbYes Then End
End Sub
⑽ 在verilog語言編程中,我想設置等待時間比如:1ms什麼的該怎麼設置
首先要在所有代碼的最上面定義時間標度:
`timescale 1ms
然後你如果要讓某個操作在1ms後實現就可以用下面的語句:
#1 C=a[1];
過了1ms的等待時間之後,埠a[1]的值就會賦給C