מבוא למחשב במטלב הרצאה :7 מבני בקרה מבוסס על שקפים שחוברו ע"י שי ארצי , גיתית רוקשטיין , איתן אביאור , סאהר אסמיר , טל כהן ורון.

Download Report

Transcript מבוא למחשב במטלב הרצאה :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