• 0
المـقـدام

الكود غير منطقي

سؤال

#include<iostream>#include<conio.h>using namespace std;class time{	int hours,minutes,seconds;public:	time():hours(0),minutes(0),seconds(0){}	time(int h,int m,int s)	{		hours=h;		minutes=m;		seconds=s;		if(seconds>=60)		{			seconds=0;			minutes++;			if(minutes>=60)			{				hours++;				if(hours>=24)					hours=0;			}		}	}	void display()const	{		cout<<hours<<":"<<minutes<<":"<<seconds<<endl;	}	time operator + (time t)const	{		int s,m=0,h=0;		s=seconds+t.seconds;		if(s>=60)		{			s-=60;			m++;		}		m+=minutes+t.minutes;		if(m>=60)		{			m-=60;			h++;		}		h+=hours+t.hours;						return time(h,m,s);	}	time operator ++ (int)	{		return time(hours,minutes,seconds++);	}	time operator ++ ()	{		return time(hours,minutes,++seconds);	}	time operator -- (int)	{		return time(hours,minutes,seconds--);	}	time operator -- ()	{		return time(hours,minutes,--seconds);	}};///////////////////int main(){	time t1(4,6,59),t2(9,23,56);	time t3;	t3=t1+t2;	t3.display();	t3=t1++;	t3.display();	t3=++t1;	t3.display();	for(int j=0;j<72;j++)	{		t3=--t1;		t3.display();	}	_getch();	return 0;}

السؤال هو كيف عند عملية decrement تعرف في المرة الاولى الحد ينتهي عند الصفر 

 

وأنا لم أضع شرط 

تم تعديل بواسطه المـقـدام
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

5 إجابة على هذا السؤال .

  • 0

السؤال غير واضح والعنوان به مشكلة يرجى التعديل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يظهر الناتج بهذه الطريقة

13:30:55

4:6:59

4:7:0

4:7:0

4:6:59

إلخ.............

 

كيف استطاعت الثواني أن ترجع إلى 59 بدون شرط لماذا لا تكمل بحيث يكون -1 و -2

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

إضافة صغيره: أغلب الفئات التى تتعامل مع الوقت لا تقوم بحفظ الوقت بهذا الشكل حيث ان هذه الطريقه صعبه و طويلة، و لكنها تقوم بحفظ إجمالي الثواني أو إجمالي المللي ثانية و العمليات الحسابية تتم على ذلك الإجمالي و عندما تريد الحصول على عدد الساعات و الدقائق و الثواني يتم تقسيم الإجمالي للحصول عليهم.

 

بهذه الطريقه تكون العمليات الحسابية سريعه و يسيرة و ايضا عملية الحصول على أجزاء الوقت بسيطه و محدده فى مكان واحد.

 

 

و الله ولي التوفيق

تم تعديل بواسطه C++er
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا أدري ماذا يقصد السائل ..

جربت البرنامج عندي وهذا هو الخرج

13:30:554:6:594:7:04:7:04:6:594:6:584:6:574:6:564:6:554:6:544:6:534:6:524:6:514:6:504:6:494:6:484:6:474:6:464:6:454:6:444:6:434:6:424:6:414:6:404:6:394:6:384:6:374:6:364:6:354:6:344:6:334:6:324:6:314:6:304:6:294:6:284:6:274:6:264:6:254:6:244:6:234:6:224:6:214:6:204:6:194:6:184:6:174:6:164:6:154:6:144:6:134:6:124:6:114:6:104:6:94:6:84:6:74:6:64:6:54:6:44:6:34:6:24:6:14:6:04:6:-14:6:-24:6:-34:6:-44:6:-54:6:-64:6:-74:6:-84:6:-94:6:-104:6:-11 

الأعداد سالبة بشكل طبيعي

 

فهل يمكنك شرح الحالة أكثر ؟ ما الـcompiler المستخدم

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يا أخي  الفاضل   هناك  قيم  سالبة  في  الناتج

 

4:6:-11

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .