التفسير في نهاية الفيديو انه الكمبايلر بيشتغل من اليمين لليسار لما نحط الpre والpost داخل الcout رح يبلش بالبوست ويطبع قيمة x زيرو 0 ويخزنها في الذاكرة ون 1 بعدين يروح للبري ويزيد عقيمة x واحد فبتصير x بتساوي تو 2 وبطبعها 2 لذلك بيطلع الجواب 2 0
مزبوط .. ببعض الـ IDE رح يطلع معك الناتج 3 وبعض آخر مثل الـ Visual studio الي بستخدمو بالفيديوهات رح يطلع معك 2 المسألة جدلية لكن هاي من الحالات فينا نحكي بنحاول نبعد عنها .. مثلا هاي الحالة cout
السلام عليكم بالنسبة لفكرة x=2 x=0 هو ان الكومبايلر اول شي طالع القيمة الاساسية بالاكس اللي هي كانت صفر بعدين طلع كل عمليات الجمع اتوقع النتيجة بتختلف اذا حطيت كل وحدة ب cout منفصل
للاشخاص الذين لم تتضح عندهم الفكرة تابعو الفيديوهات رقم 25 و 26 و 27 من الرابط التالي ..... الفكرة مشروحة بطريقة مفصلة وواضحة ruclips.net/p/PLPn4eVPZKtrJt0JpuQaspWxA5mFOSfFah
السلام عليكم يا استاذ انا رح افسرلك ليش حسبها 2 0 وانشاء الله رح تعجبك : اولا البرنامج انت قلت انو يبدء العمل من اليمين لليسار هاذا يعني انو بدء ب ++× اولا وهذا رح يظهر 0 ويخزن بداخل x واحد، وبعدها راح لل x++ اضاف واحد لل x يعني اصبح ال 2=x وبعدها عرضو 2 هذا تفسيري ان اصبت فمن الله وان اخطئت فمن نفسي والشيطان وشكرا اخوك من الجزائر 😘😘😘🇩🇿🇩🇿
م @@AdelNasim ال y=++x+ ++x; ده the behavior is undefined يعني شئ غير منطقي في لغة سي بلس بلس .. وضد قوانين اللغة نفسها اذا قمت بتجربة المثال السابقة مع اكثر من compile مثل zapcc 5.0.0 GCC 9.1.0 هتجد ان كل compile بيعمل ناتج مختلف ببساطة ممنوع استخدام هذا الشئ في الكود لانه ضد قواعد اللغة نفسها لتفاصيل qr.ae/pNWu65
اخوي بدي اسألك .. لما يكون عندي زي هيك .. Int x=5 , y ; Y= x++ + ++x +++x + x++ يعني بنفس السطر عندي اكتر من وحده بوست واكتر من وحده بري ... بهيك حاله الكومبايلر كيف بشتغل ؟؟ يعني مين اله الاولويه ( ببلش فيه الكومبايلر ) البوست ولا البري ؟؟؟؟ وبما انه في تنتين بوست ( الهم نفس الاولويه ) بأي وحده ببدأ من اليمين ولا من اليسار بمشي فيهم ؟؟؟ مع العلم اني حاليا بشتغل على كومبايلر النت بينز للجافا
في هاي الحالة بضلو ماشي من الشمال لليمين y = x++ + ++x + ++x + x++; وبتكون الارقام على النحو الآتي y = 5 + 7 + 8 + 8 ولاحظ الـ 8 ما صارت 9 خلينا نغير بـ آخر x زي هالمثال: y= x++ + ++x + ++x + ++x; y = 5 + 7 + 8 + 9 والسبب انو اخر رقم كان 9 عشانها زيادة قبلية,بتمنى تكون وصلتك
@@AdelNasim اخوي انا هاد الحكي انه كل وحده كيف بتشتغل فاهمه تمام التمام ... بس انا سؤالي انه لما يكون في تنتين بوست (او بري ) يعني الهم نفس الاولويه ..كيف بمشي فيهم من اليمين لليسار ولا من ليسار لليمين ... يعني مثلا لو في * و قسمه .. فهدول الهم نفس الاولويه فبمشي بالاول على اللي جايه عاليسار بعدين للي عاليمين ... لكن عند وجود تنتين بوست ( او بري ) هدول الهم نفس الاولويه ..بيجي بالاول على اللي عاليمين ولا اللي على اليسار ؟؟؟؟ اما سؤالي التاني هو على مين بيجي بالاول الكومبايلر ..على البوست ولا على البري ...يعني من اولى من التانيه البوست ولا البري ... فهمت سؤاليني اخوي ؟؟؟
تمام في جدول رالرابط في كل الاوليات الي بتلزمك مع الاتجاهات www.quora.com/Which-has-higher-precedence-out-of-pre-and-post-increment-decrement-operators-in-C++
جزاك الله كل خبر مهندس، بصراحة انا تخصصي الدقيق رياضيات لكن حبيت ادخل بمجال البرمجة وكانت بداية مبشره جدا معك
ممكن اتواصل مع حضرتك ،عايزه أسألك عن كذا حاجه
ع كفكرة من احسن الناس يلي ممكن تتعلم برمجه هي أهل رياضيات و فيزياء لانو logic عندن عالي لهيك استمر و لا توقف
جزاك الله خير....شرحك مبسط وجميل جدا 💙
اجمعين يا رب .. كل الشكر لدعمك .. بالتوفيق الك.
التفسير في نهاية الفيديو انه الكمبايلر بيشتغل من اليمين لليسار لما نحط الpre والpost داخل الcout
رح يبلش بالبوست ويطبع قيمة x زيرو 0 ويخزنها في الذاكرة ون 1 بعدين يروح للبري ويزيد عقيمة x واحد فبتصير x بتساوي تو 2 وبطبعها 2
لذلك بيطلع الجواب 2 0
داخل ال cout ببلش الكومبايلر الطباعة من اليسار لليمين ف تفسيرك خاطء
خلصت الفيديو وكنت جاي اكتب مثل ما انت حكيت
امطرتنا الله يمطرك بكل خير.
شاكر اهتامك المتواصل اخي .. ❤
ابشرك شرحك وصل لالمانيا
13:20 الحل انك تضع end بينهم ورح يطلعها 1 1 الكومبايلر... بالتوفيق
الله يعطيك الف عافية حبيت مادة من شرحك
مشكور
الله يوفقك و يعطيك ألف عافية
ننتظر الجديد
انت رجولة و انا بحبك
تسلم يدك يا هندسه
اكثر من رائع مشكور
العفو .. وبالتوفيق ..
@@AdelNasim 🌹🌹
int x=0,y=0;
y= ++x+x++;
cout
اني هم اشتغل على نفس الموقع واعطاني قيمة ال3=x
فى الدقيقة 10:43 ازاى قيمة المتغير x بقي 2 مع اني بستخدمة فى العملية الحسابية فقط
شكرا لك أخي
شكراً جزيلاً ..
العفو .. وشكرا على المتابعة المستمرة ..
عفواً
شكراً جزيلاً
العفو ..
وبالتوفيق الك
14:00
بسيطة
int x = 0;
cout
طلع معي 3 قيمة ال y
int x=0,y=0;
y=++x+x++;
cout
شو نوع الـ
IDE
الي بتستخدمو ؟
@@AdelNasim Code::Blocks
مزبوط .. ببعض الـ
IDE
رح يطلع معك الناتج
3
وبعض آخر مثل الـ
Visual studio
الي بستخدمو بالفيديوهات رح يطلع معك
2
المسألة جدلية لكن هاي من الحالات فينا نحكي بنحاول نبعد عنها ..
مثلا هاي الحالة
cout
السلام عليكم
بالنسبة لفكرة
x=2
x=0
هو ان الكومبايلر اول شي طالع القيمة الاساسية بالاكس اللي هي كانت صفر
بعدين طلع كل عمليات الجمع
اتوقع النتيجة بتختلف اذا حطيت كل وحدة ب cout منفصل
وعليكم السلام ورحمة الله ..
يا ريت تزودني برقم الدقيقة .. او كود بالنسبة للسؤال عشان اجاوبك ادق ..
@@AdelNasim 11:24
Y=3
X=2 انا هيك طلع معي
انتا طلع معك y=2
X=2
بوركت
مشكور استاذ
مشكووور
الله يجزيك الخير أستاذي
عند الدقيقة 11:10 أنا كنت عم طبق معك طلعتلي الـ y بـ3 والـ x بـ2
شو التفسير وشكرا
like you.
انا كمان
++X ،، الي هي قيمتها ب1
وكده الX بقت بواحد
نجمعها بقى على
X++ ،، والي هي ب1 برضو لأنها قيمة الاكس الجديدة
كده الY ب2
والX كانت ب1 وبعد البلص بلص بقت 2
جزاك الله خيرا ❤️❤️
شكرا لك .
مبدع
روعة يباشا
افضل واحد ليشرح شي بلس بلس
للاشخاص الذين لم تتضح عندهم الفكرة تابعو الفيديوهات رقم 25 و 26 و 27 من الرابط التالي ..... الفكرة مشروحة بطريقة مفصلة وواضحة
ruclips.net/p/PLPn4eVPZKtrJt0JpuQaspWxA5mFOSfFah
ممكن تتبع العملية فى الدقيقة رقم 11:50 مقتنعتش بصراحه بالتتبع ده. لو امكن توضيح اكتر
int x = 0 , y = 0 ;
y = ++x+x++;
cout
طريقتك صحيحة وانا نفس الشي بيطلع معي👍
السلام عليكم يا استاذ انا رح افسرلك ليش حسبها 2 0 وانشاء الله رح تعجبك :
اولا البرنامج انت قلت انو يبدء العمل من اليمين لليسار هاذا يعني انو بدء ب ++× اولا وهذا رح يظهر 0 ويخزن بداخل x واحد، وبعدها راح لل x++ اضاف واحد لل x يعني اصبح ال 2=x وبعدها عرضو 2 هذا تفسيري ان اصبت فمن الله وان اخطئت فمن نفسي والشيطان وشكرا اخوك من الجزائر 😘😘😘🇩🇿🇩🇿
وعليكم السلام ورحمة الله .. تفسير جميل .. حاول اتوسع بالمثال وضيف اكثر من جملتين وشوف شو بصير معك .
اخي يوجد خطاء عبيطلع 3
البرنامج يبدأ العمل من اليمين لليسار فى حالة الاسناد فقط اى علامة يساوى .... اما غيرها البرنامج يشتغل طبيعيا من اليسار لليمين
آخر مثال بس حطيت على c++ online compiler
طلع معي x=1 و y=1🙂
في بعض ال compilers بتطلع أخطاء
اشتغل/ي على visual studio أأمن
الله يعطيك الف عافيه شرح روعه بس سؤال
++x+x++
يعني ضفلي ع x واحد بعدين ضيف عليها 1
طيب xالتانيه ليش مانقرت
#include
using namespace std;
int main(){
int x=1;
int y=++x+x++;
cout
@@AdelNasim الله يعطيك الف ااف عافيه
@@AdelNasim ممكن توضحلى النتيجة دى هتكون ٦ ازاى 'y=0
int x=1;
Y=++x+x+x++: ولو كتبت نفس المعادله وعرفتها بال x راح تطلع 7
@@AdelNasim انا عرفت التتبع للمسألة دى ووصلت النتيجة. ومحتاج اعرفهولك علشان تشرحه بس اتواصل معاك ازاى
م
@@AdelNasim
ال y=++x+ ++x;
ده the behavior is undefined
يعني شئ غير منطقي في لغة سي بلس بلس .. وضد قوانين اللغة نفسها
اذا قمت بتجربة المثال السابقة مع اكثر من compile مثل
zapcc 5.0.0
GCC 9.1.0
هتجد ان كل compile بيعمل ناتج مختلف
ببساطة ممنوع استخدام هذا الشئ في الكود لانه ضد قواعد اللغة نفسها
لتفاصيل
qr.ae/pNWu65
اخوي بدي اسألك ..
لما يكون عندي زي هيك ..
Int x=5 , y ;
Y= x++ + ++x +++x + x++
يعني بنفس السطر عندي اكتر من وحده بوست واكتر من وحده بري ...
بهيك حاله الكومبايلر كيف بشتغل ؟؟
يعني مين اله الاولويه ( ببلش فيه الكومبايلر ) البوست ولا البري ؟؟؟؟
وبما انه في تنتين بوست ( الهم نفس الاولويه ) بأي وحده ببدأ من اليمين ولا من اليسار بمشي فيهم ؟؟؟
مع العلم اني حاليا بشتغل على كومبايلر النت بينز للجافا
في هاي الحالة بضلو ماشي من الشمال لليمين
y = x++ + ++x + ++x + x++;
وبتكون الارقام على النحو الآتي
y = 5 + 7 + 8 + 8
ولاحظ الـ
8
ما صارت 9
خلينا نغير بـ آخر
x
زي هالمثال:
y= x++ + ++x + ++x + ++x;
y = 5 + 7 + 8 + 9
والسبب انو اخر رقم كان 9
عشانها زيادة قبلية,بتمنى تكون وصلتك
@@AdelNasim
اخوي انا هاد الحكي انه كل وحده كيف بتشتغل فاهمه تمام التمام ...
بس انا سؤالي انه لما يكون في تنتين بوست (او بري ) يعني الهم نفس الاولويه ..كيف بمشي فيهم من اليمين لليسار ولا من ليسار لليمين ...
يعني مثلا لو في * و قسمه .. فهدول الهم نفس الاولويه فبمشي بالاول على اللي جايه عاليسار بعدين للي عاليمين ...
لكن عند وجود تنتين بوست ( او بري ) هدول الهم نفس الاولويه ..بيجي بالاول على اللي عاليمين ولا اللي على اليسار ؟؟؟؟
اما سؤالي التاني هو على مين بيجي بالاول الكومبايلر ..على البوست ولا على البري ...يعني من اولى من التانيه البوست ولا البري ...
فهمت سؤاليني اخوي ؟؟؟
تمام في جدول رالرابط في كل الاوليات الي بتلزمك مع الاتجاهات
www.quora.com/Which-has-higher-precedence-out-of-pre-and-post-increment-decrement-operators-in-C++
@@AdelNasim
ممممم ..
هاد c++ اخوي انا حابب اعرف بخصوص الجافا ..
عكل مشكور اخوي انا كنت حابب اعرف الطريقه اللي بتشتغل فيها انتَ لو اجتك هاي المسأله ...هل تتبع الاولويات والاتجاهات ام لديك طريقه اخرى
بدي اسال لحنا وقت منحط
Std::cout((
ايمت منحط (") وقت نشتغل وايمت ما منحطها
في فيديوهات كنت تحطن دائما وفي فيديوهات معد حطيتون
great
استاذ بسطر
Y=++x+x++;
Out :y =3
هيك عم يعطي كومبايلر عندي ❤
وانا هيك
14:32 معني كده ان مفيش سبب ليه هو طبع 2 و 0
يا اخي اني فسرتو في تعليق لي اقراه وانشاء الله رح تفهم ليش وشكرا
في بداية المسا ئله بدأت بدا using
لو سمحت وقت كتبنا ++y=x ليش عطانا قيمة ل x هي واحد مافمت
لان ال x انجمع فوقها 1 الى هو ++
ولكن ال y ما بتحسب بعد x يعني بتاخد القيمة الاولة ل x صفر
انت قايل قبل انوبهي لغة بنمشي من يمين لليسار بس هون ناقض حكيك استاذ عادل بنمشي من يسار لليمين
بحالة الاسناد بعد ال = بشتغل من اليمين لليسار اما عند ال cout ببلش طباعة من اليسار لليمين
الصوت وحش
💜💜💜
11:10 غير منطقي ويلخبط
معلم طلعلي 3 لما طبعت cout >>++x+x+×;
و انا طلعلي هيك ليش؟؟
انا مبتدئ نوعا ما و لاكن من السهل معرفة اش اللي حصل
من الواضح ان الكومبايلر بدا يقرا السطر من اليسار الي اليمن زي ما قلتنا في العمليات الحسابية
cout
فيه لخبطة بين x++ و ++ x وخصوصا من الدقيقة 9
شكرا على التنبيه ..
لكن في اي مثال ؟
مافهمت شي من هالجلسة تخبيص
😂
مافي تخبيص بالعكس
@@اندرويدالعراقيالصغير التعليق منذ سنتين تعديت هذي الامور كنت مبتدئة🗿🌚
@@4_Shoq هههه عفية اني هسه دخلت هندسة امن سيبراني والله
@@اندرويدالعراقيالصغيراني هم جديد دخلت على قسم بس صراحه صعب والله وخايفه
شكرا الك
❤❤❤❤❤
❤️❤️❤️