الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

بدأه المـقـدام في 28 مارس 2014 · 5 رد · 815 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
#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 تعرف في المرة الاولى الحد ينتهي عند الصفر 

 

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

تم تعديل هذه المشاركة بواسطة المـقـدام في 28 مارس 2014 في 22:34

 إن المعلم والطبيب كلاهمــــا ... لا ينصحـان إذا همـا لم يكرمـا 


فاصبر لدائـك إن أهنت طبيبه ... واصبــر لجهلك إن جفوت معلما

#2

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

#3

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

13:30:55

4:6:59

4:7:0

4:7:0

4:6:59

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

 

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

 إن المعلم والطبيب كلاهمــــا ... لا ينصحـان إذا همـا لم يكرمـا 


فاصبر لدائـك إن أهنت طبيبه ... واصبــر لجهلك إن جفوت معلما

#4

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

 

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

 

 

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

تم تعديل هذه المشاركة بواسطة C++er في 28 مارس 2014 في 23:40

1

مدونتي: C++ Tips and Tricks

#5

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

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

13:30:55
4:6:59
4:7:0
4:7:0
4:6:59
4:6:58
4:6:57
4:6:56
4:6:55
4:6:54
4:6:53
4:6:52
4:6:51
4:6:50
4:6:49
4:6:48
4:6:47
4:6:46
4:6:45
4:6:44
4:6:43
4:6:42
4:6:41
4:6:40
4:6:39
4:6:38
4:6:37
4:6:36
4:6:35
4:6:34
4:6:33
4:6:32
4:6:31
4:6:30
4:6:29
4:6:28
4:6:27
4:6:26
4:6:25
4:6:24
4:6:23
4:6:22
4:6:21
4:6:20
4:6:19
4:6:18
4:6:17
4:6:16
4:6:15
4:6:14
4:6:13
4:6:12
4:6:11
4:6:10
4:6:9
4:6:8
4:6:7
4:6:6
4:6:5
4:6:4
4:6:3
4:6:2
4:6:1
4:6:0
4:6:-1
4:6:-2
4:6:-3
4:6:-4
4:6:-5
4:6:-6
4:6:-7
4:6:-8
4:6:-9
4:6:-10
4:6:-11

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

 

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

1
#6

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

 

4:6:-11

للإطلاع  على جديد  الكتب من تأليفي


 


الطريق لاحتراف تطوير المواقع   ج1 | ج2 | ج3 | ج4


 


                    4Colors | Break Out | Classic Snake | لعبة السودوكو - 2014  |  لعبة  XO                      


 


Help Dodo


 


^_^


 

مواضيع مشابهة