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

نتائج غريبة في التعامل مع العمليات الحسابية

بدأه Eng_Gaza في 7 نوفمبر 2008 · 8 رد · 1,043 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أخواني بعد تجربة هالكود ظهرت عندي نتائج غريبة ، أرجوا منكم التعليق والتوضيح .

#include<iostream>
using namespace std;
int main()
{

	int x = -1;
	cout <<"x = " << x<<endl;
	x =  10 % x-- +5;
	cout <<"1'st Exprition x = " <<x<<endl;

	x = 1;
	cout <<"x = " << x<<endl;
	x =  10 % x-- +5;
	cout <<"2'st Exprition x = "<<x<<endl<<endl<<endl;

	system ("pause");
	return 0;
}

نفذت نفس العملية مرة على X تساوي -1 المرة الثانية وهي تساوي 1 ، والناتج نفس الشيء !!!

 


x = -1
1'st Exprition x = 4
x = 1
2'st Exprition x = 4

Press any key to continue . . .

************************

الكود الثاني :

#include<iostream>
using namespace std;
int main()
{

	int x = 1;
	cout <<"x = " << x<<endl;
	x =  10 % x-- +5;
	cout <<"1'st Exprition x = " <<x<<endl;

	x = 1;
	cout <<"x = " << x<<endl;
	x =  10 % x--;
	cout <<"2'st Exprition x = "<<x<<endl<<endl<<endl;

	system ("pause");
	return 0;
}

هلحين X نفس القيمة 1 ، لكن في المرة الأولى جمعت 5 والمرة الثانية ما جمعت الخمسة ، النتيجة كالتالي :

 

x = 1
1'st Exprition x = 4
x = 1
2'st Exprition x = 0


Press any key to continue . . .

أرجو التوضيح والتعليق

تحياتي

ENG-GAZA.GIF
#2

طيب وين المشكله؟

البرنامج سليم 100%

  x =  10 % x-- +5;

أنت سويت باقي قسمة 10 على 1 أو حتى -1 والنتيجه 0 وبعدين نقصتها واحد فأصبحت 1- وبعدها جمعتها بخمسه والسالب مع الموجب تنقص السالب من الموجب وتاخذ إشارة الكبير فأصبحت 4 <== مايذكرك بدروس الرياضيات حق صف ثالث؟ :)

في أمان الله

تم تعديل هذه المشاركة بواسطة M.Allaw في 8 نوفمبر 2008 في 00:23


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#3
M.Allaw كتب:
طيب وين المشكله؟

البرنامج سليم 100%

  x =  10 % x-- +5;

أنت سويت باقي قسمة 10 على 1 أو حتى -1 والنتيجه 0 وبعدين نقصتها واحد فأصبحت 1- وبعدها جمعتها بخمسه والسالب مع الموجب تنقص السالب من الموجب وتاخذ إشارة الكبير فأصبحت 4 <== مايذكرك بدروس الرياضيات حق صف ثالث؟ :)

في أمان الله

اهلين عزيزي

معليش هينا بنراجع دروس صف تالت سوا :)

المهم في ضايل مشكلة بآخر جزئية من الكود

x = 1;
	cout <<"x = " << x<<endl;
	x =  10 % x--;
	cout <<"2'st Exprition x = "<<x<<endl<<endl<<endl;

هلحين ناتج القسمة صفر ، بس ما نقص واحد ، صحيح ؟؟

بأسلوب تاني ، متى حينفذ الـ -- ومتى حيخزن القيمة على المتغير x

ENG-GAZA.GIF
#4
M.Allaw كتب:
طيب وين المشكله؟

البرنامج سليم 100%

  x =  10 % x-- +5;

أنت سويت باقي قسمة 10 على 1 أو حتى -1 والنتيجه 0 وبعدين نقصتها واحد فأصبحت 1- وبعدها جمعتها بخمسه والسالب مع الموجب تنقص السالب من الموجب وتاخذ إشارة الكبير فأصبحت 4 <== مايذكرك بدروس الرياضيات حق صف ثالث؟ :)

في أمان الله

