רקורסיה

43
ההההההה

Upload: magee-workman

Post on 03-Jan-2016

44 views

Category:

Documents


4 download

DESCRIPTION

רקורסיה. נכיר תופעות רקורסיביות ונזהה את המאפיינים שלהן נלמד כיצד לתאר תופעות רקורסיביות נכיר הגדרות רקורסיביות נלמד כיצד לנסח באופן רקורסיבי. מתיאור רקורסיבי לציור נתונים שלושה תיאורים רקורסיביים. לכל תיאור, ציירו את הציור המתאים לרמה 3. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: רקורסיה

רקורסיה

Page 2: רקורסיה

נכיר תופעות רקורסיביות ונזהה •את המאפיינים שלהן

נלמד כיצד לתאר תופעות •רקורסיביות

נכיר הגדרות רקורסיביות•נלמד כיצד לנסח באופן רקורסיבי•

Page 3: רקורסיה

מתיאור רקורסיבי לציור

נתונים שלושה תיאורים רקורסיביים. לכל תיאור, ציירו את הציור המתאים

.3לרמה

בנוי ממשולש N ברמה . מגדל1קטן יותר ברמה מגדל שעליו מונח

N-1 ., וצורתו 1המגדל הבסיסי הוא ברמה

.משולש

Page 4: רקורסיה

V בנוי מצורת N ברמה . עץ בינארי2עץ בינארי שבכל אחת מקצותיה

.N-1קטן יותר ברמה .V, וצורתו 1העץ הבסיסי הוא ברמה

Page 5: רקורסיה

בנוי מריבוע שבכל Nברמה . שטיח 3קטן יותר שטיח אחד מקדקודיו

.N-1ברמה , וצורתו 1השטיח הבסיסי הוא ברמה

ריבוע.

Page 6: רקורסיה

מתיאור רקורסיבי לביטוי מילולי

נתונים ארבעה תיאורים רקורסיביים. לכל תיאור, רשמו מספר ביטויים

המתאימים לתיאור.

הוא מילה שהאות . פלינדרום1הראשונה והאחרונה שלה זהות, ומה

