‫يعنى ايه ‪ expression‬؟‬                             ‫يعنى ايه ‪ statement‬؟‬

      ‫ال ‪ expression‬هى جزء من البرنامج‬                 ‫ال ‪ statement‬هى أمر )بسيط أو مركب(‬

‫يمكن منه حساب قيمة )سواء عددية أو من أى نوع‬                            ‫يمكن تنفيذه .......مثل :‬
                            ‫آخر (.......مثل :‬
                                                      ‫; ‪cout << x‬‬
    ‫41+21‬
                                                        ‫;1+‪A=A‬‬
    ‫”‪“hello world‬‬
    ‫‪A+ b / c‬‬                                                                          ‫دى كلها‬
                                                ‫)‪while (true‬‬
    ‫831‬                                                                       ‫‪Statement‬‬
                                                ‫{‬
    ‫) ) ‪sin( x+3 )* f( g( y‬‬                                                             ‫واحدة‬
                                                    ‫;"222" << ‪cout‬‬
                                                ‫}‬
‫بعض انواع ال ‪expressions‬‬
       ‫51‬
                                    ‫أى ‪ expression‬قيمته بتتفهم‬
       ‫”‪“hello world‬‬                  ‫حرفيا من كتابته اسمه ‪literal‬‬
       ‫381‬

                               ‫ال ‪ assignment‬نفسها عبارة عن‬
‫5=‪B‬‬                             ‫‪ expression‬قيمته هى نفس قيمة‬
‫5 = ‪A= B‬‬                        ‫الحاجةاللى باحطها فى ال ‪variable‬‬
                           ‫)فى المثال الول قيمة ‪ B‬هى 5 وفى المثال‬
                                    ‫الثانى قيمة ‪ A‬هى 5 كما قيمة ‪(B‬‬

                                                ‫هنا ‪expression‬‬
‫;) ) ‪cout << sin( cos( x‬‬                        ‫فى صورة استدعاء‬
                                                     ‫‪function‬‬
‫‪Declarations & Definitions‬‬
                     ‫ال ‪ declaration‬مجرد إعلن إن فى حاجة موجودة‬
                                              ‫دون أن يشترط تعريفها‬


‫; )( ‪void Greeting‬‬                          ‫كدة أعلنت إن فيه ‪function‬‬
                                            ‫اسمها ‪ Greeting‬ووصفتها‬
                                                    ‫عاملة ازاى .......‬
‫)( ‪void main‬‬
‫{‬                                          ‫و بكدة ال ‪ main‬بقت شايفاها‬
                                                  ‫وقادرة تستخدمها .......‬
‫;)(‪Greeting‬‬
‫}‬

‫)( ‪void Greeting‬‬                                               ‫.....مع إنى‬
                                                                ‫ىّ‬
‫{‬                                             ‫أصل معرفها بعد ال ‪main‬‬
‫;”‪cout << “yahla‬‬
‫}‬
‫‪Booleans & Conditions‬‬
              ‫• ال ‪ ++c‬فيها ‪ data type‬اسمه ‪ bool‬مالوش إل قيمتين:‪ ) true‬معناها صح ( و ‪false‬‬
                                                                                     ‫) معناها خطأ (.‬
                              ‫• ال ‪ operators‬اللى زى == , > , < , =! .... بترجع ‪ true‬أو ‪false‬‬
‫• مش بس ال ‪ bool‬معناها صح أو خطأ ، ده ال ++‪ C‬أحيانا بتعتبر الصفر معناها ”خطأ ” و أ ىّ قيمة غير‬
         ‫ى‬
                                                                             ‫الصفر معناها ”صح“.‬

                ‫مش هايتنفذوا‬                                  ‫هايتنفذوا‬
        ‫)0( ‪•if‬‬                              ‫)‪•if (true‬‬
        ‫{‬                                    ‫{‬
          ‫.....‬                              ‫....‬
        ‫}‬                                    ‫}‬
        ‫}....{ ) ‪•while ( false‬‬              ‫}....{ )51(‪•while‬‬
                                             ‫)'‪•if ('q‬‬
        ‫}....{ )84-84( ‪•if‬‬                   ‫{‬
                                             ‫....‬                     ‫خد بالك ال ‪ ASCII‬بتاع‬
                                             ‫}‬                              ‫حرف ال‬
                                                                          ‫‪ !! q‬مش صفر‬
If
    ‫ بترجع لك قيمة‬if expression ‫ال‬                                    ‫ممكن تنفذ بيها أوامر‬if statement ‫ال‬

                                                                  if ( choice==5)
x=a ? b : c ;
                                                                  {
          ‫? دى معناها اذا الشرط اللى قبلها اتحقق رجعلى‬
  : ‫اللى بعد‬c ‫اللى بعدها اذا لم يتحقق رجعلى القيمة‬b ‫القيمة‬        cout << “the result is” <<x ;

Max = (a>b) ? a : b ;                                             }

                                                                      if ( done )
cout << (y==0) ? “zero” : “nonzero” ;                                 return 0 ;

                                                                  if (a==b)
cout << y ? “zero” : “nonzero” ;                                  {cout << “they‘re equal” ;}
                                                                  else{ cout << “they aren’t equal ” ;}
‫‪While loops‬‬
‫;0 = ‪int x‬‬
‫) 01 < ‪while ( x‬‬                                                              ‫الول بيحسب ال‬          ‫.1‬
                              ‫طباعة‬               ‫)شرط( ‪while‬‬
‫; ‪{cout <<x‬‬                ‫الرقام من‬                                      ‫‪ Condition‬لو طلع 0 أو‬
                                                  ‫{‬                                    ‫‪false‬‬
‫; ++‪x‬‬                         ‫0ل9‬
                                                      ‫شوية كود‬                 ‫يخرج ويكمل البرنامج‬
‫}‬
                                                                                  ‫من بعد ال ‪while‬‬
                                                  ‫}‬
‫) )(‪while ( test‬‬      ‫لحظ إن هنا بينادى على ال‬   ‫باقى البرنامج‬
                                                                        ‫2. بس لوطلع ال ‪condition‬‬
                        ‫‪ function‬المسماه ‪test‬‬
‫} ;) (‪{ DoJob‬‬                                                                    ‫صح يعمل حاجتين :‬
                       ‫كل مرة يحسب فيها الشرط‬
                                                                      ‫• ينفذ الكود اللى جوه ال ‪. while‬‬

    ‫) ‪while( A>B‬‬       ‫مش لزم قوسين حوالين‬                                      ‫• يبتدى الخطوة ) 1 (‬
                              ‫‪ code‬لو كانت‬
    ‫++‪B‬‬               ‫‪ statement‬واحدة لكن‬                                       ‫من الول ، ويبدأ يكرر‬
                               ‫القواس أوضح‬                       ‫الموضوع ده لغاية ما ال ‪condition‬‬
                                                                                          ‫يبقى غلط .‬
‫; )01<‪while ( x‬‬    ‫حاسب !!! هنا ال ‪ code‬بتاعة‬
‫;++‪x‬‬                     ‫ال ‪ while‬فاضية !‬
‫‪for loops‬‬
‫)حاجة بتحصل فى الول ; شرط بنجربه قبل كل خطوة ;حاجة بتتنفذ بعد كل خطوة ( ‪for‬‬
                                                                                            ‫1.كل أجزاء ال ‪ for‬اختيارية .‬
‫{‬
     ‫‪code‬‬                                                                     ‫) ; ; ( ‪for‬‬

‫}‬                                                                             ‫{‬
                                                                                                       ‫ده‪infinite loop‬‬
                                                                              ‫;”‪cout <<“hi‬‬
‫)++‪for (int i= 0; i<10; i‬‬
                                             ‫9‬    ‫عد تصاعدى من 0‬
                                                              ‫ىّ‬              ‫}‬
‫;‪cout << i‬‬


‫)++‪for (int i=10; i>= 1; i‬‬                    ‫1‬     ‫عد تنازلى 01‬
                                                              ‫ىّ‬                  ‫;)++‪for (int i=0; i<10 ; i‬‬
‫;‪cout << i‬‬                                 ‫) ممكن يتعمل بكذا طريقة(‬           ‫هنا ال ‪ code‬بتاعة ال ‪ loop‬فاضية‬
                                                                      ‫)‪for (α ; β ; Δ‬‬
‫)‪for ( Node * n=lst -> head; n!=Null; n=n -> next‬‬                     ‫}‪{code‬‬          ‫قبل‬               ‫2. أى ‪ for‬يمكن‬
‫{‬
                                                                      ‫;‪α‬‬                                    ‫تحويلها إلى‬
                                 ‫مثال على المرور على كل العناصر فى‬    ‫) ‪while( β‬‬                       ‫‪ while‬عن طريق‬
‫;‪cout << n -> value‬‬                                                   ‫{‬               ‫بعد‬
                                                                        ‫‪code‬‬                             ‫التحويل التى :‬
‫}‬                                        ‫‪Linked list‬‬
                                                                        ‫‪Δ‬‬
                                                                      ‫}‬
‫تفاصيل عن ال ‪statements‬‬
                                              ‫بعض أنواع ال ‪statement‬‬


         ‫تحكمية‬
           ‫ةّ‬
                                         ‫فارغة‬                        ‫مركبة‬                      ‫بسيطة‬
       ‫‪Control flow‬‬

                                  ‫{‬     ‫‪or‬‬        ‫;‬
   ‫زى ال ‪while , if , for‬‬                                       ‫} ;6 = ‪{ int x= 5, y‬‬            ‫;5  ‪cout‬‬
                                  ‫}‬

       ‫ال ‪ while , if , for‬يأتى فى آخرها ‪ statement‬يمكن أن يكون نوعها أى نوع من النواع الربعة السابقة :‬

‫)9  ‪if (x‬‬                     ‫ال ‪ if‬بعدها‬            ‫)++‪for( int i = 0; i  10; i‬‬
‫;‪cout  x‬‬         ‫‪ statement‬بسيطة‬                      ‫)‪if( i % j‬‬                                ‫كل ‪statement‬هنا‬
                                                                                                             ‫فى آخرها‬
                                                           ‫) )( ‪while( checking‬‬               ‫‪ statement‬تحكمية‬
                                                                                                ‫ةّ‬
‫)5  ‪if (x‬‬                     ‫ال ‪ if‬بعدها‬                                                           ‫ما عدا آخر واحدة.‬
                                                               ‫;)(‪dojob‬‬
   ‫;‬                  ‫‪ statement‬فارغة‬
                                                                            ‫ال ‪ for‬فى آخرها ‪ if‬و ال ‪ if‬نتيجتها ‪while‬‬
‫‪else‬‬                        ‫وال ‪ else‬بعدها‬
                      ‫‪ statement‬مركبة‬
                         ‫ةّ‬                           ‫وال ‪ while‬الكود بتاعتها ‪ statement‬بسيطة) مناداة ‪.( function‬‬
‫};--‪{x++; y‬‬
‫نوع كل‬
             ‫اسم‬
            ‫المتغير‬
                       ‫عدد‬                 ‫‪Arrays‬‬
‫عنصر‬                  ‫العناصر‬


          ‫; ]001[ 1‪int a‬‬                                 ‫تعريف ‪ array‬جديد‬



                                                      ‫ازاى أجيب العنصر رقم كذا :‬
‫]5[ ‪arr‬‬
                                                    ‫[ ال ‪ index‬اللى ما بين القواس‬
‫]‪v [i‬‬                                                ‫ممكن يكون أى ‪expression‬‬
‫] )( ‪homes [ get_names‬‬                              ‫طالما بيجيب فى الخر عدد صحيح‬
                                                      ‫)سواء ‪ ... long , int‬الخ( ]‬



‫;]‪cout  a [i‬‬                      ‫باقراه .....‬          ‫باتصرف مع العنصر‬
                                                            ‫رقم كذا على إنه‬
‫..و احط فيه قيمة..... ;”‪names [5]= “samy‬‬
                           ‫........وممكن أزوده.‬            ‫زى أى متغير عادى‬
‫;++ ]‪Frequency [x‬‬
‫‪functions‬‬
                                                                       ‫ال ‪Function‬‬
      ‫عامله زى برنامج صغير ممكن تناديه باسمه بدل ما تكتب الكود بتاعه كل شويه من الول‬

‫)‪int add (int x, int y‬‬
  ‫{‬
‫;‪return x + y‬‬                                 ‫ده ‪function definition‬‬
  ‫}‬

‫)(‪void main‬‬
‫{‬
‫;)64 ,81(‪cout  add‬‬                      ‫ده ال ‪function application‬‬
                                         ‫اللى باستغل فيه ال ‪ function‬المتعرفة‬
‫;‪cout   GOOD BYE‬‬
‫}‬

         ‫لما ال ‪ add‬تخلص شغلها البرنامج هيكمل ال ‪ main‬من مطرح ما وقف‬

          ‫ده اسمه ”رجوع ال ‪ ” function‬أو ”‪” function return‬‬
   ‫لو ال ‪ function‬ندهت ‪ function‬تانيه برضه البرنامج بيرجع بعد كده يكمل الولنيه‬
‫‪Parameters‬‬

‫)‪int add( int x, int y‬‬                     ‫• ال “‪ ”y‬و ال‪ “”x‬اسمهم ‪formal parameters‬‬
‫{‬                                            ‫و دول متغيرات بتشيل القيم المبعوته لل ‪function‬‬
‫;‪return x + y‬‬
‫}‬

‫)(‪void main‬‬
‫{‬                                                     ‫• ال ‪actual parameters‬‬
‫;01 = ‪int x‬‬                                                ‫هى ‪expressions‬‬
‫;)01+ ‪cout add(18 , x‬‬
                                                ‫بتتحسب قيمتها لما تيجى ال ‪ function‬تتنادى ِ‬
‫}‬
                                            ‫القيم المحسوبه دى ) زى”81“ أو ”02“فى المثال( اسمه•‬
                                                ‫ال‪ arguments‬و بتتبعث لل ‪ function‬عشان‬
                                                         ‫تتخزن فى ال ‪formal parameters‬‬

                ‫لو عايز ممكن تعمل‪ function‬من غير‪parameters‬‬
                   ‫بس لما تناديها لزم تحط اقواس برضه زى كده‬
                            ‫) (‪DoStuff( ) , f‬‬
‫‪Return values‬‬
    ‫ال‪ return values‬معناها ”القيمه المعاده ”لنه لما تنادى ‪ function‬زى ال ‪ add‬مثل و هى خلصت و‬
   ‫البرنامج هيكمل من مطرح ما اتنادت ممكن ساعتها البرنامج يجيب معاه القيمه اللى حسبتها ‪ add‬قبل ما تخلص‬

       ‫ازاى تخلى ال ‪ function‬ترجع قيمه؟‬                     ‫الستفاده من ال ‪return values‬‬
                                                            ‫لو ال ‪ function‬ليها ‪ return value‬يبقى‬
 ‫)‪int sign_of( int value‬‬                      ‫كلمه‬        ‫ال ‪ function application‬ينفع نعامله زى‬
 ‫{‬
                                     ‫كذا ‪return‬‬         ‫‪ expression‬له قيمه و أقدر أعمل بيه أى حاجه‬
 ‫)0 == ‪if (value‬‬
                                                                      ‫ممكن تتعمل ب ‪: expression‬‬
         ‫;0 ‪return‬‬                   ‫معناها وقف ال‬
 ‫)0‪if ( value‬‬                          ‫‪function‬‬      ‫;)‪int x = add(a, b‬‬
        ‫;1 ‪return‬‬                                                                     ‫• أخزن قيمته‬
 ‫)0‪if ( value‬‬               ‫و ارجع للمكان اللى ال‬
         ‫;1- ‪return‬‬                      ‫‪function‬‬     ‫21 = ] )(‪a[ get_position‬‬
 ‫}‬                            ‫اتنادت منه و خلى ال‬                                ‫• استخدمه ك ‪index‬‬
                                                                                        ‫فى ‪array‬‬
                              ‫‪ return value‬هناك‬
                                     ‫قيمتها ) كذا (‬     ‫) )‪f( g(X‬‬
      ‫مش محتاجين نقول هنا‬
                                                                                 ‫• ابعته ‪parameter‬‬
  ‫‪ else‬عشان كلمه ‪return‬‬
                                                                                  ‫ل ‪ function‬تانية‬
‫كده كده هتوقف ال ‪function‬‬
‫ازاى تخلى ال ‪ function‬ترجع قيمه؟‬                  ‫الستفاده من ال ‪return values‬‬

  ‫)‪int sign_of( int value‬‬                         ‫لو ال‪ function‬نوعها ‪ void‬يبقى‬
  ‫{‬                                            ‫ماينفعش استخدمها ك ‪ expression‬له‬
  ‫)0 == ‪if (value‬‬                                ‫قيمة لنها معدومة ال ‪return value‬‬
       ‫;0 ‪return‬‬
  ‫)0‪if (value‬‬
       ‫;1 ‪return‬‬                             ‫)(‪void f‬‬
  ‫)0‪if (value‬‬                               ‫{‬
       ‫;1- ‪return‬‬                            ‫.............‬
  ‫}‬                                          ‫}‬
                                             ‫)(‪void main‬‬               ‫الكود ده غلط‬
                                             ‫{‬                       ‫لو كتبته وحش‬
‫على فكره مش محتاجين نقول هنا ال ” ‪” if‬‬       ‫;)(‪cout f‬‬            ‫ال‪ bugs‬هياكلك‬
                ‫الثالثه و ممكن نقول مكانها‬   ‫}‬

                           ‫”1- ‪”return‬‬
                               ‫على طو ل‬

C++ syntax summary

  • 1.
    ‫يعنى ايه ‪expression‬؟‬ ‫يعنى ايه ‪ statement‬؟‬ ‫ال ‪ expression‬هى جزء من البرنامج‬ ‫ال ‪ statement‬هى أمر )بسيط أو مركب(‬ ‫يمكن منه حساب قيمة )سواء عددية أو من أى نوع‬ ‫يمكن تنفيذه .......مثل :‬ ‫آخر (.......مثل :‬ ‫; ‪cout << x‬‬ ‫41+21‬ ‫;1+‪A=A‬‬ ‫”‪“hello world‬‬ ‫‪A+ b / c‬‬ ‫دى كلها‬ ‫)‪while (true‬‬ ‫831‬ ‫‪Statement‬‬ ‫{‬ ‫) ) ‪sin( x+3 )* f( g( y‬‬ ‫واحدة‬ ‫;"222" << ‪cout‬‬ ‫}‬
  • 2.
    ‫بعض انواع ال‪expressions‬‬ ‫51‬ ‫أى ‪ expression‬قيمته بتتفهم‬ ‫”‪“hello world‬‬ ‫حرفيا من كتابته اسمه ‪literal‬‬ ‫381‬ ‫ال ‪ assignment‬نفسها عبارة عن‬ ‫5=‪B‬‬ ‫‪ expression‬قيمته هى نفس قيمة‬ ‫5 = ‪A= B‬‬ ‫الحاجةاللى باحطها فى ال ‪variable‬‬ ‫)فى المثال الول قيمة ‪ B‬هى 5 وفى المثال‬ ‫الثانى قيمة ‪ A‬هى 5 كما قيمة ‪(B‬‬ ‫هنا ‪expression‬‬ ‫;) ) ‪cout << sin( cos( x‬‬ ‫فى صورة استدعاء‬ ‫‪function‬‬
  • 3.
    ‫‪Declarations & Definitions‬‬ ‫ال ‪ declaration‬مجرد إعلن إن فى حاجة موجودة‬ ‫دون أن يشترط تعريفها‬ ‫; )( ‪void Greeting‬‬ ‫كدة أعلنت إن فيه ‪function‬‬ ‫اسمها ‪ Greeting‬ووصفتها‬ ‫عاملة ازاى .......‬ ‫)( ‪void main‬‬ ‫{‬ ‫و بكدة ال ‪ main‬بقت شايفاها‬ ‫وقادرة تستخدمها .......‬ ‫;)(‪Greeting‬‬ ‫}‬ ‫)( ‪void Greeting‬‬ ‫.....مع إنى‬ ‫ىّ‬ ‫{‬ ‫أصل معرفها بعد ال ‪main‬‬ ‫;”‪cout << “yahla‬‬ ‫}‬
  • 4.
    ‫‪Booleans & Conditions‬‬ ‫• ال ‪ ++c‬فيها ‪ data type‬اسمه ‪ bool‬مالوش إل قيمتين:‪ ) true‬معناها صح ( و ‪false‬‬ ‫) معناها خطأ (.‬ ‫• ال ‪ operators‬اللى زى == , > , < , =! .... بترجع ‪ true‬أو ‪false‬‬ ‫• مش بس ال ‪ bool‬معناها صح أو خطأ ، ده ال ++‪ C‬أحيانا بتعتبر الصفر معناها ”خطأ ” و أ ىّ قيمة غير‬ ‫ى‬ ‫الصفر معناها ”صح“.‬ ‫مش هايتنفذوا‬ ‫هايتنفذوا‬ ‫)0( ‪•if‬‬ ‫)‪•if (true‬‬ ‫{‬ ‫{‬ ‫.....‬ ‫....‬ ‫}‬ ‫}‬ ‫}....{ ) ‪•while ( false‬‬ ‫}....{ )51(‪•while‬‬ ‫)'‪•if ('q‬‬ ‫}....{ )84-84( ‪•if‬‬ ‫{‬ ‫....‬ ‫خد بالك ال ‪ ASCII‬بتاع‬ ‫}‬ ‫حرف ال‬ ‫‪ !! q‬مش صفر‬
  • 5.
    If ‫ بترجع لك قيمة‬if expression ‫ال‬ ‫ممكن تنفذ بيها أوامر‬if statement ‫ال‬ if ( choice==5) x=a ? b : c ; { ‫? دى معناها اذا الشرط اللى قبلها اتحقق رجعلى‬ : ‫اللى بعد‬c ‫اللى بعدها اذا لم يتحقق رجعلى القيمة‬b ‫القيمة‬ cout << “the result is” <<x ; Max = (a>b) ? a : b ; } if ( done ) cout << (y==0) ? “zero” : “nonzero” ; return 0 ; if (a==b) cout << y ? “zero” : “nonzero” ; {cout << “they‘re equal” ;} else{ cout << “they aren’t equal ” ;}
  • 6.
    ‫‪While loops‬‬ ‫;0 =‪int x‬‬ ‫) 01 < ‪while ( x‬‬ ‫الول بيحسب ال‬ ‫.1‬ ‫طباعة‬ ‫)شرط( ‪while‬‬ ‫; ‪{cout <<x‬‬ ‫الرقام من‬ ‫‪ Condition‬لو طلع 0 أو‬ ‫{‬ ‫‪false‬‬ ‫; ++‪x‬‬ ‫0ل9‬ ‫شوية كود‬ ‫يخرج ويكمل البرنامج‬ ‫}‬ ‫من بعد ال ‪while‬‬ ‫}‬ ‫) )(‪while ( test‬‬ ‫لحظ إن هنا بينادى على ال‬ ‫باقى البرنامج‬ ‫2. بس لوطلع ال ‪condition‬‬ ‫‪ function‬المسماه ‪test‬‬ ‫} ;) (‪{ DoJob‬‬ ‫صح يعمل حاجتين :‬ ‫كل مرة يحسب فيها الشرط‬ ‫• ينفذ الكود اللى جوه ال ‪. while‬‬ ‫) ‪while( A>B‬‬ ‫مش لزم قوسين حوالين‬ ‫• يبتدى الخطوة ) 1 (‬ ‫‪ code‬لو كانت‬ ‫++‪B‬‬ ‫‪ statement‬واحدة لكن‬ ‫من الول ، ويبدأ يكرر‬ ‫القواس أوضح‬ ‫الموضوع ده لغاية ما ال ‪condition‬‬ ‫يبقى غلط .‬ ‫; )01<‪while ( x‬‬ ‫حاسب !!! هنا ال ‪ code‬بتاعة‬ ‫;++‪x‬‬ ‫ال ‪ while‬فاضية !‬
  • 7.
    ‫‪for loops‬‬ ‫)حاجة بتحصلفى الول ; شرط بنجربه قبل كل خطوة ;حاجة بتتنفذ بعد كل خطوة ( ‪for‬‬ ‫1.كل أجزاء ال ‪ for‬اختيارية .‬ ‫{‬ ‫‪code‬‬ ‫) ; ; ( ‪for‬‬ ‫}‬ ‫{‬ ‫ده‪infinite loop‬‬ ‫;”‪cout <<“hi‬‬ ‫)++‪for (int i= 0; i<10; i‬‬ ‫9‬ ‫عد تصاعدى من 0‬ ‫ىّ‬ ‫}‬ ‫;‪cout << i‬‬ ‫)++‪for (int i=10; i>= 1; i‬‬ ‫1‬ ‫عد تنازلى 01‬ ‫ىّ‬ ‫;)++‪for (int i=0; i<10 ; i‬‬ ‫;‪cout << i‬‬ ‫) ممكن يتعمل بكذا طريقة(‬ ‫هنا ال ‪ code‬بتاعة ال ‪ loop‬فاضية‬ ‫)‪for (α ; β ; Δ‬‬ ‫)‪for ( Node * n=lst -> head; n!=Null; n=n -> next‬‬ ‫}‪{code‬‬ ‫قبل‬ ‫2. أى ‪ for‬يمكن‬ ‫{‬ ‫;‪α‬‬ ‫تحويلها إلى‬ ‫مثال على المرور على كل العناصر فى‬ ‫) ‪while( β‬‬ ‫‪ while‬عن طريق‬ ‫;‪cout << n -> value‬‬ ‫{‬ ‫بعد‬ ‫‪code‬‬ ‫التحويل التى :‬ ‫}‬ ‫‪Linked list‬‬ ‫‪Δ‬‬ ‫}‬
  • 8.
    ‫تفاصيل عن ال‪statements‬‬ ‫بعض أنواع ال ‪statement‬‬ ‫تحكمية‬ ‫ةّ‬ ‫فارغة‬ ‫مركبة‬ ‫بسيطة‬ ‫‪Control flow‬‬ ‫{‬ ‫‪or‬‬ ‫;‬ ‫زى ال ‪while , if , for‬‬ ‫} ;6 = ‪{ int x= 5, y‬‬ ‫;5 ‪cout‬‬ ‫}‬ ‫ال ‪ while , if , for‬يأتى فى آخرها ‪ statement‬يمكن أن يكون نوعها أى نوع من النواع الربعة السابقة :‬ ‫)9 ‪if (x‬‬ ‫ال ‪ if‬بعدها‬ ‫)++‪for( int i = 0; i 10; i‬‬ ‫;‪cout x‬‬ ‫‪ statement‬بسيطة‬ ‫)‪if( i % j‬‬ ‫كل ‪statement‬هنا‬ ‫فى آخرها‬ ‫) )( ‪while( checking‬‬ ‫‪ statement‬تحكمية‬ ‫ةّ‬ ‫)5 ‪if (x‬‬ ‫ال ‪ if‬بعدها‬ ‫ما عدا آخر واحدة.‬ ‫;)(‪dojob‬‬ ‫;‬ ‫‪ statement‬فارغة‬ ‫ال ‪ for‬فى آخرها ‪ if‬و ال ‪ if‬نتيجتها ‪while‬‬ ‫‪else‬‬ ‫وال ‪ else‬بعدها‬ ‫‪ statement‬مركبة‬ ‫ةّ‬ ‫وال ‪ while‬الكود بتاعتها ‪ statement‬بسيطة) مناداة ‪.( function‬‬ ‫};--‪{x++; y‬‬
  • 9.
    ‫نوع كل‬ ‫اسم‬ ‫المتغير‬ ‫عدد‬ ‫‪Arrays‬‬ ‫عنصر‬ ‫العناصر‬ ‫; ]001[ 1‪int a‬‬ ‫تعريف ‪ array‬جديد‬ ‫ازاى أجيب العنصر رقم كذا :‬ ‫]5[ ‪arr‬‬ ‫[ ال ‪ index‬اللى ما بين القواس‬ ‫]‪v [i‬‬ ‫ممكن يكون أى ‪expression‬‬ ‫] )( ‪homes [ get_names‬‬ ‫طالما بيجيب فى الخر عدد صحيح‬ ‫)سواء ‪ ... long , int‬الخ( ]‬ ‫;]‪cout a [i‬‬ ‫باقراه .....‬ ‫باتصرف مع العنصر‬ ‫رقم كذا على إنه‬ ‫..و احط فيه قيمة..... ;”‪names [5]= “samy‬‬ ‫........وممكن أزوده.‬ ‫زى أى متغير عادى‬ ‫;++ ]‪Frequency [x‬‬
  • 10.
    ‫‪functions‬‬ ‫ال ‪Function‬‬ ‫عامله زى برنامج صغير ممكن تناديه باسمه بدل ما تكتب الكود بتاعه كل شويه من الول‬ ‫)‪int add (int x, int y‬‬ ‫{‬ ‫;‪return x + y‬‬ ‫ده ‪function definition‬‬ ‫}‬ ‫)(‪void main‬‬ ‫{‬ ‫;)64 ,81(‪cout add‬‬ ‫ده ال ‪function application‬‬ ‫اللى باستغل فيه ال ‪ function‬المتعرفة‬ ‫;‪cout GOOD BYE‬‬ ‫}‬ ‫لما ال ‪ add‬تخلص شغلها البرنامج هيكمل ال ‪ main‬من مطرح ما وقف‬ ‫ده اسمه ”رجوع ال ‪ ” function‬أو ”‪” function return‬‬ ‫لو ال ‪ function‬ندهت ‪ function‬تانيه برضه البرنامج بيرجع بعد كده يكمل الولنيه‬
  • 11.
    ‫‪Parameters‬‬ ‫)‪int add( intx, int y‬‬ ‫• ال “‪ ”y‬و ال‪ “”x‬اسمهم ‪formal parameters‬‬ ‫{‬ ‫و دول متغيرات بتشيل القيم المبعوته لل ‪function‬‬ ‫;‪return x + y‬‬ ‫}‬ ‫)(‪void main‬‬ ‫{‬ ‫• ال ‪actual parameters‬‬ ‫;01 = ‪int x‬‬ ‫هى ‪expressions‬‬ ‫;)01+ ‪cout add(18 , x‬‬ ‫بتتحسب قيمتها لما تيجى ال ‪ function‬تتنادى ِ‬ ‫}‬ ‫القيم المحسوبه دى ) زى”81“ أو ”02“فى المثال( اسمه•‬ ‫ال‪ arguments‬و بتتبعث لل ‪ function‬عشان‬ ‫تتخزن فى ال ‪formal parameters‬‬ ‫لو عايز ممكن تعمل‪ function‬من غير‪parameters‬‬ ‫بس لما تناديها لزم تحط اقواس برضه زى كده‬ ‫) (‪DoStuff( ) , f‬‬
  • 12.
    ‫‪Return values‬‬ ‫ال‪ return values‬معناها ”القيمه المعاده ”لنه لما تنادى ‪ function‬زى ال ‪ add‬مثل و هى خلصت و‬ ‫البرنامج هيكمل من مطرح ما اتنادت ممكن ساعتها البرنامج يجيب معاه القيمه اللى حسبتها ‪ add‬قبل ما تخلص‬ ‫ازاى تخلى ال ‪ function‬ترجع قيمه؟‬ ‫الستفاده من ال ‪return values‬‬ ‫لو ال ‪ function‬ليها ‪ return value‬يبقى‬ ‫)‪int sign_of( int value‬‬ ‫كلمه‬ ‫ال ‪ function application‬ينفع نعامله زى‬ ‫{‬ ‫كذا ‪return‬‬ ‫‪ expression‬له قيمه و أقدر أعمل بيه أى حاجه‬ ‫)0 == ‪if (value‬‬ ‫ممكن تتعمل ب ‪: expression‬‬ ‫;0 ‪return‬‬ ‫معناها وقف ال‬ ‫)0‪if ( value‬‬ ‫‪function‬‬ ‫;)‪int x = add(a, b‬‬ ‫;1 ‪return‬‬ ‫• أخزن قيمته‬ ‫)0‪if ( value‬‬ ‫و ارجع للمكان اللى ال‬ ‫;1- ‪return‬‬ ‫‪function‬‬ ‫21 = ] )(‪a[ get_position‬‬ ‫}‬ ‫اتنادت منه و خلى ال‬ ‫• استخدمه ك ‪index‬‬ ‫فى ‪array‬‬ ‫‪ return value‬هناك‬ ‫قيمتها ) كذا (‬ ‫) )‪f( g(X‬‬ ‫مش محتاجين نقول هنا‬ ‫• ابعته ‪parameter‬‬ ‫‪ else‬عشان كلمه ‪return‬‬ ‫ل ‪ function‬تانية‬ ‫كده كده هتوقف ال ‪function‬‬
  • 13.
    ‫ازاى تخلى ال‪ function‬ترجع قيمه؟‬ ‫الستفاده من ال ‪return values‬‬ ‫)‪int sign_of( int value‬‬ ‫لو ال‪ function‬نوعها ‪ void‬يبقى‬ ‫{‬ ‫ماينفعش استخدمها ك ‪ expression‬له‬ ‫)0 == ‪if (value‬‬ ‫قيمة لنها معدومة ال ‪return value‬‬ ‫;0 ‪return‬‬ ‫)0‪if (value‬‬ ‫;1 ‪return‬‬ ‫)(‪void f‬‬ ‫)0‪if (value‬‬ ‫{‬ ‫;1- ‪return‬‬ ‫.............‬ ‫}‬ ‫}‬ ‫)(‪void main‬‬ ‫الكود ده غلط‬ ‫{‬ ‫لو كتبته وحش‬ ‫على فكره مش محتاجين نقول هنا ال ” ‪” if‬‬ ‫;)(‪cout f‬‬ ‫ال‪ bugs‬هياكلك‬ ‫الثالثه و ممكن نقول مكانها‬ ‫}‬ ‫”1- ‪”return‬‬ ‫على طو ل‬