بتـــــاريخ : 11/8/2008 7:29:03 PM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 1157 0


    الدرس الثامن

    الناقل : mahmoud | العمر :35 | المصدر : www.kettaneh.net

    كلمات مفتاحية  :
    دروس لغة السي شارب

    في الدرس السابق تحدثنا عن عمليات اتخاذ القرار

    وأنها عادة ً ما تستخدم في تركيبة if أو تركيبة if/esle والتي هي محور حديثنا في هذا الدرس .
    تحتوي لغة C# على ثلاث أنواع من تراكيب الاختيار :
    if : تقوم باختيار الحدث وتنفيذه إذا كان الشرط صحيح (True) ، وتقفز عنه إذا كان الشرط خاطئ(false) ، وتدعى (single-selection structure) أي تركيبة الاختيار المنفرد .
    if/else : تقوم باختيار الحدث وتنفيذه إذا كان الشرط صحيح (True) ، وتنفذ حدث آخر إذا كان الشرط خاطئ(false) ، وتدعى (double-selection structure) أي تركيبة الاختيار الثنائية .
    switch : تقوم باختيار حدث وتنفيذه من بين مجموعة من الأحداث ، وتدعى
    ( multiple-selection structure ) .
    وثلاث أنواع من تراكيب التكرار :
    While , do/while , for , foreach وسنتعرف عليهم لاحقاً . أما في هذا الدرس فسنتعرف على تركيبة if وتركيبة if/else .

    ملاحظة :
    if , else , switch , While , do/while , for , foreach كلها كلمات محجوزة keywords
    والجدول التالي يذكر قائمة الكلمات المحجوزة في C# :

     

    وسنتعلم معظمها إن شاء الله خلال الدروس .
    والآن بسم الله نبدأ :

    1- تركيبة if للاختيار:
    وهي عبارة عن احتمالين إما تنفيذ ما تحتوي في حالة true أو عدم التنفيذ false .
    فلنفرض أن درجة للنجاح في امتحان هي 50 (الدرجة من 100) إذا ًَ خوارزمية التعبير أو الكود الوهمي (pseudocode) سيكون كما يلي :
     

    
    
     if student’s grade is grater than or equal to 50
    
    Print “Passed”
    
     


    إذا كانت درجة الطالب أكبر أو تساوي 50 سيطبع ناجح ، وإذا كانت درجة الطالب أقل من 50 تهمل جملة if وتنفذ الجملة التالية لها .
    والآن سنقوم بترجمة ال pseudocode إلى لغة C# حيث يفهمها ال Compiler :
     

    C#
     if   ( studentGrade >= 50)
    
            Console.WriteLine( “ Passed “) ;
    
    

     


    والشكل التالي يوضح عمل تركيبة if :

     

    2- تركيبة if/else للاختيار :
    وهي أيضا ً احتمالين لكن في كلا الحالتين يتم تنفيذ حدث ، وهذا يساعد المبرمج على تحديد حدثين مختلفين بالاعتماد على نتائج الشرط True أم False .
    فمثلا ً الكود الوهمي pseudocode التالي :

     

    
    
    If   student’s grade is greater than or equal to 50
    
    Print “ Passed “
    
    Else 
    
    Print “Failed “
    
      


    سيطبع ناجح (Passed) إذا تحقق الشرط True وهو أن الدرجة أكبر أو يساوي 50 .
    وسيطبع راسب (Failed) إذا لم يتحقق الشرط False وهو أن الدرجة أصغر من 50 .
    أي أنه لا يهمل جملة if أبدا ً ولا يخرج منها حتى يطبع شيء .
    والآن سنترجم هذا ال pseudocode إلى كود C# :
     

    C#
    if   (StudentGrade >= 50)
    
             Console.WriteLine( “ Passed “) ;
    
    else  
    
             Console.WriteLine( “ Failed “) ;

     

     

     

     


    والشكل التالي يوضع طريقة عمل تركيبة if/else الاختيارية :
     

     

     

    * وهناك طريقة أخرى لاستخدام تركيبة if/else وهي (? : ) ، وتحتوي على ثلاث جمل تنفيذية :
    جملة الشرط ، جملة التنفيذ الأولى في حالة تحقق الشرط True ، جملة التنفيذ الثانية في حالة عدم تحقق الشرط False ، فإذا أعدنا صياغة جملة if السابقة تصبح كالتالي :
     

    C#
    Console.WriteLine( StudentGrade >=  50  ? “ Passed “   :    “ Failed “); 



    * يمكن أيضا ً استخدام تركيبة if/else تركيبة if/else لتنفيذ جملة من عدد من الجمل ، فمثلا ً إذا فهمنا الكود الوهمي pseudocode التالي :

     

    
    
    If student’s grade is greater than or equal to 90
    
         Print “ A “
    
    Else 
    
          If student’s grade is greater than or equal to 80
    
               Print “ B “  
    
         Else 
    
               If student’s grade is greater than or equal to 70
    
                   Print “ C “
    
               Else
    
                   If student’s grade is greater than or equal to 60
    
                         Print “ D “
    
                   Else
    
                          If student’s grade is greater than or equal to 50
    
                                 Print “ E “
    
                          Else
    
                                 Print “ F “
    
      


    وحولناه إلى كود C# :
     

    C#
    
    
    if (studentGrade >= 90) 
    
          Console.WriteLine(" A "); 
    
    else  
    
          if (studentGrade >= 80) 
    
                Console.WriteLine(" B "); 
    
          else  
    
                if (studentGrade >= 70) 
    
                      Console.WriteLine(" C "); 
    
                else  
    
                      if (studentGrade >= 60) 
    
                             Console.WriteLine(" D "); 
    
                      else  
    
                             if (studentGrade >= 50) 
    
                                     Console.WriteLine(" E "); 
    
                             else  
    
                                     Console.WriteLine(" F ");


    سيقوم بتنفيذ جملة واحدة فقط لا محالة .
    ويمكن كتابة الكود بشكل أبسط :
     

    C#
    
    
    if (studentGrade >= 90) 
    
          Console.WriteLine(" A "); 
    
    else  if (studentGrade >= 80) 
    
    Console.WriteLine(" B "); 
    
    else  if (studentGrade >= 70) 
    
    Console.WriteLine(" C "); 
    
    else  if (studentGrade >= 60) 
    
    Console.WriteLine(" D "); 
    
    else  if (studentGrade >= 50) 
    
    Console.WriteLine(" E "); 
    
    else  
    
    Console.WriteLine(" F ");


    وكلاهما يعطي نفس النتائج .
    ملاحظة :
    * كل جملة else مرتبطة بجملة if سابقة لها .
    * إذا احتوت أي تركيبة على أكثر من جملة بداخلها يجب استخدام أقواس المجموعة ( { } ) ، أما إذا احتوت على تركيبة أخرى فقط فليس من الضروري استخدام أقواس المجموعة .
     

    C#
    
    
    if  ( x > 5 )
    
          if  ( y > 5 )
    
                  Console.WriteLine( “ x and y are > 5 “ ) ; 
    
          else  
    
                  Console.WriteLine( “ x is <= 5 “ ) ;
    
    


    في هذه الحالة else تعتبر تابعة لل if الثانية أي سيتم تنفيذ الجملة الثانية x is <= 5 في حال y <= 5 وقيمة x > 5 ، أم إذا كانت x <= 5 فستهمل هذه الجملة كلها .
    إذا أردنا جعل else تابعة لل if الأولى يجب وضع ما داخل ال if في أقواس كما يلي :
     

    C#
    
    
    if  ( x > 5 )
    
       {
    
          if  ( y > 5 )
    
                  Console.WriteLine( “ x and y are > 5 “ ) ; 
    
        }
    
    else  
    
          Console.WriteLine( “ x is <= 5 “ ) ;
    
    


    والآن تنفذ مجموع الجمل الأولى في حال x > 5 وجملة else في حال x <= 5

    كلمات مفتاحية  :
    دروس لغة السي شارب

    تعليقات الزوار ()