קצר יותר. פלינדרוםשיש ביניהן הוא הפלינדרום הבסיסי מכיל אות אחת

)כרצונכם(.

Page 7: רקורסיה

מתחילה . מילה חוקית בשפת דג2באות ד' ומסתיימת באות ג', ומה

מילה חוקית שיש ביניהן הוא . המילה קצרה יותר בשפת דג

החוקית הבסיסית היא המילה הריקה )ללא תווים(.

Page 8: רקורסיה

, Aנפתח בתו . ביטוי חוקי 3, ומה שביניהם הוא Bמסתיים בתו

. הביטוי ביטוי חוקי קצר יותר .Cהחוקי הבסיסי הוא התו

Page 9: רקורסיה

, מסתיים Aנפתח בתו . ביטוי חוקי 4שני , ומה שביניהם הוא Bבתו

. ביטויים חוקיים קצרים יותר .Cהביטוי החוקי הבסיסי הוא התו

Page 10: רקורסיה

מציור לתיאור רקורסיבי. התבוננו במנורת הקנים ונסו לתת 1

לה תיאור רקורסיבי.

Page 11: רקורסיה

. התבוננו בתרשים העץ ונסו לתת 2לו תיאור רקורסיבי.

Page 12: רקורסיה

התבוננו בשעוני החול הבאים ונסו לתת להם תיאור רקורסיבי.

5 5 5 5 5 4 4 4 4 3 3 3 2 2 1 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5

Page 13: רקורסיה

מסדרה לתיאור רקורסיבי

לפניכם חמש סדרות של מספרים. לכל סדרה, מצאו לפחות נוסחה

שלה.nאחת לתיאור האיבר ה-

A: 2, 5, 8, 11, 14, 17, 20...

Page 14: רקורסיה

B: 1000, 100, 10, 1, 0.1, 0.01, 0.001...

C: 0, 3, 8, 15, 24, 35...

D: 1, 1, 2, 3, 5, 8, 13, 21...

E: 7, 15, 31, 63, 127, 255...

Page 15: רקורסיה

מאלגוריתם לפונקציה רקורסיבית

דוגמה ראשונה: סכום האברים ברשימה נפתח אלגוריתם רקורסיבי לחישוב סכום האברים

ברשימת מספרים. למשל, סכום האברים ברשימה

.25 ( הוא 1 4 3 10 2 5 )

Page 16: רקורסיה

מאלגוריתם לפונקציה רקורסיבית

דוגמה ראשונה: סכום האברים ברשימה נפתח אלגוריתם רקורסיבי לחישוב סכום האברים

ברשימת מספרים. למשל, סכום האברים ברשימה

.25 ( הוא 1 4 3 10 2 5 )

הפתרון:אם הרשימה ריקה אזי סכום האברים ברשימה

שווה ל- ......................אחרת, סכום האברים ברשימה )לא ריקה(

שווה לסכום של ............................................ ושל ..............................................................

..

Page 17: רקורסיה

דוגמה שנייה: סכום האברים הזוגיים ברשימה נפתח אלגוריתם רקורסיבי לחישוב סכום האברים

הזוגיים ברשימת מספרים. למשל, סכום ( 1 4 3 10 2 5האברים הזוגיים ברשימה )

.16הוא

Page 18: רקורסיה

דוגמה שנייה: סכום האברים הזוגיים ברשימה נפתח אלגוריתם רקורסיבי לחישוב סכום האברים

הזוגיים ברשימת מספרים. למשל, סכום ( 1 4 3 10 2 5האברים הזוגיים ברשימה )

.16הוא

הפתרון:אם הרשימה ריקה אזי סכום האברים הזוגיים

ברשימה שווה ל- ......................אחרת אם ערכו של האיבר הראשון ברשימה הוא

זוגי אזי סכום אברי הרשימה הזוגיים שווה לסכום

של ................... ושל ..........................................

אחרת, סכום האברים הזוגיים ברשימה שווה

ל ..........................................................

Page 19: רקורסיה

סיכום: חשיבה רקורסיבית

רקורסיה היא תופעה מיוחדת שמופיעה •בתחומים רבים.

של מושג היא הגדרה רקורסיבית•הגדרה שבה מגדירים את המושג בעזרת

הגדרה פשוטה יותר של אותו מושג.המושג יכול להיות ציור, מילה, סדרה •

חשבונית, מבנה, או תהליך.

Page 20: רקורסיה

הגדרה רקורסיבית מורכבת •בדרך-כלל משני חלקים:

)הפשוט( ביותר, המקרה הבסיסי.תנאי העצירהשנקרא גם

הקריאה , שנקרא גם המקרה הכללי.הרקורסיבית

Page 21: רקורסיה

מרכיבים של הגדרה רקורסיביתהגדרת מושג בעזרת אותו מושג •

"פשוט" יותרשמתאר אותושם חשוב לתת למושג •המקרה הבסיסי מתאר את ה"בסיס" •

או את המקרה הפשוט ביותר של התופעה או המושג

המקרה הכללי מתאר את התופעה •)המושג( בעזרת הגדרה פשוטה יותר

של אותה תופעה )מושג(

Page 22: רקורסיה

מרכיבים בסיסיים בפונקציה רקורסיבית

תנאי עצירה )מקרה בסיסי( שפועל על •אחד מהפרמטרים של הפונקציה

תנאי העצירה מגדיר מה מחזירה הפונקציה במקרה הפשוט ביותר )המקרה הבסיסי(.

קריאה רקורסיבית או צעד רקורסיבי •שגורם להפעלה החוזרת

שינוי הפרמטרים בקריאה הרקורסיבית •צריך להיות "בכיוון" של תנאי העצירה

אם אין שינוי בפרמטר המתאים, הפונקציה )התהליך( לא תעצר.

Page 23: רקורסיה

סוגי רקורסיה:

- יוצרת (tail recursion)רקורסית קצה •תהליך חישובי איטרטיבי )לולאה(

רקורסיה אמיתית )מלאה( - יוצרת •תהליך רקורסיבי מלא

רקורסיה לינארית )חד-ממדית( מכילה •קריאה רקורסיבית יחידה

רקורסיה מורכבת )רב-ממדית( מכילה •יותר מקריאה רקורסיבית אחת

Page 24: רקורסיה

מודלים

להסברת התהליך הרקורסיבי

תמי לפידות

יום עיון "רקורסיה והוראתה לתלמידי

תיכון"

מרכז המורים הארצי למדעי המחשב

13.11.01רמת גן

Page 25: רקורסיה

החשיבות החינוכית של שימוש במודלים•

מדוע יש צורך ביותר ממודל אחד?•

נציג שני מודלים:•

Top-Downמודל –

מודל האנשים הקטנים–

הקדמההקדמה

Page 26: רקורסיה

Procedure Sod ( N : Integer) ;

Begin

If N < 1

Then writeln (‘sof’)

else Begin

Writeln ( N ) ;

Sod ( N – 1 ) ;

Writeln ( N ) ;

End

End;

Page 27: רקורסיה

Top Downמודל

Page 28: רקורסיה

Procedure Sod ( N : Integer) ;

Begin

If N < 1

Then writeln (‘sof’)

else Begin

Writeln ( N ) ;

Sod ( N – 1 ) ;

Writeln ( N ) ;

End

End;

מה יודפס מה יודפס

בתגובה בתגובה

להוראהלהוראה

Sod (3)Sod (3)

Page 29: רקורסיה

Sod (3)

Writeln ( 3 );

Sod ( 3 – 1 );

Writeln ( 3 );

Sod (2)

Writeln ( 2 );

Sod ( 2 – 1 );

Writeln ( 2 );

Sod (1)

Writeln ( 1 );

Sod ( 1 – 1 );

Writeln ( 1 );

Sod ( 0)

If 0 < 1

Writeln ( ‘sof’);

3

3

2

2

1

1

sof

Page 30: רקורסיה

Top Downמודל

המודל מסייע לנתח אלגוריתם או תכנית •

נתונים

המודל מסייע ל"ניתוח ברמות" •

מסביר כיצד מתבצע אינואינו המודל •

התהליך ה"אמיתי" על ידי המחשב

Page 31: רקורסיה

מודל האנשים הקטנים

Page 32: רקורסיה

Procedure Sod ( N : Integer) ;

Begin

If N < 1

Then writeln (‘sof’)

else Begin

Writeln ( N ) ;

Sod ( N – 1 ) ;

Writeln ( N ) ;

End

End;

איך יבצע

המחשב

את ההוראה

Sod (3)

Page 33: רקורסיה

Procedure Sod ( N : Integer) ;

Begin

If N < 1

Then writeln (‘sof’)

else Begin

Writeln ( N ) ;

Sod ( N – 1 ) ;

Writeln ( N ) ;

End

End;

Page 34: רקורסיה

Procedure Sod ( N : Integer);Begin If N < 1

Then Writeln (‘SOF’)

Else Begin

Writeln ( N );

Sod ( N – 1 );

Writeln ( N );

EndEnd;

3

אמיראמיר

3

אמירמחכה

שבני יסיים

תמונת

מסך

321

Sof123

Page 35: רקורסיה

Procedure Sod ( N : Integer);Begin If N < 1

Then Writeln (‘SOF’)

Else Begin

Writeln ( N );

Sod ( N – 1 );

Writeln ( N );

EndEnd;

2

בניבני

2

בנימחכהיסייםשגידי

תמונת מסך

321

Sof123

תמונת

מסך

321

Sof123

3

אמיר

Page 36: רקורסיה

Procedure Sod ( N : Integer);Begin If N < 1

Then Writeln (‘SOF’)

Else Begin

Writeln ( N );

Sod ( N – 1 );

Writeln ( N );

EndEnd;

1

גידיגידי

1

גידימחכה

שדני יסיים

תמונת מסך

321

Sof123

תמונת

מסך

321

Sof123

3 2

אמיר בני

Page 37: רקורסיה

Procedure Sod ( N : Integer);Begin If N < 1

Then Writeln (‘SOF’)

Else Begin

Writeln ( N );

Sod ( N – 1 );

Writeln ( N );

EndEnd;

0

דנידני

תמונת מסך

321

Sof123

תמונת

מסך

321

Sof123

3 2 1 מי ממשיך?אמיר בני גידי

Page 38: רקורסיה

Procedure Sod ( N : Integer);Begin If N < 1

Then Writeln (‘SOF’)

Else Begin

Writeln ( N );

Sod ( N – 1 );

Writeln ( N );

EndEnd;

1

גידיגידי

תמונת מסך

321

Sof123

תמונת

מסך

321

Sof123

3 2 מי ממשיך?

אמיר בני

Page 39: רקורסיה

Procedure Sod ( N : Integer);Begin If N < 1

Then Writeln (‘SOF’)

Else Begin

Writeln ( N );

Sod ( N – 1 );

Writeln ( N );

EndEnd;

2

בניבני

תמונת מסך

321

Sof123

תמונת

מסך

321

Sof123

3 מי ממשיך?

אמיר

Page 40: רקורסיה

Procedure Sod ( N : Integer);Begin If N < 1

Then Writeln (‘SOF’)

Else Begin

Writeln ( N );

Sod ( N – 1 );

Writeln ( N );

EndEnd;

3

אמיראמיר

תמונת מסך

321

Sof123

תמונת

מסך

321

Sof123

מי ממשיך?

Page 41: רקורסיה

Procedure Sod ( N : Integer);

Begin

If N < 1

Then Writeln (‘SOF’)

Else Begin

Writeln ( N );

Sod ( N – 1 );

Writeln ( N );

End

End;

תמונת מסך

3

2

1

Sof

1

2

3

Page 42: רקורסיה

מודל האנשים הקטנים

המודל מסייע לראות ולהבין מה ואיך •

מתבצע

המודל אינו נוח ל"הרצה אישית" •

Page 43: רקורסיה

מעקב בעזרת מחסנית:

1 Procedure Sod ( N : Integer) ;

Begin2 If N < 13 Then writeln (‘sof’)4 else Begin5 Writeln ( N ) ;6 Sod ( N – 1 ) ;7 Writeln ( N ) ;

EndEnd;