بتـــــاريخ : 2/13/2011 8:12:21 AM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 2961 0


    أسس كتابة الخوارزميات في ال Matlab

    الناقل : elmasry | العمر :42 | الكاتب الأصلى : بن العيد | المصدر : www.arabteam2000-forum.com

    كلمات مفتاحية  :
    أسس كتابة الخوارزميات Matlab

    السلام عليكم
    في الأسبوع الفارط قدمت
    سلسلة تمارين وحلول في الMatlab وكانت بمثابة تقديم لأسس كتابة الخوارزميات, في هذا الموضوع أعود لذلك بمزيد من التفاصيل والأمثلة التي من شأنها إن شاء الله أن تيسر كتابة الخوارزميات لحل إشكاليات متراوحة الصعوبات. والمقصود هنا بأسس كتابة الخوارزميات هو تنفيذ بعض التعليمات دون غيرها وفق شروط معينة, تكرار تنفيذ أوامر عدد معين من المرات أو إختيارت ترجمة جزء من الكود حسب الإختيار.
    الشرط في البرمجة هو متغير يكون له إحدى النوعان صواب أو خطأ وهو ما يعرف في البرمجة بشكل عام ب Boolean.

    if/esle
    في هذا الجزء من الدرس نختبر ما إن كان الشرط الصحيح فيقوم ببعض التعليمات وإن كان عكس ذلك يقوم بتنفيذ تعليمات أخرى. ليس إجباري أن يكون الجزء الثاني متواجد ولكن إضافته تيسر تتبع الإستثناآت في ترجمة الكود أو تنفيذ تعليمات أخرى.

    if condition
      statements A
    else
     statements B
    end

    هنا تجسيد لعمل الخوارزمية حيث الجزء "خروج" يعني الخروج من ركن إختبار الشرط الذي تم تحديده وليس بالضرورة خروج من البرنامج.

    ارفق صورة : monthly_09_2007/post-91400-1191089276.jpg

    مثال:
    a=10;

      % if without else
     if(a==10)
      disp('Yes a is equal to 10');
     end

     % if with else
    if(a==20)
            disp('Yes, a is equal to 10');
      else
      disp('No, a is different to 10');
    end

    من الممكن القيام بإختبار على شرط ما داخل إختبار آخر. إذا تحقق الشرط الأول يتم المرور الى الشرط الثاني المتواجد داخله والذي يفهمه المترجم على أنه جزء من تعليمات الشرط الأول.
    if condition1
       if condition2
             statements A
       end
      else statements B
    end

    ارفق صورة : monthly_09_2007/post-91400-1191088425.jpg

    b=14;
       clc
    if((a<15) & (a>2))
             if(b˜=14)
               disp('Second conditions satisfied');
             end
                     disp('First conditions satisfied');
       else
             disp('no conditions satisfied');
    end


    if/esleif/else
    أحيانا تتداخل الشروط وتترابط ببعضها ويصبح الكود السابق غير ناجع بما فيه الكفاية, لذلك أقدم في هذا الجزء من الدرس نوعية أخرى من الخوارزمية تستجيب لذلك.
    if condition1
            statements A
     elseif condition2
             statements B
     elseif condition3
             statements C
               ...
     else
             statements E
     end

    ارفق صورة : monthly_09_2007/post-91400-1191091367.jpg

    مثال:
    a=input('Please enter a number: ');
       if(a==20)
              disp('a is equal to 20');
       elseif (a==15)
               disp('a is equal to 15');
            elseif (a==10)
               disp('a is equal to 10');
            else
              disp('unexpected a');
     end


    ارفق صورة : monthly_10_2007/post-91400-1191435560.jpg
    لإجتناب مثل هذا العمل الآلي والمضني خاصة عند تعدد الشروط, يوفر الماطلاب كباقي لغات البرمجة إمكانية إستعمال طريقة الSwitch. كلتا الطريقتين توفر نفس النتيجة وهو ما يعلله الرسم التجسيدي للخوارزميتين ولكن في الطريقة الأولى يتم إختبار كافة الشروط الى أن يصل الى الشرط الناجح في حين أن الطريقة الثانية يتم الإنتقال مباشرة إلى الحالة المعنية أو "التلقائي" إذا لم تستجب أي حالة من الحالات المستعرضة لقيمة المتغير المعني.

    Switch
    switch Input
      case val_A
              statements  A
      case val_B
              statements B
      case val_C
             statements C
               ...
      otherwise
            statements Z
    end

    ارفق صورة : monthly_09_2007/post-91400-1191086959.jpg

    مثال:
    a=input('Please select a number');
     switch a
      case 1  
            disp('you selected 1.')
      case 2
            disp('you selected 2.')
      case 3
            disp('you selected 3.')
      case 4
      disp('you selected 4.')
      otherwise
      disp('Unknown selection.')
    end



    for
    تمكن إستعمال الكلمة المفتاح for من إجتناب إعادة كتابة تعليمات ما عدة مرات ويكفي كتابة تلك التعليمات داخل نص الحلقة وتحديد عدد مرات التكرار المرموز له ب "ح" في الرسم الموالي. عند بدأ تنفيذ الحلقة يأخذ متغير الحلقة "س" القيمة الأولية المسندة ويزيدها (ينقص منها) الخطوة حتي يصل الى قيمة الحد "ح". القيمة التلقائية للخطوة تساوي 1 ويمكن تعديلها كما هو في المثال.
    مثال:
    for i=0:.1:10
       a=i
     end


    ارفق صورة : monthly_10_2007/post-91400-1191438106.jpg


    while
    while condition,
     Statements
     end


    مثال:
     
     a=input('Please choose a number a: ');
      while a<0,
       a=input('Please choose a postive number a: ');
      end

    كلمات مفتاحية  :
    أسس كتابة الخوارزميات Matlab

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