W3lc0m3 Fighter.




Atlas Sy[6] further arithmetic operations

Atlas Sy Offline
#1
Star 
السلام عليكم ورحمة الله وبركاته 
معاكم اخوكم أطلس 
هنكمل شوية تفاصيل صغيرة عن العمليات الحسابية ضمن اللغة 
نبدأ مع حاجة اسمها مود 
% ودي اشارتها بتبقى كده 
اها تمام وبتعمل ايه دي ؟ 
ببساطة هي بتشوفلك باقي القسمة بتاع رقمين يعني فرضا لو قسمنا 8 على 4 باقي القسمة هو صفر اما مثلا لو 9 على 2 الباقي هو واحد 
نجي لمثال 

Code:
int x= 10,y=2;

cout  << x/y <<endl << x%y <<endl;
كده هيظهرلنا انه قسمة العديين هي 5 مع باقي القسمة عبارة عن صفر
  ننتقل لحاجة تانية والي هي عبارة عن 
++ او -- 
طب دول بيعملوا ايه ؟
لحتى نعرف هنحط مثال اول حاجة ونجي نحلل النتيجة 
Code:
int x=5;
++x;

cout <<x;

هنلاقي ان النتيجة هي 6 بمعنى انها بتضيف واحد للقيمة 
زي كده بالضبط
x = x + 1;
يعني زود واحد وارجع خزن الناتج فالاكس
وبالنسبة لاشارتي السالب دي بتنقص واحد من القيمة على عكسها
الحاجتين دول اسمهم
Increment: ++
Decrement: --
وليهم طريقتين للكتابة
Prefix: يعني نكتبهم قبل اسم المتغير
Postfix: يعني نكتبهم بعد اسم المتغير
وانا استفيد ايه لو قبل او بعد وله فيه فرق ؟ 
اكيد فيه فرق والا ماكانوش ضافوها 
Smile
الفرق بيبقى بزمن تغيير القيمة 
ناخد مثال وهنعرف تلقائي الفرق
Code:
int x=4;
cout<< x << ++x << endl << x++ << x <<endl;
 جينا اول حاجة طبعنا الاكس وكانت 4 بعدها زودنا عالاكس واحد صارت 5 وطبعناها بس لما انتقلنا لتالت شيء القيمة الي انطبعت هي هي ما اتغيرت اما اخر حاجة لما رجعنا طبعنا القيمة لاحظنا ان قيمتها تغيرت 
 يعني لما حطيناها قبل اسم المتغير التغير فورا حصل prefixاذا نلاحظ انه بحالة ال
التغيير حصل بعد خطوة مش مباشرة postfixاما بحالة ال 
او بمعنى تاني الكومبايلر اتعامل مع المتغير عادي وطبعه قبل ما يغير قيمته
وده سبب عدم تغير قيمته لما حطينا البلاسات بعده ولكن ظهر التغيير فجملة الطباعة الي بعدها
تمام
 نجي نعمل شوية كوكتيل مابين الحاجات دي ياترى ازاي الكومبايلر يعرف ينفذ اي عملية قبل ايه ؟
يعني لو اديناه حاجة زي 
5+(8*9)/2 - 2
احنا كبشر واخدين شوية مبادئ فالرياضيات نعطي اولوية ونعرف نبدأ منين
هنا نفس الحالة بل ونفس القانون كمان لكن الفرق الوحيد هو الانكريمينت والديكريمينت دول
نتذكر القانون كان اسمه 
BEDMAS
وده اختصار لجملة 
Brackets,Exponents,Division,Multiplication,Addition,Subtraction
يعني اول حاجة نبدأ من الأقواس لو فيه بعدها نروح للقوى او الأسس بعدها ننتقل للقسمة والضرب ومفيش فرق تبدأ باي واحد منهم وبعدها الجمع و الطرح بردو مفيش فرق 
 دلوقتي هنحرف الاسم ده شوي ونخليه يتناسب مع حاجتنا فالبرمجة 
هيبقى 
BE(pre)DMAS(post)
أعوذ بالله ايه الطلاسم دي ؟ 
  بتبقى بعد الاقواس و الاسس prefixبكل بساطة أولوية ال 
 دي يا صحبي بتبقى فالأخير خااالص لان زي ما ذكرنا انها بتتنفذ بعد خطوة او جملة برمجية مش مباشرة postfix اما ال 
طب والغلبان الي اسمه مود % ده راح فين
ده يصحبي بتتعامل معاه نفس تعاملك مع القسمة و الضرب يعني التلاتة ليهم نفس الاولوية
هتبدأ من اليسار لليمين و هتاخد فبالك الطلاسم دي وباذن الله مفيش مشكلة اولويات هتوقف معاك ضمن البرمجة ده لو احتجتها
هنختم الثريد بآخر حاجة وهي شيء هيوفر علينا شوية وقت
لو عندنا مثلا حاجة زي
Code:
int x = 5;

x = x + 5;
كده المفروض اكس يبقى 10 اه تمام طيب نجي نختصر الجملة دي 
هتبقى كده
Code:
x+=5;
وكده الكومبايلر هيتعامل معاه بنفس الطريقة
يجمع الخمسة مع قيمة اكس بعدها يرجع يخزن النتيجة فاكس
وبنفهم من الكلام ده انه اليساوي او التخزين ده اخر حاجة بتتم لو عندنا ضمن عملية مشابهة 
نفس الموضوع بينطبق على باقي العمليات سواء ضرب قسمة طرح او حتى مود 
كلهم هينكتبوا بنفس الطريقة 
Code:
int x=1,y=5;


x+=y;
x*=x;
y%=6;
وبالنسبة لموضوع تزويد او تنقيص واحد ده صار عندنا 3 طرق نتعامل معاه
Code:
int x=5;

x = x + 1;

++x;

x+=1;
ودول التلاتة ليهم نفس الشغل  ونفس الشيء مع التنقيص
اول دلوقتي عاوزكم تتعمقوا شوية فالكلام 
ولما تخلصوا ترجعوا تحلوا الطلب ده 
اكتب كود يطبعلك عملية الضرب الطويل الي كنا بنعملها فالمدارس باستخدام العمليات دي 
Hint:
مثال 
50*60
كنا بنضرب الصفر والخمسة بالصفر 
بعدها نحط صفر عاليمين ونرجع نضرب الصفر والخمسة ب6 و نجمع القيمتين
ادي كده بالضبط حاولوا تعملوها بالبرمجة 
السؤال ده اصعب من الباقي بحبتين ومفيش مشكلة لو استصعب عليك
هيكون فيه ثريدات لحل مثل هذه الأسئلة باذن الله

وكده خلصنا وبتمنالكم كل الخير
:heart: دمتم في أمان الله :heart:
  Heart The only one who can satisfy the human heart is the one who made it  Heart
Reply



Possibly Related Threads…
Star [7] Logic operations Started by Atlas Sy
1 Replies - 309 Views
04-03-2020, 09:33 PM
Last Post: elo3mda
04-03-2020, 09:33 PM
Last Post: elo3mda



Users browsing this thread:
3 Guest(s)



ABOUT Team of the X-fighter

All Right Reserved © Xp10.site