السلام عليكم ....
أود أن أستفسر .... عن الفرق بين ( i ++ , ++ i ) ....؟
مع مثال للشرح .....
كيفية عمل goto .... ؟
لأني تعبت معها ... حتى في المانيوال الخاص بالبرنامج لم أفهم منه الشيء الكثير ..
السلام عليكم ....
أود أن أستفسر .... عن الفرق بين ( i ++ , ++ i ) ....؟
مع مثال للشرح .....
كيفية عمل goto .... ؟
لأني تعبت معها ... حتى في المانيوال الخاص بالبرنامج لم أفهم منه الشيء الكثير ..
اقتباسأود أن أستفسر .... عن الفرق بين ( i ++ , ++ i ) ....؟
الفرق هو ان ++i تقوم بإرجاع قيمة i الحاليه ثم يتم زيادتها بواحد اما i++ فتقوم بزايدة i اولا بواحد ثم ثقوم بإرجاع قيمة i بعد زيادتها، أنظر معى هذا المثال
[color= #007f00;]#include <iostream>
[color= #0000ff;]using [color= #0000ff;]namespace std;
[color= #0000ff;]void main[color= #000000;]([color= #000000;])
[color= #000000;]{
[color= #0000ff;]int i [color= #000000;]= [color= #ff0000;]0;
cout [color= #000000;]<< [color= #A31515;]"i = " [color= #000000;]<< i[color= #000000;]++ [color= #000000;]<< endl; [color= #007f00;]// i = 0
cout [color= #000000;]<< [color= #A31515;]"i = " [color= #000000;]<< i [color= #000000;]<< endl; [color= #007f00;]// i = 1
cout [color= #000000;]<< [color= #A31515;]"i = " [color= #000000;]<< [color= #000000;]++i [color= #000000;]<< endl; [color= #007f00;]// i = 2
[color= #000000;]}فى البدايه قمنا بتعريف متغير i و جعلنا قيمته صفر.
بعد ذلك جعلنا البرنامج يطبع قيمة i اولا ثم يزيدها بواحد و بالتالى فقام بطباعة قيمة i = 0 اما فى الرمه الثانيه فقد تم فعليا زيادة قيمة i و بالتاى عندما جعلنا البرنامج يطبع قيمة i قام بطابعة i = 1 فى المرة الأخيره قمنا بزيادة i بمقدار واحد اولا ثم قمنا بطباعة قيمتها و التى اصبحت i = 2.
اقتباسكيفية عمل goto .... ؟
يستخدم الأمر goto فى جعل البرنامج يتطى مجموعة من الأوامر وصولا لمنطقه معينه تحمل اسم معين هذا الإسم يتم وضعه بجوار الأمر goto، لاحظ معى هذا المثال
[color= #0000ff;]void main[color= #000000;]([color= #000000;])
[color= #000000;]{
[color= #0000ff;]int i [color= #000000;]= [color= #ff0000;]5;
[color= #0000ff;]if [color= #000000;](i[color= #000000;]<[color= #ff0000;]10[color= #000000;])
[color= #0000ff;]goto less_than;
cout [color= #000000;]<< [color= #A31515;]"i more than 10" [color= #000000;]<< endl;
less_than[color= #000000;]:
cout [color= #000000;]<< [color= #A31515;]"i less than 10" [color= #000000;]<< endl;
[color= #000000;]}قمنا بتعريف متغير i و جعلنا قيمته بخمسه ثم بعذ ذلك نتحقق من قيمته فإذا كانت اقل من 10 نجعل البرنامج يقفز ليصل الى النقطه less_than لينفذ ما بعدها و هو طباعة الكلمة i less than 10 لاحظ ان البرنامج لن يعود ليتحقق من قيمة i مره اخرى بمعنى ان البرنامج وصل لنقطة less_than و هذا يعنى ان المؤشر الخاص بتنفيذ الكود لن يعود ادراحه لما قبل less_than إلا لو كان هناك امر goto اخر يجعله يذهب لهذا المكان.
ارجو ان اكون وفقت فى الشرح.
و الله ولى التوفيق
مدونتي: C++ Tips and Tricks
السلام عليكــم ورحمـة الله وبركاتــه
،،
بســم الله الـرحمــن الرحيــم
الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين
#include <iostream.h>
// function main begins program execution
int main()
{
int x; // x declared here " x"هذا لتعريف المتغير
// loop 10 times i هي لزيادة قيمة i++
for ( x = 1; x <= 10; x++ ) {
// if x is 5, terminate loop
if ( x == 5 )
break; // break loop only if x is 5
cout << x << " "; // display value of x
} // end for
cout << "\nBroke out of loop at x:" << x << endl;
return 0; // indicate successful termination
} // end function main
it means to increment the value { i }
السلام عليكم ....
أخي Muhammad alaa أشكرك بصورة كبيرة على التوضيح وجعل الله ذلك في ميزان حسناتك ....
لدي استفسار بسيط ... هل ( i++) تقوم بإرجاع الـ i إلى قيمتها الأساسية ( الإبتدائية ثم الزيادة عليها ) ... هل هذا ما تقصده ؟
ما فهمته من كلامك في ( ++i ) أنها فقط تنظر للقيمة الحالية للـ ( i ) وتقوم بالزيادة عليه .....
بالنسبة لــ goto كفيت ووفيت ...
أخي aibrahem ...
أرجو أن تضع ردك ضمن الوسوم الخاصة بالأكواد البرمجية حتي يسهل قرائتها .... ...
اقتباسلدي استفسار بسيط ... هل ( i++) تقوم بإرجاع الـ i إلى قيمتها الأساسية ( الإبتدائية ثم الزيادة عليها ) ... هل هذا ما تقصده ؟ما فهمته من كلامك في ( ++i ) أنها فقط تنظر للقيمة الحالية للـ ( i ) وتقوم بالزيادة عليه .....
أخي الكريم سأحاول الشرح بطريقة أخرى, عسى أن تصل الفكرة..
i++
هنا سيتم التعامل مع قيمة المتغير دون إضافة 1 إليه
وتتم الإضافة بعد تنفيذ السطر الحالي من الكود
هذا مثال يوضح الفكرة
i = 5; x = 2 * i++; // i = 5, 2 * 5 = 10 y = 2 * i; // i = 6, 2 * 6 = 12;
هنا ستكون قيمة المتغير x تساوي 10، لأننا نتعامل مع قيمة i قبل الإضافة
أما بالنسبة لـ
++i
فهي بعكس السابقة
أي,, يتم إضافة 1 إلى قيمة المتغير قبل تنفيذ السطر الحالي
أنظر إلى المثال
i = 5; x = 2 * ++i; // i = 6,,, 2 * 6 = 12 y = 2 * i; // i = 6,,, 2 * 6 = 12
أرجو أن تكون الفكرة قد وصلت,, والسلام عليكم
تم تعديل هذه المشاركة بواسطة MoHammaD_93 في 30 يونيو 2009 في 19:48
SAFETY TIP : Always delete what you new, and free what you malloc, never mix new with free or malloc with delete.