SlideShare une entreprise Scribd logo
1  sur  192
Télécharger pour lire hors ligne
‫מדעי‬ ‫לתכנות‬ ‫מבוא‬
‫הרצאה‬9‫חלק‬1
‫מילונים‬
2017
Igor Kleiner ©
‫מחרוזות‬,‫ומילונים‬ ‫רשימות‬
•‫היא‬ ‫מחרוזת‬‫סדרה‬‫תווים‬ ‫של‬(‫אותיות‬)
•‫היא‬ ‫רשימה‬‫סדרה‬‫אובייקטים‬ ‫של‬
‫מחרוזות‬,‫ומילונים‬ ‫רשימות‬
•‫היא‬ ‫מחרוזת‬‫סדרה‬‫תווים‬ ‫של‬(‫אותיות‬)
•‫היא‬ ‫רשימה‬‫סדרה‬‫אובייקטים‬ ‫של‬
•‫לכל‬ ‫כאשר‬ ‫אובייקטים‬ ‫של‬ ‫אוסף‬ ‫שמכיל‬ ‫ושימושי‬ ‫נוסף‬ ‫נתונים‬ ‫מבנה‬ ‫קיים‬
‫לאובייקט‬ ‫לגשת‬ ‫ניתן‬ ‫שבעזרתו‬ ‫מפתח‬ ‫יש‬ ‫אובייקט‬-‫מילון‬
‫מטרה‬
‫חדש‬ ‫נתונים‬ ‫מבנה‬ ‫ללמוד‬:‫מילון‬
‫מילון‬ ‫להגדיר‬ ‫איך‬ ‫ללמוד‬?
‫במילון‬ ‫להשתמש‬ ‫איך‬ ‫ללמוד‬?
‫בפייתון‬ ‫מילון‬ ‫זה‬ ‫מה‬?
•‫מילון‬(dictionary)‫אוסף‬ ‫הוא‬‫מסודר‬ ‫לא‬‫איברים‬ ‫של‬
‫בפייתון‬ ‫מילון‬ ‫זה‬ ‫מה‬?
•‫מילון‬(dictionary)‫אוסף‬ ‫הוא‬‫מסודר‬ ‫לא‬‫איברים‬ ‫של‬
•‫מפתח‬ ‫יש‬ ‫במילון‬ ‫איבר‬ ‫לכל‬(key)‫אחד‬ ‫איבר‬ ‫משויך‬ ‫במילון‬ ‫מפתח‬ ‫ולכל‬
‫בפייתון‬ ‫מילון‬ ‫זה‬ ‫מה‬?
•‫מילון‬(dictionary)‫אוסף‬ ‫הוא‬‫מסודר‬ ‫לא‬‫איברים‬ ‫של‬
•‫מפתח‬ ‫יש‬ ‫במילון‬ ‫איבר‬ ‫לכל‬(key)‫אחד‬ ‫איבר‬ ‫משויך‬ ‫במילון‬ ‫מפתח‬ ‫ולכל‬
•‫אברי‬ ‫בין‬ ‫סדר‬ ‫אין‬‫מילון‬(‫מחרוזת‬ ‫או‬ ‫מרשימה‬ ‫להבדיל‬)
‫בפייתון‬ ‫מילון‬ ‫זה‬ ‫מה‬?
•‫מילון‬(dictionary)‫אוסף‬ ‫הוא‬‫מסודר‬ ‫לא‬‫איברים‬ ‫של‬
•‫מפתח‬ ‫יש‬ ‫במילון‬ ‫איבר‬ ‫לכל‬(key)‫אחד‬ ‫איבר‬ ‫משויך‬ ‫במילון‬ ‫מפתח‬ ‫ולכל‬
•‫אברי‬ ‫בין‬ ‫סדר‬ ‫אין‬‫מילון‬(‫מחרוזת‬ ‫או‬ ‫מרשימה‬ ‫להבדיל‬)
•‫מפתח‬ ‫איבר‬ ‫לכל‬ ‫יש‬ ‫במילון‬ ‫ברשימה‬ ‫איבר‬ ‫של‬ ‫אינדקס‬ ‫במקום‬
•‫של‬ ‫במפתח‬ ‫משתמשים‬ ‫במילון‬ ‫לאיבר‬ ‫להתייחס‬ ‫רוצים‬ ‫אם‬‫האיבר‬
‫מילון‬ ‫מייצרים‬ ‫איך‬
•‫מסולסלים‬ ‫בסוגריים‬ ‫משתמשים‬ ‫מילון‬ ‫לייצר‬ ‫כדי‬
•‫רושמים‬ ‫הסוגריים‬ ‫בתוך‬‫צמדים‬:‫מפתח‬:‫איבר‬
‫מילון‬ ‫של‬ ‫שם‬ ‫מפתח‬
‫ערך‬
‫מילון‬ ‫מייצרים‬ ‫איך‬
•‫מסולסלים‬ ‫בסוגריים‬ ‫משתמשים‬ ‫מילון‬ ‫לייצר‬ ‫כדי‬
•‫רושמים‬ ‫הסוגריים‬ ‫בתוך‬‫צמדים‬:‫מפתח‬:‫איבר‬
‫מילון‬ ‫של‬ ‫שם‬ ‫מפתח‬
‫ערך‬
‫מפתח‬ ‫בעזרת‬ ‫מילון‬ ‫לאברי‬ ‫גישה‬
•‫שלו‬ ‫מפתח‬ ‫בעזרת‬ ‫במילון‬ ‫לאיבר‬ ‫לגשת‬ ‫אפשר‬
‫מפתח‬ ‫בעזרת‬ ‫מילון‬ ‫לאברי‬ ‫גישה‬
•‫אין‬‫סדר‬‫בין‬‫אברים‬‫במילון‬
‫מפתח‬ ‫בעזרת‬ ‫מילון‬ ‫לאברי‬ ‫גישה‬
•‫לולאת‬ ‫בעזרת‬ ‫מילון‬ ‫של‬ ‫מפתח‬ ‫כל‬ ‫על‬ ‫לעבור‬ ‫אפשר‬for
‫מפתח‬ ‫בעזרת‬ ‫מילון‬ ‫לאברי‬ ‫גישה‬
•‫לולאת‬ ‫בעזרת‬ ‫במילון‬ ‫ערך‬ ‫כל‬ ‫על‬ ‫לעבור‬ ‫אפשר‬for
‫מפתח‬ ‫בעזרת‬ ‫מילון‬ ‫לאברי‬ ‫גישה‬
•‫לולאת‬ ‫בעזרת‬ ‫במילון‬ ‫ערך‬ ‫כל‬ ‫על‬ ‫לעבור‬ ‫אפשר‬for
‫למילון‬ ‫חדש‬ ‫איבר‬ ‫הוספת‬
•‫בעזרת‬ ‫למילון‬ ‫איבר‬ ‫להוסיף‬ ‫אפשר‬] [
‫במילון‬ ‫איבר‬ ‫עדכון‬
•‫בעזרת‬ ‫במילון‬ ‫איבר‬ ‫לעדכן‬ ‫אפשר‬] [
‫מרשימה‬ ‫איבר‬ ‫מחיקת‬
•‫אופרטור‬ ‫בעזרת‬ ‫ממילון‬ ‫איבר‬ ‫למחוק‬ ‫אפשר‬del
‫ריק‬ ‫מילון‬ ‫הגדרת‬
•‫דרכים‬ ‫בכמה‬ ‫ריק‬ ‫מילון‬ ‫להגדיר‬ ‫אפשר‬:
‫סיכום‬
‫ושימושי‬ ‫חדש‬ ‫נתונים‬ ‫מבנה‬ ‫הוא‬ ‫מילון‬
‫לאיבר‬ ‫לגשת‬ ‫ניתן‬ ‫שבעזרתו‬ ‫ייחודי‬ ‫מפתח‬ ‫יש‬ ‫במילון‬ ‫איבר‬ ‫לכל‬
‫סדר‬ ‫אין‬ ‫במילון‬
‫דרכים‬ ‫בכמה‬ ‫ריק‬ ‫מילון‬ ‫לייצור‬ ‫אפשר‬
‫בעזרת‬ ‫למילון‬ ‫איבר‬ ‫להוסיף‬ ‫אפשר‬] [
Igor Kleiner (Hebrew adaptation) -2017
‫מדעי‬ ‫לתכנות‬ ‫מבוא‬
‫הרצאה‬9‫חלק‬2
‫מילונים‬ ‫של‬ ‫מתודות‬
2017
Igor Kleiner
‫בפייתון‬ ‫מילון‬ ‫זה‬ ‫מה‬?
•‫מילון‬(dictionary)‫אוסף‬ ‫הוא‬‫מסודר‬ ‫לא‬‫איברים‬ ‫של‬
•‫מפתח‬ ‫יש‬ ‫במילון‬ ‫איבר‬ ‫לכל‬(key)‫אחד‬ ‫איבר‬ ‫משויך‬ ‫במילון‬ ‫מפתח‬ ‫ולכל‬
‫מטרה‬
‫מילונים‬ ‫של‬ ‫מתודות‬ ‫ללמוד‬
‫מילון‬ ‫של‬ ‫מתודות‬
•‫משלהם‬ ‫מתודות‬ ‫יש‬ ‫מילון‬ ‫מטיפוס‬ ‫לאובייקטים‬
‫מילון‬ ‫של‬ ‫מתודות‬
•‫משלהם‬ ‫מתודות‬ ‫יש‬ ‫מילון‬ ‫מטיפוס‬ ‫לאובייקטים‬
‫מילון‬ ‫של‬ ‫מתודות‬
•‫מילון‬ ‫של‬ ‫ממתודות‬ ‫חלק‬ ‫של‬ ‫תיור‬ ‫נתון‬ ‫בטבלה‬
Clear()
•‫מילון‬ ‫של‬ ‫התוכן‬ ‫את‬ ‫למחוק‬ ‫נצטרך‬ ‫לפעמים‬,‫זיכרון‬ ‫לשחרר‬ ‫כדי‬ ‫למשל‬
get()
•‫בעזרת‬ ‫במילון‬ ‫לאיבר‬ ‫לגשת‬ ‫אפשר‬] [‫האיבר‬ ‫של‬ ‫ומפתח‬
•‫במילון‬ ‫מופיע‬ ‫שלא‬ ‫במפתח‬ ‫לאיבר‬ ‫ניגש‬ ‫כשאר‬ ‫יקרה‬ ‫מה‬ ‫אבל‬?
get()
•‫בעזרת‬ ‫במילון‬ ‫לאיבר‬ ‫לגשת‬ ‫אפשר‬] [‫האיבר‬ ‫של‬ ‫ומפתח‬
•‫במילון‬ ‫מופיע‬ ‫שלא‬ ‫במפתח‬ ‫לאיבר‬ ‫ניגש‬ ‫כאשר‬ ‫יקרה‬ ‫מה‬ ‫אבל‬?
get()
•‫בעזרת‬ ‫במילון‬ ‫לאיבר‬ ‫לגשת‬ ‫אפשר‬] [‫האיבר‬ ‫של‬ ‫ומפתח‬
•‫במילון‬ ‫מופיע‬ ‫שלא‬ ‫במפתח‬ ‫לאיבר‬ ‫ניגש‬ ‫כשאר‬ ‫יקרה‬ ‫מה‬ ‫אבל‬?
‫במתודה‬ ‫נעזר‬ ‫ברשימה‬ ‫מופיע‬ ‫לא‬ ‫מפתח‬ ‫כאשר‬ ‫שגיאה‬ ‫הודעת‬ ‫לקבל‬ ‫נרצה‬ ‫לא‬ ‫אם‬-get()
get()
•‫במתודה‬ ‫נעזר‬ ‫ברשימה‬ ‫מופיע‬ ‫לא‬ ‫מפתח‬ ‫כאשר‬ ‫שגיאה‬ ‫הודעת‬ ‫לקבל‬ ‫נרצה‬ ‫לא‬ ‫אם‬
get()
•‫מתודה‬get()‫ראשון‬ ‫כפרמטר‬ ‫קיבלה‬ ‫שהיא‬ ‫מפתח‬ ‫של‬ ‫ערך‬ ‫מחזירה‬,‫כזה‬ ‫קיים‬ ‫אם‬,
‫שני‬ ‫כפרמטר‬ ‫קיבלה‬ ‫שהיא‬ ‫ערך‬ ‫מחזירה‬ ‫היא‬ ‫אחרת‬
‫ב‬ ‫שימוש‬-get
•‫ב‬ ‫מהשימושים‬ ‫אחד‬-get‫ברשימה‬ ‫נפוצה‬ ‫הכי‬ ‫מילה‬ ‫מהי‬ ‫לדעת‬ ‫הוא‬:
‫ב‬ ‫שימוש‬-get
•‫ב‬ ‫מהשימושים‬ ‫אחד‬-get‫ברשימה‬ ‫נפוצה‬ ‫הכי‬ ‫מילה‬ ‫מהי‬ ‫לדעת‬ ‫הוא‬:
•‫אלגוריתם‬:
‫ב‬ ‫שימוש‬-get
•‫ב‬ ‫מהשימושים‬ ‫אחד‬-get‫ברשימה‬ ‫נפוצה‬ ‫הכי‬ ‫מילה‬ ‫מהי‬ ‫לדעת‬ ‫הוא‬:
•‫אלגוריתם‬:
•‫קלט‬ ‫בהינתן‬:‫רשימה‬X,‫ריק‬ ‫מילון‬ ‫ניקח‬D.
•‫אביר‬ ‫כל‬ ‫על‬ ‫נעבור‬W‫מ‬-X.‫אם‬W‫ב‬ ‫מופיע‬ ‫כבר‬-D‫הופעות‬ ‫הכמות‬ ‫את‬ ‫נגדיל‬ ‫אז‬W
‫ב‬-1,‫ל‬ ‫נוסיף‬ ‫אחר‬-D‫ערך‬1‫מפתח‬ ‫עם‬W
‫ב‬ ‫שימוש‬-get
•‫ב‬ ‫מהשימושים‬ ‫אחד‬-get‫ברשימה‬ ‫נפוצה‬ ‫הכי‬ ‫מילה‬ ‫מהי‬ ‫לדעת‬ ‫הוא‬
‫ב‬ ‫שימוש‬-get
•‫ב‬ ‫מהשימושים‬ ‫אחד‬-get‫ברשימה‬ ‫נפוצה‬ ‫הכי‬ ‫מילה‬ ‫מהי‬ ‫לדעת‬ ‫הוא‬
‫ב‬ ‫שימוש‬-get
•‫ב‬ ‫מהשימושים‬ ‫אחד‬-get‫ברשימה‬ ‫נפוצה‬ ‫הכי‬ ‫מילה‬ ‫מהי‬ ‫לדעת‬ ‫הוא‬
http://www.codeskulptor.org/#user42_BI2XshmUOV_0.py
keys()
•‫מתודה‬keys‫מחזירה‬‫רשימת‬‫מילון‬ ‫של‬ ‫המפתחות‬ ‫כל‬
pop()
•‫מתודה‬pop‫את‬ ‫מוחקת‬ ‫וגם‬ ‫מפתח‬ ‫אותו‬ ‫בעל‬ ‫האיבר‬ ‫את‬ ‫ומחזירה‬ ‫מפתח‬ ‫מקבלת‬
‫ממילון‬ ‫האיבר‬
update()
•‫מתודה‬ ‫בעזרת‬ ‫אחר‬ ‫מילון‬ ‫למילון‬ ‫להוסיף‬ ‫אפשר‬update
update()
•‫מתודה‬ ‫בעזרת‬ ‫אחר‬ ‫מילון‬ ‫למילון‬ ‫להוסיף‬ ‫אפשר‬update
update()
•‫מתודה‬ ‫בעזרת‬ ‫אחר‬ ‫מילון‬ ‫למילון‬ ‫להוסיף‬ ‫אפשר‬update
update()
•‫מתודה‬ ‫בעזרת‬ ‫אחר‬ ‫מילון‬ ‫למילון‬ ‫להוסיף‬ ‫אפשר‬update
values()
•‫מתודה‬values‫כל‬ ‫של‬ ‫רשימה‬ ‫מחזירה‬‫הערכים‬‫מילון‬ ‫של‬
items()
•items‫של‬ ‫רשימה‬ ‫מחזירה‬tuples‫מפתח‬ ‫זוגות‬ ‫של‬-‫ערך‬
tuple tupletupletuple
‫סיכום‬
‫מילון‬ ‫של‬ ‫ממתודות‬ ‫בחלק‬ ‫להשתמש‬ ‫למדנו‬
Igor Kleiner (Hebrew adaptation) - 2017
‫מדעי‬ ‫לתכנות‬ ‫מבוא‬
‫הרצאה‬9‫חלק‬3
‫במילונים‬ ‫לשימושים‬ ‫דוגמאות‬
2017
Igor Kleiner
‫בפייתון‬ ‫במילונים‬ ‫שונים‬ ‫שימושים‬ ‫לראות‬
‫מילון‬
‫מילון‬
‫מילון‬
‫מילון‬
‫מילון‬
‫מילון‬
‫מילון‬
‫מדעי‬ ‫לתכנות‬ ‫מבוא‬
‫הרצאה‬9‫חלק‬4
‫המשך‬ ‫מילונות‬
2017
Igor Kleiner
‫מטרה‬
‫לולאה‬ ‫בעזרת‬ ‫למילון‬ ‫לגשת‬ ‫איך‬
‫ומילונים‬ ‫מובנות‬ ‫פונקציות‬
‫מילון‬
•‫חדש‬ ‫נתונים‬ ‫מבנה‬ ‫למדנו‬-‫מילון‬
•‫שלו‬ ‫מפתח‬ ‫בעזרת‬ ‫במילון‬ ‫מסוים‬ ‫לאיבר‬ ‫לגשת‬ ‫אפשר‬
•‫במילון‬ ‫איברים‬ ‫בין‬ ‫סדר‬ ‫אין‬
‫פונקציה‬len
•‫פונקציה‬len‫במילון‬ ‫הערכים‬ ‫כמות‬ ‫את‬ ‫מחזירה‬ ‫מילון‬ ‫מקבלת‬ ‫היא‬ ‫כאשר‬
‫אופרטור‬in
•‫אופרטור‬ ‫בעזרת‬in‫במילון‬ ‫קיים‬ ‫האם‬ ‫לבדוק‬ ‫נוכל‬‫מפתח‬‫מסוים‬
‫אופרטור‬in
•‫עבור‬‫רשימות‬‫אופרטור‬ ‫מאוד‬ ‫גדולות‬in‫איטי‬ ‫מאוד‬ ‫להיות‬ ‫יכול‬,‫אופרטור‬ ‫מילונים‬ ‫עבור‬
in‫מהיר‬ ‫תמיד‬
•‫ב‬ ‫להשתמש‬ ‫ונצטרך‬ ‫נתונים‬ ‫הרבה‬ ‫עם‬ ‫נעבוד‬ ‫כאשר‬ ‫לכן‬-in‫להשתמש‬ ‫נעדיף‬ ‫אולי‬
‫במילונים‬
‫ומילונים‬ ‫לולאות‬
•‫לולאת‬ ‫בעזרת‬ ‫מילון‬ ‫של‬ ‫מפתחות‬ ‫על‬ ‫לעבור‬ ‫אפשר‬for
‫ומילונים‬ ‫לולאות‬
•‫לולאת‬ ‫בעזרת‬ ‫מילון‬ ‫של‬ ‫מפתחות‬ ‫על‬ ‫לעבור‬ ‫אפשר‬for
‫ומילונים‬ ‫לולאות‬
•‫לולאת‬ ‫בעזרת‬ ‫מילון‬ ‫של‬ ‫מפתחות‬ ‫על‬ ‫לעבור‬ ‫אפשר‬for
‫מילון‬ ‫של‬ ‫מפתחות‬ ‫מיון‬
‫מילון‬ ‫של‬ ‫ערכים‬ ‫מיון‬
Igor Kleiner (Hebrew adaptation) - 2017
‫מדעי‬ ‫לתכנות‬ ‫מבוא‬
‫הרצאה‬9‫חלק‬5
Tuples
2017
Igor Kleiner ©
‫מילונים‬
‫שאפשר‬
‫אפשר‬
‫מדעי‬ ‫לתכנות‬ ‫מבוא‬
‫הרצאה‬9‫חלק‬6
‫רקורסיה‬
2017
Igor Kleiner ©
‫מטרה‬
‫רקורסיה‬ ‫היא‬ ‫מה‬ ‫להבין‬
‫רקורסיביות‬ ‫בפונקציות‬ ‫בפייתון‬ ‫להשתמש‬ ‫איך‬ ‫ללמוד‬
‫ברקורסיה‬ ‫לשימוש‬ ‫שונות‬ ‫דוגמאות‬ ‫לראות‬
‫רקורסיה‬
"‫רקורסיה‬ ‫להבין‬ ‫יש‬ ‫רקורסיה‬ ‫להבין‬ ‫כדי‬"
‫רקורסיה‬
"‫רקורסיה‬ ‫להבין‬ ‫יש‬ ‫רקורסיה‬ ‫להבין‬ ‫כדי‬"
‫בעיות‬ ‫לפתרון‬ ‫דרך‬ ‫היא‬ ‫רקורסיה‬
‫ברקורסיה‬ ‫בעיה‬ ‫פותרים‬ ‫כאשר‬"‫שוברים‬"‫יותר‬ ‫קטנה‬ ‫לבעיה‬ ‫המקורית‬ ‫הבעיה‬ ‫את‬,‫וכך‬
‫לפתור‬ ‫יודעים‬ ‫שאותה‬ ‫טריוויאלית‬ ‫קטנה‬ ‫לבעיה‬ ‫שמגיעים‬ ‫עד‬ ‫ממשיכים‬
‫הדגמה‬
‫לחשב‬ ‫צריכים‬ ‫שאנו‬ ‫נניח‬5!‫החישוב‬ ‫את‬ ‫לבצע‬ ‫איך‬ ‫יודיעם‬ ‫לא‬ ‫שאנו‬ ‫ונניח‬
‫חישוב‬ ‫הביעה‬ ‫את‬ ‫לשבור‬ ‫ננסה‬5!‫קטנה‬ ‫יותר‬ ‫לבעיה‬:‫של‬ ‫חישוב‬4!
‫הדגמה‬
•‫לחשב‬ ‫צריכים‬ ‫שאנו‬ ‫נניח‬5!‫החישוב‬ ‫את‬ ‫לבצע‬ ‫איך‬ ‫יודיעם‬ ‫לא‬ ‫שאנו‬ ‫ונניח‬
•‫חישוב‬ ‫הביעה‬ ‫את‬ ‫לשבור‬ ‫ננסה‬!5‫של‬ ‫חישוב‬ ‫קטנה‬ ‫יותר‬ ‫לבעיה‬4!
•‫ו‬ ‫היות‬ ‫קשה‬ ‫לא‬ ‫זה‬-5!=5*4!‫לחשב‬ ‫לנו‬ ‫מספיק‬ ‫לכן‬4!
‫הדגמה‬
•‫לחשב‬ ‫צריכים‬ ‫שאנו‬ ‫נניח‬5!‫החישוב‬ ‫את‬ ‫לבצע‬ ‫איך‬ ‫יודיעם‬ ‫לא‬ ‫שאנו‬ ‫ונניח‬
•‫חישוב‬ ‫הביעה‬ ‫את‬ ‫לשבור‬ ‫ננסה‬!5‫של‬ ‫חישוב‬ ‫קטנה‬ ‫יותר‬ ‫לבעיה‬4!
•‫ו‬ ‫היות‬ ‫קשה‬ ‫לא‬ ‫זה‬-5!=5*4!‫לחשב‬ ‫לנו‬ ‫מספיק‬ ‫לכן‬4!
•‫חישוב‬ ‫הביעה‬ ‫את‬ ‫לשבור‬ ‫ננסה‬4!‫של‬ ‫חישוב‬ ‫קטנה‬ ‫יותר‬ ‫לבעיה‬3!
•4!=4*3!,‫לחשב‬ ‫כדי‬3!‫של‬ ‫בחישוב‬ ‫נעזר‬2!,3!=3*2!,‫ואז‬2!=2*1!=2*1
‫הדגמה‬
‫אחר‬ ‫בכתיב‬:
Factorial(n)=n*factorial(n-1)
Factorial(1)=1
‫רקורסיה‬ ‫משוואת‬
‫עצירה‬ ‫תנאי‬
‫הדגמה‬
‫אחר‬ ‫בכתיב‬:
Factorial(n)=n*factorial(n-1)
Factorial(1)=1
‫רקורסיה‬ ‫משוואת‬
‫עצירה‬ ‫תנאי‬
‫הדגמה‬
‫אחר‬ ‫בכתיב‬:
Factorial(n)=n*factorial(n-1)
Factorial(1)=1
‫רקורסיה‬ ‫משוואת‬
‫עצירה‬ ‫תנאי‬
‫הדגמה‬
‫אחר‬ ‫בכתיב‬:
Factorial(n)=n*factorial(n-1)
Factorial(1)=1
‫רקורסיה‬ ‫משוואת‬
‫עצירה‬ ‫תנאי‬
3‫רקורסיה‬ ‫של‬ ‫חוקים‬
.1‫עצירה‬ ‫תנאי‬ ‫להיות‬ ‫צריך‬ ‫תמיד‬ ‫לרקורסיה‬(base case)
3‫רקורסיה‬ ‫של‬ ‫חוקים‬
.1‫עצירה‬ ‫תנאי‬ ‫להיות‬ ‫צריך‬ ‫תמיד‬ ‫לרקורסיה‬(base case)
.2‫עצירה‬ ‫תנאי‬ ‫של‬ ‫לכיוון‬ ‫מתקרבים‬ ‫צעד‬ ‫כל‬ ‫אנו‬ ‫רקורסיבי‬ ‫בפתרון‬(‫יותר‬ ‫בעיה‬ ‫פותרים‬
‫פשוטה‬)
3‫רקורסיה‬ ‫של‬ ‫חוקים‬
.1‫עצירה‬ ‫תנאי‬ ‫להיות‬ ‫צריך‬ ‫תמיד‬ ‫לרקורסיה‬(base case)
.2‫עצירה‬ ‫תנאי‬ ‫של‬ ‫לכיוון‬ ‫מתקרבים‬ ‫צעד‬ ‫כל‬ ‫אנו‬ ‫רקורסיבי‬ ‫בפתרון‬(‫יותר‬ ‫בעיה‬ ‫פותרים‬
‫פשוטה‬)
.3‫לעצמה‬ ‫קוראת‬ ‫רקורסיבית‬ ‫פונקציה‬
3‫רקורסיה‬ ‫של‬ ‫חוקים‬
.1‫עצירה‬ ‫תנאי‬ ‫להיות‬ ‫צריך‬ ‫תמיד‬ ‫לרקורסיה‬(base case)
.2‫עצירה‬ ‫תנאי‬ ‫של‬ ‫לכיוון‬ ‫מתקרבים‬ ‫צעד‬ ‫כל‬ ‫אנו‬ ‫רקורסיבי‬ ‫בפתרון‬(‫יותר‬ ‫בעיה‬ ‫פותרים‬
‫פשוטה‬)
.3‫לעצמה‬ ‫קוראת‬ ‫רקורסיבית‬ ‫פונקציה‬
‫הדגמה‬:‫עצרת‬ ‫חישוב‬
‫הדגמה‬:‫עצרת‬ ‫חישוב‬
‫דוגמא‬2:
‫חשב‬:S(n)=0+1+2+3+4+….+n‫רקורסיה‬ ‫בעזרת‬
‫דוגמא‬2:
‫חשב‬:S(n)=0+1+2+3+4+….+n‫רקורסיה‬ ‫בעזרת‬
‫עצירה‬ ‫תנאי‬:S(?)=?
‫דוגמא‬2:
‫חשב‬:S(n)=0+1+2+3+4+….+n‫רקורסיה‬ ‫בעזרת‬
‫עצירה‬ ‫תנאי‬:S(0)=0
‫דוגמא‬2:
‫חשב‬:S(n)=0+1+2+3+4+….+n‫רקורסיה‬ ‫בעזרת‬
‫עצירה‬ ‫תנאי‬:S(0)=0
‫רקורסיה‬ ‫משוואת‬:S(n)=S(?)??
‫דוגמא‬2:
‫חשב‬:S(n)=0+1+2+3+4+….+n‫רקורסיה‬ ‫בעזרת‬
‫עצירה‬ ‫תנאי‬:S(0)=0
‫רקורסיה‬ ‫משוואת‬:S(n)=S(n-1)+?
‫דוגמא‬2:
‫חשב‬:S(n)=0+1+2+3+4+….+n‫רקורסיה‬ ‫בעזרת‬
‫עצירה‬ ‫תנאי‬:S(0)=0
‫רקורסיה‬ ‫משוואת‬:S(n)=S(n-1)+n
‫דוגמא‬2:
‫חשב‬:S(n)=0+1+2+3+4+….+n‫רקורסיה‬ ‫בעזרת‬
‫עצירה‬ ‫תנאי‬:S(0)=0
‫רקורסיה‬ ‫משוואת‬:S(n)=S(n-1)+n
‫דוגמא‬2:
‫חשב‬:S(n)=0+1+2+3+4+….+n‫רקורסיה‬ ‫בעזרת‬
‫עצירה‬ ‫תנאי‬:S(0)=0
‫רקורסיה‬ ‫משוואת‬:S(n)=S(n-1)+n
‫דוגמא‬2:
‫חשב‬:S(n)=0+1+2+3+4+….+n‫רקורסיה‬ ‫בעזרת‬
‫עצירה‬ ‫תנאי‬:S(0)=0
‫רקורסיה‬ ‫משוואת‬:S(n)=S(n-1)+n
‫דוגמא‬2:
‫חשב‬:S(n)=0+1+2+3+4+….+n‫רקורסיה‬ ‫בעזרת‬
‫עצירה‬ ‫תנאי‬:S(0)=0
‫רקורסיה‬ ‫משוואת‬:S(n)=S(n-1)+n
‫רקורסיה‬ ‫ללא‬ ‫פתרון‬:
‫דוגמא‬3:
‫מחרוזת‬ ‫האם‬S‫פולינדרום‬ ‫היא‬?
‫דוגמא‬3:
‫מחרוזת‬ ‫האם‬S‫פולינדרום‬ ‫היא‬?BlaabllbaalB
‫מ‬ ‫גדול‬ ‫באורך‬ ‫מחרוזת‬-1,‫כלומר‬aTb‫פולינדרום‬ ‫היא‬‫אם‬"‫ם‬:a=b‫ו‬-T‫פולינדרום‬ ‫גם‬
‫דוגמא‬3:
‫מחרוזת‬ ‫האם‬S‫פולינדרום‬ ‫היא‬?BlaabllbaalB
‫מ‬ ‫גדול‬ ‫באורך‬ ‫מחרוזת‬-1,‫כלומר‬aTb‫פולינדרום‬ ‫היא‬‫אם‬"‫מ‬:a=b‫ו‬-T‫פולינדרום‬ ‫גם‬
‫עצירה‬ ‫תנאי‬:‫באורך‬ ‫מחרוזת‬ ‫כל‬1‫או‬0‫פולינדרום‬
‫רקורסיה‬ ‫צעד‬:‫מ‬ ‫גדול‬ ‫מחרוזת‬ ‫אורך‬ ‫אם‬-1‫אזי‬S=aTb‫פולינדרים‬ ‫היא‬‫אם‬"‫ם‬a=b‫ו‬-T‫גם‬
‫פולינדרום‬
‫דוגמא‬3:
‫מחרוזת‬ ‫האם‬S‫פולינדרום‬ ‫היא‬?BlaabllbaalB
‫מ‬ ‫גדול‬ ‫באורך‬ ‫מחרוזת‬-1,‫כלומר‬aTb‫פולינדרום‬ ‫היא‬‫אם‬"‫מ‬:a=b‫ו‬-T‫פולינדרום‬ ‫גם‬
‫עצירה‬ ‫תנאי‬:‫באורך‬ ‫מחרוזת‬ ‫כל‬1‫או‬0‫פולינדרום‬
‫רקורסיה‬ ‫צעד‬:‫מ‬ ‫גדול‬ ‫מחרוזת‬ ‫אורך‬ ‫אם‬-1‫אזי‬S=aTb‫פולינדרים‬ ‫היא‬‫אם‬"‫ם‬a=b‫ו‬-T‫גם‬
‫פולינדרום‬
‫רקורסיבי‬ ‫לא‬ ‫מימוש‬
‫דוגמא‬4:
‫פיבונאצ‬ ‫סדרה‬'‫י‬:
‫תזכורת‬:
F(0)=1,F(1)=1, F(N)=F(N-1)+F(N-2)
‫דוגמא‬4:
‫פיבונאצ‬ ‫סדרה‬'‫י‬:
‫תזכורת‬:
F(0)=1,F(1)=1, F(N)=F(N-1)+F(N-2)
‫כתב‬‫פונקציה‬‫שמקבלת‬‫מספר‬‫חיובי‬ ‫שלם‬N‫איבר‬ ‫ומחזירה‬N‫פיבונאצ‬ ‫בסדרת‬'‫י‬
‫דוגמא‬4:
‫פיבונאצ‬ ‫סדרה‬'‫י‬:
‫תזכורת‬:
F(0)=1,F(1)=1, F(N)=F(N-1)+F(N-2)
‫רקורסיבי‬ ‫פתרון‬:
‫עצירה‬ ‫תנאי‬:?
‫דוגמא‬4:
‫פיבונאצ‬ ‫סדרה‬'‫י‬:
‫תזכורת‬:
F(0)=1,F(1)=1, F(N)=F(N-1)+F(N-2)
‫רקורסיבי‬ ‫פתרון‬:
‫עצירה‬ ‫תנאי‬:F(0)=1,F(1)=1
‫דוגמא‬4:
‫פיבונאצ‬ ‫סדרה‬'‫י‬:
‫תזכורת‬:
F(0)=1,F(1)=1, F(N)=F(N-1)+F(N-2)
‫רקורסיבי‬ ‫פתרון‬:
‫עצירה‬ ‫תנאי‬:F(0)=1,F(1)=1
‫רקורסיה‬ ‫משוואת‬:?
‫דוגמא‬4:
‫פיבונאצ‬ ‫סדרה‬'‫י‬:
‫תזכורת‬:
F(0)=1,F(1)=1, F(N)=F(N-1)+F(N-2)
‫רקורסיבי‬ ‫פתרון‬:
‫עצירה‬ ‫תנאי‬:F(0)=1,F(1)=1
‫רקורסיה‬ ‫משוואת‬:F(N)=F(N-1)+F(N-2)
‫דוגמא‬4:
‫פיבונאצ‬ ‫סדרה‬'‫י‬:
‫תזכורת‬:
F(0)=1,F(1)=1, F(N)=F(N-1)+F(N-2)
‫רקורסיבי‬ ‫פתרון‬:
‫עצירה‬ ‫תנאי‬:F(0)=1,F(1)=1
‫רקורסיה‬ ‫משוואת‬:F(N)=F(N-1)+F(N-2)
‫דוגמא‬4:
‫סדרה‬‫פיבונאצ‬'‫י‬:
F(0)=1,F(1)=1, F(N)=F(N-1)+F(N-2)
‫רקורסיבי‬ ‫לא‬ ‫פתרון‬
http://www.codeskulptor.org/#user42_t2xQVItJnu_1.py
‫סיכום‬
‫לעצמה‬ ‫לקרוא‬ ‫יכולה‬ ‫פונקציה‬
‫רקורסיה‬ ‫דרך‬ ‫בעיה‬ ‫לפתור‬ ‫קל‬ ‫לפעמים‬
‫עצירה‬ ‫תנאי‬ ‫לציין‬ ‫חשוב‬ ‫רקורסיבי‬ ‫בפתרון‬
‫נכון‬ ‫רקורסיה‬ ‫משוואת‬ ‫להגדיר‬ ‫חשוב‬
‫מדעי‬ ‫לתכנות‬ ‫מבוא‬
‫הרצאה‬9‫חלק‬7
Namespace
2017
Igor Kleiner
‫מטרה‬
‫בפייתון‬ ‫השמות‬ ‫מרחב‬ ‫על‬ ‫ללמוד‬
‫השמות‬ ‫מרחב‬ ‫מהו‬
•‫בפייתון‬‫השמות‬ ‫מרחב‬‫לאובייקטים‬ ‫משתנים‬ ‫שמות‬ ‫בין‬ ‫מיפוי‬ ‫טבלת‬ ‫הוא‬
‫השמות‬ ‫מרחב‬ ‫מהו‬
•‫בפייתון‬‫השמות‬ ‫מרחב‬‫לאובייקטים‬ ‫משתנים‬ ‫שמות‬ ‫בין‬ ‫מיפוי‬ ‫טבלת‬ ‫הוא‬
•‫פשוטה‬ ‫מדוגמא‬ ‫נתחיל‬:
Namespace
x 12
z 22
y “Hello”
‫משתנים‬ ‫של‬ ‫שמות‬
‫ערכים‬
‫השמות‬ ‫מרחב‬ ‫מהו‬
•‫בפייתון‬‫השמות‬ ‫מרחב‬‫לאובייקטים‬ ‫משתנים‬ ‫שמות‬ ‫בין‬ ‫מיפוי‬ ‫טבלת‬ ‫הוא‬
•‫מודול‬ ‫לכל‬ ‫בפייתון‬,‫פונקציה‬ ‫לכל‬,‫מחלקה‬ ‫ולכל‬(‫נלמד‬ ‫לא‬)‫משלו‬ ‫השמות‬ ‫מרחב‬ ‫יש‬
•‫נקרא‬ ‫כזה‬ ‫השמות‬ ‫מרחב‬‫לוקאלי‬‫מסוים‬ ‫לאובייקט‬ ‫משויך‬ ‫הוא‬ ‫כי‬–‫פונקציה‬,‫וכו‬ ‫מודול‬'
Namespace
x 12
z 22
y “Hello”
‫השמות‬ ‫מרחב‬ ‫מהו‬
•‫בפייתון‬‫השמות‬ ‫מרחב‬‫לאובייקטים‬ ‫משתנים‬ ‫שמות‬ ‫בין‬ ‫מיפוי‬ ‫טבלת‬ ‫הוא‬
•‫מודול‬ ‫לכל‬ ‫בפייתון‬,‫פונקציה‬ ‫לכל‬,‫מחלקה‬ ‫לכל‬(‫נלמד‬ ‫לא‬)‫משלו‬ ‫השמות‬ ‫מרחב‬ ‫יש‬
•‫נקרא‬ ‫כזה‬ ‫השמות‬ ‫מרחב‬‫לוקאלי‬‫מסוים‬ ‫לאובייקט‬ ‫משויך‬ ‫הוא‬ ‫כי‬:‫פונקציה‬,‫וכו‬ ‫מודול‬'
•‫הסתיים‬ ‫הפונקציה‬ ‫של‬ ‫ביצוע‬ ‫וכאשר‬ ‫עבורה‬ ‫מיוצר‬ ‫השמות‬ ‫מרחב‬ ‫לפונקציה‬ ‫קוראים‬ ‫אנו‬ ‫כאשר‬
‫נמחק‬ ‫המרחב‬
Namespace
x 12
z 22
y “Hello”
‫השמות‬ ‫מרחב‬ ‫מהו‬
•‫בפייתון‬‫השמות‬ ‫מרחב‬‫לאובייקטים‬ ‫משתנים‬ ‫שמות‬ ‫בין‬ ‫מיפוי‬ ‫טבלת‬ ‫הוא‬
•‫מודול‬ ‫לכל‬ ‫בפייתון‬,‫פונקציה‬ ‫לכל‬,‫מחלקה‬ ‫לכל‬(‫נלמד‬ ‫לא‬)‫משלו‬ ‫השמות‬ ‫מרחב‬ ‫יש‬
•‫נקרא‬ ‫כזה‬ ‫השמות‬ ‫מרחב‬‫לוקאלי‬‫מסוים‬ ‫לאובייקט‬ ‫משויך‬ ‫הוא‬ ‫כי‬:‫פונקציה‬,‫וכו‬ ‫מודול‬'
•‫הסתיים‬ ‫הפונקציה‬ ‫של‬ ‫ביצוע‬ ‫וכאשר‬ ‫עבורה‬ ‫מיוצר‬ ‫השמות‬ ‫מרחב‬ ‫לפונקציה‬ ‫קוראים‬ ‫אנו‬ ‫כאשר‬
‫נמחק‬ ‫המרחב‬
•‫גלובאלי‬ ‫שמות‬ ‫למרחב‬ ‫ושייכים‬ ‫גלובאליים‬ ‫נקראים‬ ‫תוכנה‬ ‫של‬ ‫ראשי‬ ‫בגוף‬ ‫שמוגדרים‬ ‫משתנים‬
Namespace
x 12
z 22
y “Hello”
‫קריאה‬ ‫בעת‬ ‫מיוצר‬ ‫לוקאלי‬ ‫השמות‬ ‫מרחב‬
‫לפונקציה‬f
‫גלובאלי‬ ‫השמות‬ ‫מרחב‬
‫חזרה‬ ‫לאחר‬ ‫ימחק‬ ‫לוקאלי‬ ‫שמות‬ ‫מרחב‬
‫מפונקציה‬
‫דוגמא‬2
‫דוגמא‬2
‫דוגמא‬2
‫דוגמא‬2
‫השמות‬ ‫מרחבים‬ ‫מפונקציות‬ ‫יוצאים‬ ‫כאשר‬
‫נמחקות‬ ‫שלהן‬
‫השמות‬ ‫מרחב‬ ‫מהו‬
•‫בפייתון‬‫השמות‬ ‫מרחב‬‫לאובייקטים‬ ‫משתנים‬ ‫שמות‬ ‫בין‬ ‫מיפוי‬ ‫טבלת‬ ‫הוא‬
•‫מודול‬ ‫לכל‬ ‫בפייתון‬,‫פונקציה‬ ‫לכל‬,‫מחלקה‬ ‫ולכל‬(‫למדנו‬ ‫לא‬)‫משלו‬ ‫השמות‬ ‫מרחב‬ ‫יש‬
•‫נקרא‬ ‫הזה‬ ‫השמות‬ ‫מרחב‬‫לוקאלי‬‫מסוים‬ ‫לאובייקט‬ ‫משויך‬ ‫הוא‬ ‫כי‬:‫פונקציה‬,‫וכו‬ ‫מודול‬'
•‫הסתיים‬ ‫הפונקציה‬ ‫של‬ ‫ביצוע‬ ‫וכאשר‬ ‫עבורה‬ ‫מיוצר‬ ‫השמות‬ ‫המרחב‬ ‫לפונקציה‬ ‫קוראים‬ ‫אנו‬ ‫כאשר‬
‫נמחק‬ ‫המרחב‬
•‫גלובאלי‬ ‫שמות‬ ‫למרחב‬ ‫ושייכים‬ ‫גלובאליים‬ ‫נקראים‬ ‫תוכנה‬ ‫של‬ ‫ראשי‬ ‫בגוף‬ ‫שמוגדרים‬ ‫משתנים‬
•‫שונים‬ ‫שמות‬ ‫במרחבי‬ ‫למשתנים‬ ‫שם‬ ‫אותו‬ ‫לתת‬ ‫אפשר‬
Namespace
x 12
z 22
y “Hello”
‫דוגמא‬3
‫דוגמא‬3
‫דוגמא‬3
‫דוגמא‬3
Igor Kleiner (Hebrew adaptation) -2017

Contenu connexe

Plus de Igor Kleiner

Plus de Igor Kleiner (20)

Анализ данных просто и доступно - урок 1
Анализ данных просто и доступно - урок 1Анализ данных просто и доступно - урок 1
Анализ данных просто и доступно - урок 1
 
מדעי נתונים לכל אחד
מדעי נתונים לכל אחדמדעי נתונים לכל אחד
מדעי נתונים לכל אחד
 
מדע נתונים - למידה מכונות
מדע נתונים - למידה מכונותמדע נתונים - למידה מכונות
מדע נתונים - למידה מכונות
 
מבוא למדעי הנתונים שבוע 2
מבוא למדעי הנתונים שבוע 2מבוא למדעי הנתונים שבוע 2
מבוא למדעי הנתונים שבוע 2
 
מבוא למדעי הנתונים הרצאה 1
מבוא למדעי הנתונים הרצאה 1מבוא למדעי הנתונים הרצאה 1
מבוא למדעי הנתונים הרצאה 1
 
תכנות דינמי הרצאה 3
תכנות דינמי הרצאה 3תכנות דינמי הרצאה 3
תכנות דינמי הרצאה 3
 
תכנות דינמי הרצאה 4
תכנות דינמי הרצאה 4תכנות דינמי הרצאה 4
תכנות דינמי הרצאה 4
 
שאלות לתרגול עצמי
שאלות לתרגול עצמישאלות לתרגול עצמי
שאלות לתרגול עצמי
 
פתרון תרגיל 3
פתרון תרגיל 3פתרון תרגיל 3
פתרון תרגיל 3
 
מבוא לתכנות מדעי: פייתון הרצאה 13
מבוא לתכנות מדעי: פייתון הרצאה 13מבוא לתכנות מדעי: פייתון הרצאה 13
מבוא לתכנות מדעי: פייתון הרצאה 13
 
תכנות מדעי פייתון: הרצאה 12: סיבוכיות
תכנות מדעי פייתון: הרצאה 12: סיבוכיותתכנות מדעי פייתון: הרצאה 12: סיבוכיות
תכנות מדעי פייתון: הרצאה 12: סיבוכיות
 
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמי
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמימבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמי
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמי
 
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017
 
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017
 
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאות
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאותמבוא לתכנות מדעי: פייתון: הרצאה 3: לולאות
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאות
 
מבוא לתכנות מדעי: פייתון: הרצאה 2: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 2: 2017מבוא לתכנות מדעי: פייתון: הרצאה 2: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 2: 2017
 
פייתון: הרצאה 1
פייתון: הרצאה 1פייתון: הרצאה 1
פייתון: הרצאה 1
 
למידה ממוכנת פגישה 8
למידה ממוכנת פגישה 8 למידה ממוכנת פגישה 8
למידה ממוכנת פגישה 8
 
מערכות לומדות פגישה 7-1 יער אקראי
מערכות לומדות פגישה 7-1 יער אקראימערכות לומדות פגישה 7-1 יער אקראי
מערכות לומדות פגישה 7-1 יער אקראי
 
מערכות לומדות תרגול 3 עצים
מערכות לומדות תרגול 3 עציםמערכות לומדות תרגול 3 עצים
מערכות לומדות תרגול 3 עצים
 

מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017