بعد ما عملت عملية باقي القسمة ، بأنقص واحد من المتغير × ولا من ناتج العملية ؟؟؟؟

ENG-GAZA.GIF
#5

نحن لانسأل عن النتائج فيما اذا كانت سليمة او غير سليمة , بالتأكيد هي سليمة من وجهة نظر الحاسب والمطلوب منا هو فهم وجهة نظر الحاسب التي اخرجت العمليات بناء عليها .

الموضوع برمته يتحدث حول العملية (++)

انظر اخي لهذا الكود لعله يوضح لك آلية عمل هذه العملية :

#include <iostream>
using namespace std;
int main()
{
   int c;					 // declare variable
   // demonstrate postincrement
   c = 5;					 // assign 5 to c
   cout << c << endl;		 // print 5
   cout << c++ << endl;	   // print 5 then postincrement
   cout << c << endl << endl; // print 6
   return 0;   

}

اقتباس
أنت سويت باقي قسمة 10 على 1 أو حتى -1 والنتيجه 0 وبعدين نقصتها واحد فأصبحت 1- وبعدها جمعتها بخمسه والسالب مع الموجب تنقص السالب من الموجب وتاخذ إشارة الكبير فأصبحت 4 <== مايذكرك بدروس الرياضيات حق صف ثالث؟

؟ :huh:

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#6

السلام عليكم ورحمة الله وبركاته...

Eng_Gaza كتب:
بعد ما عملت عملية باقي القسمة ، بأنقص واحد من المتغير × ولا من ناتج العملية ؟؟؟؟

بل من ناتج العملية...

أتمنى أن أكون فد فدمت ما يفيد...

دمتم في حفظ الله ورعايته،،،

موقع كلية الحاسب الآلي ونظم المعلومات.

WWW.UQUCS.COM

#7
time1 كتب:
نحن لانسأل عن النتائج فيما اذا كانت سليمة او غير سليمة , بالتأكيد هي سليمة من وجهة نظر الحاسب والمطلوب منا هو فهم وجهة نظر الحاسب التي اخرجت العمليات بناء عليها .

الموضوع برمته يتحدث حول العملية (++)

انظر اخي لهذا الكود لعله يوضح لك آلية عمل هذه العملية :

#include <iostream>
 using namespace std;
 int main()
 {
	int c;					 // declare variable
	// demonstrate postincrement
	c = 5;					 // assign 5 to c
	cout << c << endl;		 // print 5
	cout << c++ << endl;	   // print 5 then postincrement
	cout << c << endl << endl; // print 6
	return 0;   

 }

؟ :huh:

اهلا حبيبي

بس حبيت أوصلها له بشكل رياضي لأنه كان مستغرب على الخرج:)


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#8

أهلين شباب ، مشكورين وماقصرتوا

العواجي كتب:
السلام عليكم ورحمة الله وبركاته...

بل من ناتج العملية...

أتمنى أن أكون فد فدمت ما يفيد...

دمتم في حفظ الله ورعايته،،،

الموضوع بالنسبة لـ ++ و الـ -- ماهو مشكلة بحد ذاته ، لكن كل علمي إنها بتأثر على قيمة المتغير اللي معها

اللي مستغرب منه إنها بتأثر على قيمة ناتج العملية

ENG-GAZA.GIF
#9

مرحبا اخي

عملية ++ و -- , تختلف على حسب موقعها سواء قبل المتغير او بعده , من خلال المثال التالي ستتضح الفكرة لديك ان شاء الله , طبعا المثال مزود بالتعليقات التي توضح كل خطوة ومالذي يحدث فيها .

int main()
{
   int c;					 // declare variable

   // demonstrate postincrement
   c = 5;					 // assign 5 to c
   cout << c << endl;		 // print 5
   cout << c++ << endl;	   // print 5 then postincrement
   cout << c << endl << endl; // print 6

   // demonstrate preincrement
   c = 5;					 // assign 5 to c
   cout << c << endl;		 // print 5
   cout << ++c << endl;	   // preincrement then print 6
   cout << c << endl;		 // print 6

   return 0;   // indicate successful termination

}
llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…