بسم الله الرحمن الرحيم
السلام عليكم
أضع بين يديكم مكتبة بسيطة ولكنها مفيدة ..
sometime.h
#include<time.h>
#include<iostream.h>
//////////////////***////////////////////////
////Some Time . h////////////////////////////////
///////////////By Mostafa 36a2////////////////
/////////////Thanks For GOD////////////////
////to do nothing for x seconds//////////////
void st(double second=1)
{cout.flush();
clock_t t1=clock();
clock_t t2=clock();
while(t2-t1<second*1000){t2=clock();}
}
/////////////**/////////////////////////////
/////counter////////////////////////////////
/////start counting from the first calling//
/////and return the milliseconds counted ///
/////for the second or third or ....calling/
long counter(bool a=0)
{cout.flush();
static int x=0;
static clock_t t1;
if (a==1)x=0;
if(x==0)t1=clock();
if(x>0){clock_t t2=clock();return (t2-t1);}
x++;
return t1;
}شرح دوال المكتبة ..
لدينا دالتان الأولى st (اختصار لكلمة some time)تعمل نفس عمل الدالة Sleep في مكتبة windows وهي تقوم بترك فاصل زمني عند استدعائها وتأخذ الفاصل الزمني على شكل وسيط ( يعبر عن الثواني )
اما الدالة الثانية (هامة ويمكن استعمالها في كثير من التطبيقات )
counter() عملها واضح من اسمها انها دالة تقوم بعد الثواني بين الاستدعاء الأول والاستدعاءات التالية ... ويمكن تصفير العداد عن طريق اعطاء الرقم 1 كوسيط
//////////////////////
طريقة الاستعمال ...
عندما نريد للتطبيق أن ينتظر بين عمليتين لعدد من الثواني x نقوم باستدعاء الدالة st ونضع x وسيط ... ويمكن أن نضع مثلاً 3 (3 ثواني ) أو 0.5 نصف ثانية وهكذا
وأهميتها تكمن عندما نستدعي حلقة غير منتهية او يكون التطبيق سريعاً ونحتاج إلى إبطائه للمتابعة
أما العداد ... عندما نريد أن نبدأ العد نستدعي الدالة counter بدون وسطاء أو بالوسيط 0
عندما نريد أن نعرض إلى أين وصل العداد ببساطة ..
cout<<counter();
وإذا أردنا أن نصفر العداد نضع الوسيط 1 ...
وإليكم أحد التطبيقات البسيطة
#include<iostream.h>
#include<sometime.h>
#include<conio.h>
#include<windows.h>
int m=1;
void main()
{
cout<<"Press any key to Start Counting\n"
<<"When You Wonna Stop Press Any key\n"
<<flush;
getch();
cout<<"\nCounting\n .";
counter();
getch();
cout<<"\r\t\t\t\t";
m=0;
cout<<"\nTime Is :"<<float(counter()/1000)<<"seconds and "<<counter()%1000<<" ms\n"<<flush;
system("pause");
}البرنامج السابق يقوم بالعد بين ضغطتين على الكيبورد ...ويعطي الزمن بدقة ..
أرجو ان يكون الموضوع مفيداً ... والسلام عليكم ورحمة الله وبركاته