تتطلب هياكل صنع القرار أن يحدد المبرمج شرطًا واحدًا أو أكثر ليتم تقييمه أو اختباره بواسطة البرنامج ، جنبًا إلى جنب مع عبارة أو عبارات يتم تنفيذها إذا تم تحديد الشرط على أنه صحيح ، واختياريًا ، عبارات أخرى يتم تنفيذها إذا كان تم تحديد الشرط كاذب.

فيما يلي الشكل العام لهيكل صنع القرار النموذجي الموجود في معظم لغات البرمجة –

يوفر MATLAB الأنواع التالية من بيانات اتخاذ القرار. انقر على الروابط التالية للتحقق من تفاصيلها –

الأب رقم. البيان والوصف
1 if … end statement

 

تتكون العبارة if … end من تعبير منطقي متبوعًا ببيان واحد أو أكثر.

2 if…else…end statement

يمكن أن يتبع عبارة if عبارة أخرى اختيارية يتم تنفيذها عندما يكون التعبير المنطقي خطأ.

3 If… elseif…elseif…else…end statements

يمكن أن يتبع بيان if واحد (أو أكثر) اختياري آخر … وبيان آخر ، وهو أمر مفيد جدًا لاختبار الشروط المختلفة.

4 nested if statements

يمكنك استخدام جملة if or elseif داخل أخرى if or elseif statement (s).

5 switch statement

التبديل يسمح بيان متغير لفحصها من أجل المساواة ضد قائمة القيم.

6 nested switch statements

 

يمكنك استخدام عبارة تحويل واحدة داخل عبارة (عبارات) تحويل أخرى .

 

و إذا … نهاية يتكون بيان من إذا البيان وجاء تعبير منطقي تصريحات واحدة أو أكثر. يتم تحديده بواسطة بيان النهاية .

بناء الجملة

إن بناء جملة if if في MATLAB هو –

 

if <expression>
   % statement(s) will execute if the boolean expression is true 
   <statements>
end


إذا تم تقييم التعبير إلى “صواب” ، فسيتم تنفيذ كتلة التعليمات البرمجية داخل العبارة if. إذا تم تقييم التعبير على أنه خطأ ، فسيتم تنفيذ أول مجموعة من التعليمات البرمجية بعد عبارة النهاية.

مخطط تدفق

 

مثال

قم بإنشاء ملف نصي واكتب الكود التالي –

 

a = 10;
% check the condition using if statement 
   if a < 20 
   % if condition is true then print the following 
      fprintf('a is less than 20\n' );
   end
fprintf('value of a is : %d\n', a);

 

عند تشغيل الملف ، يتم عرض النتيجة التالية –

 

a is less than 20
value of a is : 10

 

 

 

if…else…end

يمكن أن يتبع عبارة if عبارة أخرى اختيارية يتم تنفيذها عندما يكون التعبير خاطئًا.

بناء الجملة

إن بناء جملة if … else في MATLAB هو –

 

 

if <expression>
% statement(s) will execute if the boolean expression is true
<statement(s)>
else
<statement(s)>
% statement(s) will execute if the boolean expression is false
end

إذا تم تقييم التعبير المنطقي على أنه صحيح ، فسيتم تنفيذ كتلة التعليمات البرمجية إذا ، وإلا سيتم تنفيذ كتلة التعليمات البرمجية.

 

مخطط تدفق

blank

 

مثال

قم بإنشاء ملف نصي واكتب الكود التالي –

 

a = 100;
% check the boolean condition 
   if a < 20 
      % if condition is true then print the following 
      fprintf('a is less than 20\n' );
   else
      % if condition is false then print the following 
      fprintf('a is not less than 20\n' );
   end
   fprintf('value of a is : %d\n', a);

 

عندما يتم تجميع الكود أعلاه وتنفيذه ، فإنه ينتج النتيجة التالية –

 

a is not less than 20
value of a is : 100


if … elseif … elseif … else … نهاية الكشوف

و إذا يمكن اتباعها بيان من جانب واحد (أو أكثر) اختياري ELSEIF … و آخر بيان، وهو أمر مفيد جدا لاختبار مختلف الظروف.

عند استخدام عبارات if … elseif … else ، هناك نقاط قليلة يجب وضعها في الاعتبار –

  • إذا كان يمكن أن يكون صفرًا أو واحدًا آخر ويجب أن يأتي بعد أي شيء آخر.
  • إذا كان يمكن أن يكون صفرًا للكثير من الأشياء الأخرى ويجب أن يأتوا قبل الآخر.
  • مرة أخرى إذا نجحت ، لن يتم اختبار أي من المتبقيين الآخرين أو الآخرين.

 

بناء الجملة

if <expression 1>
   % Executes when the expression 1 is true 
   <statement(s)>

elseif <expression 2>
   % Executes when the boolean expression 2 is true
   <statement(s)>

Elseif <expression 3>
   % Executes when the boolean expression 3 is true 
   <statement(s)>

else 
   %  executes when the none of the above condition is true 
   <statement(s)>
end

مثال

قم بإنشاء ملف نصي واكتب الكود التالي فيه –

 

a = 100;
%check the boolean condition 
   if a == 10 
      % if condition is true then print the following 
      fprintf('Value of a is 10\n' );
   elseif( a == 20 )
      % if else if condition is true 
      fprintf('Value of a is 20\n' );
   elseif a == 30 
      % if else if condition is true  
      fprintf('Value of a is 30\n' );
   else
      % if none of the conditions is true '
      fprintf('None of the values are matching\n');
   fprintf('Exact value of a is: %d\n', a );
   end

عندما يتم تجميع الكود أعلاه وتنفيذه ، فإنه ينتج النتيجة التالية –

 

None of the values are matching
Exact value of a is: 100



The Nested if

من القانوني دائمًا في MATLAB تداخل عبارات if-else مما يعني أنه يمكنك استخدام جملة if أو elseif داخل أخرى إذا كانت أو عبارات ifif.

بناء الجملة

بناء الجملة إذا كانت العبارة متداخلة كما يلي –

 

if <expression 1>
   % Executes when the boolean expression 1 is true 
   if <expression 2>
      % Executes when the boolean expression 2 is true    
   end
end


يمكنك التعشيش إذا كان آخر … بالطريقة نفسها التي تداخلت بها إذا كانت العبارة.

مثال

قم بإنشاء ملف نصي واكتب الكود التالي فيه –

 

a = 100;
b = 200;
   % check the boolean condition 
   if( a == 100 )
   
      % if condition is true then check the following 
      if( b == 200 )
       
         % if condition is true then print the following 
         fprintf('Value of a is 100 and b is 200\n' );
      end
       
   end
   fprintf('Exact value of a is : %d\n', a );
   fprintf('Exact value of b is : %d\n', b );



عند تشغيل الملف ، يتم عرضه –

 

Value of a is 100 and b is 200
Exact value of a is : 100
Exact value of b is : 200