תכנות נומרי עם Matlab ו-Octave/משפטי תנאי: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
שומבלע (שיחה | תרומות)
מבוסס על שפת C/ביטויים בוליאניים ותנאים. המשך יבוא..
 
שומבלע (שיחה | תרומות)
אין תקציר עריכה
שורה 24:
 
===else===
 
===else===
לפעמים צריך לציין הן מה לעשות כשתנאי מתקיים, והן מה לעשות כשאינו מתקיים. במקרה זה אפשר להשתמש בתנאי if / else.
<source lang = "c">
שורה 39:
 
לדוגמה:
<source lang = "cmatlab">
if(x==6)
y += 2;
else
y = 8;
end
</source>
יחבר 2 לy אם x == 6, ויקבע את ערכו של y ל8 אם ערכו של x אינו 6.
 
===else ifelseif===
לפעמים צריך לציין הן מה לעשות כשתנאי מתקיים, והן מה לעשות כשאינו מתקיים, אך תנאי אחר כן מתקיים. במקרה זה אפשר להשתמש בתנאי if / else ifelseif.
<source lang = "cmatlab">
if(<condition>)
<action>
else ifelseif(<alternative_condition>)
<alternative_action>
end
</source>
כאן condition הוא תנאי, action הוא פקודה (או בלוק) לביצוע אם התנאי מתקיים, alternative_condition הוא תנאי לבדיקה אם condition הוא שקר, וalternative_action הוא פקודה (או בלוק) לביצוע אם condition הוא שקר אך alternative_condition הוא אמת.
 
לדוגמה:
<source lang = "cmatlab">
if(x==6)
y += 2;
else if(x % 2 == 0)
y = 8;
end
</source>
יחבר 2 לy אם x == 6, ויקבע את ערכו של y ל8 אם ערכו של x אינו 6 אך x זוגי.
 
 
===שילובי if / else ifelseif / else===
 
ניתן לשלב בין שלושת תנאי הבקרה שראינו. המבנה הכללי ביותר הוא:
# תנאי if, שלאחריו
# אפס או יותר תנאי if elseifelse, שלאחר האחרון שבהם (אם יש כאלה)
# תנאי else
 
 
==אופרטור התניה==
אופרטור התניה מאפשר לציין ערך שתלוי בתנאי כלשהו. אופן כתיבתו הוא בצורה:
<source lang = "c">
<condition>? <true_value> : <false_value>
</source>
כאשר condition הוא ביטוי בוליאני, true_value הוא הערך אם condition תקף, וfalse_value הוא הערך אחרת. לדוגמה
<source lang = "c">
a == 3? 1 : 2
</source>
הוא בעל הערך 1 אם a אכן שווה ל3, והוא בעל הערך 2 אחרת.
 
חשוב להבין שאפשר להשתמש באופרטור התניה כערך לכל דבר. לדוגמה, ניתן לכתוב:
<source lang = "c">
int b = a == 3? 1 : 2;
</source>
וכן
<source lang = "c">
prinf("%s is the winner", a > 5? "moshe" : "yaakov");
</source>
 
==switch-case==
שורה 99 ⟵ 82:
switch-case הוא סוג נוסף של משפט בקרה.
המבנה שלו הוא מהצורה:
<source lang = "cmatlab">
switch(<expression>)
{
case <value_0>:
<action_0>
שורה 112 ⟵ 94:
<action_default>]
<default_action>
end
}
</source>
כאשר:
שורה 126 ⟵ 108:
 
התכנית הבאה מדגימה את השימוש בswitch:
<source lang = "cmatlab">
#include <stdio.h>
 
int main()
{
char rep;
printfx=input("'Click a number between 1 and 4" ','s');
switch x
case '21':
rep = getchar();
printf disp("'You clicked 21, have a nicegood day"');
case '32':
switch(rep)
printfdisp("'You clicked 32, have a happynice day"');
{
case '13':
printf disp("You clicked 13, have a goodhappy day"');
break; case '4':
printfdisp("'You clicked 4, have a great day"');
case '2':
otherwise
printf("You clicked 2, have a nice day");
printf disp("'You did not click a number between 1 and 4"');
break;
end
case '3':
printf("You clicked 3, have a happy day");
break;
case '4':
printf("You clicked 4, have a great day");
break;
default:
printf("You did not click a number between 1 and 4");
return -1;
}
 
</source>
return 0;
}
</source