מבוא למחשב במטלב הרצאה :7 מבני בקרה מבוסס על שקפים שחוברו ע"י שי ארצי , גיתית רוקשטיין , איתן אביאור , סאהר אסמיר , טל כהן ורון.
Download ReportTranscript מבוא למחשב במטלב הרצאה :7 מבני בקרה מבוסס על שקפים שחוברו ע"י שי ארצי , גיתית רוקשטיין , איתן אביאור , סאהר אסמיר , טל כהן ורון.
בלטמב בשחמל אובמ
הרקב ינבמ : 7 האצרה
, רואיבא ןתיא , ןייטשקור תיתיג , יצרא יש י " ע ורבוחש םיפקש לע ססובמ רטניפ ןורו ןהכ לט , רימסא רהאס לארשיל יגולונכט ןוכמ – ןוינכטל תורומש תויוכזה לכ © .
ןרומ המלש ידי לע בתכנ
7 האצרה
טושפ יאנת קוספ
:
) if statement ( טושפ יאנת קוספ
•
if <
cond
>
statement_list
end
.
קוספה לש
יאנת
ה ארקנ אוה .
יגול ) יוטיב וא ( הנתשמ אוה
cond
ךרע םא קרו םא עצבתת .)
statement_list
םיקוספה תמישר םייקתמ יאנתה ( ) true ( 1 אוה
cond
יגולה יוטיבה • •
טלחומ ךרע בושיח : המגוד if x<0, x = -x, end
© תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 2
וכופיהו יאנת קוספ
7 האצרה :
) if-else statement ( וכופיהו יאנת קוספ
•
if <
cond
>
statement_list
1 else
statement_list
2 end
לש ךרעה םא עצבתת
statement_list
1
םיקוספה תמישר , (true) 1 אוה
cond
.
statement_list
2
םיקוספה תמישר עצבתת , תרחא • • © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 3
יגול ךרעמ לע הינתה : םיילוש תרעה
םייגול םיכרע לש ךרעמ היהי
>> x = [-4 -9 0]; if x<0, x = -x, end >> x x = -4 -9 0
cond
יאנתהש השרמ באלטמ
יאנת קוספב : בלטמב עבוקה ללכה
if cond statements end
.
true םה ויכרע לכו קיר וניא
cond
יגולה ךרעמה םא קר עצובי
statements
7 האצרה רלקס היהי cond יאנתהש ץלמומ : תנכתמל פיט © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 4
) ןק ןושלמ ( םיננוקמ הינתה יקוספ
?
ספא םה c ו b יכרע רשאכ אבה יאנתה קוספ עצבי המ •
if b~=2, if c>7, disp(‘success’), else disp(‘failure’) end , end
.
וזב וז תוננוקמה תוינתה המכ שי וב , " ןנוקמ " הינתה קוספ והז ."(" רגוסכ end לו ")" חתופכ if ל תוסחייתה י " ע וחנעפל ןתינ .
חונעיפה לע דאמ הלקמ " שמתשמל תיתודידי " הביתכ • • • 7 האצרה © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 7
) indentation ( החזה
if
.
שמתשמל תיתודידי הרוצב בותכ םדוקה ףקשהמ דוקה ןלהל .
לדבה םוש ןיא בשחמה תניחבמ
; םיישונא םיארוק רובע
רתוי רורב –
b~=2 if c >7 disp(‘success’), else end disp(‘failure’)
הנתומ ועוציבש דוקה עטק לכ .
הנימי זזומ יאנתה תונוכנב
end
• 7 האצרה smart indent תדוקפ ידי לע החזה עצבל ןתינ MATLAB ב * © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 8
7 האצרה
תפסונ המגוד – החזה
if (
cond
1 if ( )
cond
2 )
statement_list
1 else
statement_list
2 end else if ( else
cond
3 )
statement_list
3
statement_list
4 end end
© תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 9
7 האצרה
: ) if- elseif- else statement ( הבורמ הינתה
ןוניק תמר התואב תויורשפא לש והשלכ רפסמ ןיבמ הריחב if exp
1 ; st 1
: טפשמה הנבמ elseif exp
2 ; st 2
elseif exp
3 ; st 3 …
• • elseif exp
n ; st n
else stmt;
end
.) תמאה ךרעש הנושארה תוארוהה תרדס תעצבתמ ראשה לכ לע םיגלדמו ( true וניה םיאתמה
exp
ה לש stmt תועצבתמ true וניא תמא ךרע ףא םא • • © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 10
.
ןמיסה תיצקנופ בושיח : אמגוד
: איה x ישממ רפסמ לש sign(x) ןמיסה תיצקנופ sign(x) = -1 x<0 םא • sign(x) = 0 x=0 םא .
sign(x) = 1 x>0 םא if x<0 Sx=-1; elseif x==0 Sx=0; else % we must have that x>0 Sx=1 end 7 האצרה © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 11
םינתשמ לש ךרעמ לע " ןמיסה תייצקנופ " דוק תצרה
: היופצ יתלב האצות לבקנ םינתשמ ךרעמ לע דוקה תא ץירנ םא • >> x=[-5 -3 0]; >> if x<0 ;Sx= 1; elseif x==0 ; Sx=0; else Sx=1; end >> Sx
?
ספדוי המ
: ךרעמה ירבא לכ רובע ןמיסה תייצקנופ בושיח Sx = -(x<0) + (x>0) 7 האצרה © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 12
7 האצרה
ןיעטוקמל תיראיניל היצקנופ : המגוד
f היצקנופה לש הכרע
x
ירלקסה הנתשמה לש םוחת תת לכב הנוש תיראיניל היצקנופ י " פע עבקנ
if x<0; f=-x elseif x<4; f=2*x elseif x<10; f=1.5*x+2 elseif x<20; f=-x+27 else f=7; end
' וכו סמ תואלבט בושיחב שמשל לוכי • • © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 13
7 האצרה
?
םינתשמ לש ךרעמ לע תינכתה ץורת ךיא
: היוגש האצות לבקנ םינתשמ ךרעמ לע דוקה תא ץירנ םא • >> x=[-5 10 30]; >> if x<0; f=-x; elseif x<4; f=2*x; elseif x<10; f=1.5*x+2; elseif x<20; f=-x+27; else f=7; end >> f f = 7 .
x
ךרעמה
לע םינושה םיאנתה תונוכנ תרדגומ וב ןפואב הצוענ הביסה , םדוק ומכ © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 14
םינתשמ ךרעמ לע היצקנופה בושיח
יקוספ אלל בושיחה תא עצבל ףידעו ןתינ םעפה םג : ונדמלש ןועימ תוטישב שומיש י " ע , ללכ הרקב • 7 האצרה a = [ 10, -9, 29, 5, 2, 13 ]; f = zeros(1,length(a));% allocate space for f, to save time f(a<0) = -a(a<0); f(a>=0&a<4) = 2*a(a>=0&a<4); f(a>=4&a<10) = 1.5*a(a>=4&a<10)+2; f(a>=10&a<20) = -a(a>=10&a<20) + 27; f(a>=20) = 7; © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 15
תופולח קוספ
:
) switch statement ( תופולח קוספ switch ( case
statement_list
case
statement_list
case case
expr expr expr expr
1 2 3 4
expr
)
statement_list statement_list
1 2 3 4
וא רלקס רידגמה יוטיב אוה .) רחא גוסמ ךרעמ אל ךא (
expr
תזורחמ .
םיכרע רפסמ ליכהל לוכי
expr
i הזב הוושומ :
expr
i
expr
יוטיבה ךרע ב םיכרעל הז רחא , תמאות האוושהה םיוסמ i רובע םא םיקוספה תמישר עצבתת דימ יזא לכ – –
statement_list
i תופולחה קוספ עוציב םייתסי הזבו .
ולוכ
• • • otherwise
statement_list
0 end
7 האצרה םיקוספה תמישר עצבתת , תרחא .) תמייק םא (
statement_list
0 © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ – 16 • • •
7 האצרה
תופולח קוספל המגוד
>> name = ‘shir'; >> switch name case {'ali' 'yakov' 'dudu'} gender='boy' case {'alia' 'dvora' 'rivka'} otherwise gender = 'girl' gender= 'unknown' end gender = unknown © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 17
תואלול
.) loop (
האלול
ארקנ םימעפ רפסמ עצבתמה דוק עטק .) iteration ( היצרטיא ארקנ האלולה יעוציבמ דחא לכ : תואלול עוציב םירשפאמה םיטפשמ ינש םימייק םייקתמש ןמז לכ תועצובמ תויצרטיאה :
while
Matlab statement הרקב יאנת – ב עבקנ עצובת היצרטיאהש םימעפה רפסמ :
for
statement .
שארמ – • • • 7 האצרה © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 20
while תאלול
expression
0 1
statements
while < logical expression
> statements
end
: הרוצהמ טפשמ והז
< logical expression
>
ב יאנתה דוע לכ .
statements
ה תא םיעצבמ , םייקתמ רבכ םייקתמ אל
< logical expression
>
.
תחא םעפ וליפא עצובי אל statement יזא , םא הלחתההמ רחאל שדחמ קדביי
< logical expression
.
statements -
>
ה לש לש וכרע
עוציב לכ
– – • • לש ךרעמ תויהל יושע
< logical expression
>
, ןאכ םג .
םייגול םיכרע • 7 האצרה © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 21
factrial=1; k=1; while k <= n factrial=factrial*k; k=k+1; end;
תרצע בושיח : אמגוד
n! = 1*2*3* …*n : הרדגה 5! = 1*2*3*4*5 = , לשמל 120 הז תינכות עטק ,
n
ןתנהב ) תרצע
n
(
n!
תא בשחמ האצותה תא ןסכאיו .
factrial
ב 7 האצרה .
factorial הדוקפה ידי לע ) רהמ רתויו ( טושפ רתוי , באלטמב © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 22
...
חצנל ץורל תולולע תואלול
1 = = 1
1
0 while
1 = = 1 disp(‘great!’)
end
...
: האלולה תינוציח תוברעתה אלל רוצעת אל – • 7 האצרה , x ךרעו P תינכת ןתניהב : בשחמה יעדמב העודי היעב ?
x טלק לע םעפ יא רוצעת P תינכתה םאה ןתינ אלש חיכוהל ןתינו , " הריצעה תייעב " תארקנ וז היעב !!
בשחמ תועצמאב הרתפל © תורומש תויוכזה לכ Matlab. תפשב בשחמל אובמ 23
for תאלול
array finished?
no
Var next column Statements (var)
: הרוצהמ טפשמ והז • yes
for var = array
statements
end
תחא םעפ
statements array
תא םיעצבמ לש הדומע לכ רובעב אוה
var
.
לש ךרעה
array k
ה היצרטיאב לש k ה הדומעה – – , ידממ וד ךרעמ אוה
)
array םא , לשמל
array(:,k)
אוה הז ךרע ( 8 האצרה בלטמ תפשב בשחמל אובמ 24
אמגוד – for תאלול
8 האצרה :
k n
1
k
2 יוטיבה בושיח •
sm = 0; for k = 1:n sm = sm+k*k; end
: רתוי רהמ 10 יפ ךרעב , האלול אלל תאז עצבל ןתינ •
sm=((1:n).^2)*ones(n,1);
.
sum הדוקפה ידי לע ) רהמ רתויו ( טושפ רתוי דוע • בלטמ תפשב בשחמל אובמ 25