46
ההההה02 הההה ההההה: ההההה הההה ףףף ףףףף

הרצאה 02 בקרת זרימה: משפטי תנאי

Embed Size (px)

DESCRIPTION

הרצאה 02 בקרת זרימה: משפטי תנאי. קרן כליף. ביחידה זו נלמד:. ניתוח בעיות המכילות התניות הצגת הפתרון באמצעות עץ כתיבת הפתרון בפסאודו-קוד. תשלום ועד בית. ברחוב ע"ש גוליבר בליליפוט יש דירות עם 3 עד 5 חדרים, שחלקן הן דופלקסים. תשלומי ועד הבית נקבעו כך: - PowerPoint PPT Presentation

Citation preview

Page 1: הרצאה 02 בקרת זרימה: משפטי תנאי

02הרצאה בקרת זרימה: משפטי תנאי

כליף קרן

Page 2: הרצאה 02 בקרת זרימה: משפטי תנאי

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

2 © Keren Kalif

ביחידה זו נלמד:

Page 3: הרצאה 02 בקרת זרימה: משפטי תנאי

חדרים, 5 עד 3ברחוב ע"ש גוליבר בליליפוט יש דירות עם שחלקן הן דופלקסים.

:תשלומי ועד הבית נקבעו כך ש"ח )גם לדירה רגילה וגם לדופלקס(120 חדרים: 3דירת ◦ ש"ח )גם לדירה רגילה וגם לדופלקס(150 חדרים: 4דירת ◦ חדרים:5דירת ◦

:ש"ח200אם דופלקס :ש"ח180אחרת

.יש להציג את הסכום לתשלום

תשלום ועד בית

3© Keren Kalif

Page 4: הרצאה 02 בקרת זרימה: משפטי תנאי

נתון קלטכמות החדרים בדירה ◦ נתון קלטהאם הדירה דופלקס ◦ נתון פלטהסכום לתשלום ועד הבית ◦

ניתוח הנתוניםתשלום ועד בית:

4 © Keren Kalif

5 עד 3ברחוב דירות עם חדרים, שחלקן הן דופלקסים.

תשלומי ועד הבית נקבעו כך: ש"ח120 חדרים: 3דירת ש"ח150 חדרים: 4דירת חדרים:5דירת

200אם דופלקס: ש"ח

ש"ח180אחרת: יש להציג את הסכום

לתשלום.

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

)אבל לא שניהם(.

Page 5: הרצאה 02 בקרת זרימה: משפטי תנאי

הדרך לפתרוןתשלום ועד בית:

5 © Keren Kalif

כאשר יש לנו כמה מקרים זרים, נטפל בכל אחד מהם בנפרד:

3אם מספר החדרים הוא 120 הסכום לתשלום הוא ש"ח

4אם מספר החדרים הוא 150 הסכום לתשלום הוא ש"ח

5אם מספר החדרים הוא: ש"ח200 הסכום לתשלום הוא אם דופלקס ◦ ש"ח180 הסכום לתשלום הוא אם לא דופלקס ◦

5 עד 3ברחוב יש דירות עם חדרים, שחלקן הן דופלקסים.

תשלומי ועד הבית נקבעו כך: ש"ח120 חדרים: 3דירת ש"ח150 חדרים: 4דירת חדרים:5דירת

200אם דופלקס: ש"ח

ש"ח180אחרת: יש להציג את הסכום

לתשלום.

Page 6: הרצאה 02 בקרת זרימה: משפטי תנאי

קלוט מהמשתמש את מספר החדרים לתוךnumOfRooms

קלוט מהמשתמש האם הדירה היא דופלקס לתוךisDuplex

הערך של אם numOfRooms 3 הוא :price=120הערך של אחרת אם numOfRooms 4 הוא :price=150אם אחרת( הערך של numOfRooms 5 הוא :)

price = 200 הוא "אמת": isDuplex הערך של אם◦price = 180 הוא "שקר"(: isDuplex הערך של אם )אחרת◦

הצג אתprice

תשלום ועד בית:אסטרטגיית הפתרון

6 © Keren Kalif

5 עד 3ברחוב יש דירות עם חדרים, שחלקן הן דופלקסים.

תשלומי ועד הבית נקבעו כך: ש"ח120 חדרים: 3דירת ש"ח150 חדרים: 4דירת חדרים:5דירת

200אם דופלקס: ש"ח

ש"ח180אחרת: יש להציג את הסכום

לתשלום.

יכול להיות רק numOfRoomsמאחר והערך של אחד מהערכים האפשריים, אלו מקרים זרים, ו-

price.יקבל רק את הערך המתאים 5הבדיקה האם הדירה היא דופלקס רלוונטית רק אם יש

חדריםנשים לב שבמקרה האחרון אין צורך לציין את התנאי כי הוא נגזר מאי-קיום התנאים

שלפניו.

Page 7: הרצאה 02 בקרת זרימה: משפטי תנאי

קלוט מהמשתמש את מספר החדרים לתוךnumOfRooms

אחרת אם הערך שלnumOfRooms 3 הוא :price=120 אחרת אם הערך שלnumOfRooms 4 הוא :price=150 אם הערך של( אחרתnumOfRooms 5 הוא :)

isDuplexקלוט מהמשתמש האם הדירה היא דופלקס לתוך ◦price = 200 הוא "אמת": isDuplexאם הערך של ◦price = 180 הוא "שקר"(: isDuplexאחרת )אם הערך של ◦

הצג אתprice

תשלום ועד בית:(2אסטרטגיית הפתרון )

7 © Keren Kalif

השאלה האם הדירה היא דופלקס רלוונטית רק כאשר מדובר חדרים, לכן רק במקרה זה נשאל את המשתמש 5בדירת

שאלה זו.

5 עד 3ברחוב יש דירות עם חדרים, שחלקן הן דופלקסים.

תשלומי ועד הבית נקבעו כך: ש"ח120 חדרים: 3דירת ש"ח150 חדרים: 4דירת חדרים:5דירת

200אם דופלקס: ש"ח

ש"ח180אחרת: יש להציג את הסכום

לתשלום.

Page 8: הרצאה 02 בקרת זרימה: משפטי תנאי

תרשים זרימה

8© Keren Kalif

בהצגת הבעיה כתרשים זרימה קל לראות את הזרימה של התוכנית ואת המקרים הזרים, המתפצלים מאותו

בסופו של דבר, כל ההתפצלויות מעויין בעץ.הזרות מתנקזות לנקודת המשך

נשים לב שכל הבדיקות היוצאות משותפת.מאותה התפצלות מבוצעות על

קריטריון זהה )למשל, מספר החדרים(.

Page 9: הרצאה 02 בקרת זרימה: משפטי תנאי

תרשים זרימהפחות מוצלח

9 © Keren Kalif

דוגמא זו גם תבצע את הדרוש אבל חדרים חוזרת 5הבדיקה האם יש

פעמיים )שיכפול(, לכן פתרון זה פחות מוצלח. כאשר יש התפצלות למקרים כלל אצבע:

זרים, היא תמיד תבדוק תנאי על קריטריון זהה!

Page 10: הרצאה 02 בקרת זרימה: משפטי תנאי

ברשת החנויות "בגד לכל" יצאו במבצע הנחה לקראת סוףהעונה:

ש"ח הנחה50 ש"ח מקבלים 300עבור כל 1.

20% פריטים ומעלה מקבלים 3עבור קניה של 2.אין כפל מבצעים◦

יש לקלוט מהמשתמש נתונים ולבחור איזו הנחה יותרמשתלמת עבורו, ולבסוף להציגה ואת הסכום הסופי

לתשלום.במידה והסכום לתשלום אחרי כל אחת מן ההנחות זהה, לא משנה ◦

באיזו הנחה נשתמש.

מבצעי הנחות בחנות בגדים

10© Keren Kalif

Page 11: הרצאה 02 בקרת זרימה: משפטי תנאי

:קלטסכום הקניה◦כמות הפריטים◦

:חישוב1מחיר לאחר מבצע ◦2מחיר לאחר מבצע ◦

:פלטמחיר לאחר הנחה◦המבצע בו השתמשנו ◦

מבצעי הנחות בחנות בגדים: הנתונים הדרושים

11© Keren Kalif

ברשת מבצעי הנחה לקראת סוף העונה: ש"ח 50 ש"ח מקבלים 300עבור כל קניה מעל 1.

הנחה 20% פריטים ומעלה מקבלים 3עבור קניה של 2.

אין כפל מבצעיםיש לקלוט מהמשתמש נתונים ולבחור איזו הנחה

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

במידה והסכום לתשלום אחרי כל אחת מן ההנחות זהה, לא משנה באיזו הנחה נשתמש.

Page 12: הרצאה 02 בקרת זרימה: משפטי תנאי

תרשים זרימה

12© Keren Kalif

ברשת מבצעי הנחה לקראת סוף העונה: ש"ח 50 ש"ח מקבלים 300עבור כל קניה מעל 1.

הנחה 20% פריטים ומעלה מקבלים 3עבור קניה של 2.

אין כפל מבצעיםיש לקלוט מהמשתמש נתונים ולבחור איזו הנחה

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

במידה והסכום לתשלום אחרי כל אחת מן ההנחות זהה, לא משנה באיזו הנחה נשתמש.

Page 13: הרצאה 02 בקרת זרימה: משפטי תנאי

(pay )קלוט מהמשתמש את סכום הקניה1.

(numOfItemsקלוט מהמשתמש את כמות המוצרים )2.

:1חשב את המחיר לאחר מבצע 3.afterDiscount1 = pay – )pay/300(*50

:2חשב את המחיר לאחר מבצע 4.:numOfItems => 3אם ◦

afterDiscount2 = pay * 0.8אחרת:◦

afterDiscount2 = pay

:afterDiscount1 < afterDiscount2אם 5.1 תוך שימוש במבצע afterDiscount1הצג: המחיר לאחר מבצע הוא ◦

אחרת:6.2 תוך שימוש במבצע afterDiscount2הצג: המחיר לאחר מבצע הוא ◦

אסטרטגיית הפתרון המפורטת

13© Keren Kalif

Page 14: הרצאה 02 בקרת זרימה: משפטי תנאי

קריאת הבעיה והבנתהזיהוי נתונים שנקבל מהמשתמשזיהוי הנתונים שנחשב בתוכניתציור תרשים זרימהפירוט אסטרגטגיית הפתרון

:המטרהיצירת סדר באופן הגדרת הפתרון שתאפשר מעבר מטקסט חופשי ◦

למשהו סכמתי

שלבי הפתרון

14© Keren Kalif

Page 15: הרצאה 02 בקרת זרימה: משפטי תנאי

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

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

0 מהשיעורים. אחרת ציונו הסופי בקורס הוא 80% ציון הבוחן 60אם הסטודנט עבר את המבחן בציון לפחות

20%מהווה מגן של ציון 60אם הסטודנט עבר את המבחן בציון לפחות ,

מהציון הסופי10%מטלות שיעורי הבית מהוות יש לקלוט מהמשתמש נתונים ולהציג מהו ציונו הסופי של

הסטודנט

מכללת ליליפוט

15 © Keren Kalif

Page 16: הרצאה 02 בקרת זרימה: משפטי תנאי

:בשאלה זו יש חשיבות גדולה לסדר בדיקת הנתוניםאם הנוכחות אינה מספקת, אין טעם לקלוט את שאר הנתונים◦במידה והנוכחות מספקת, נקלוט את ציון המבחן◦כעת יש לשקלל את הבוחן ◦רק לבסוף נשקלל את ציון שיעורי הבית, מאחר ורכיב זה ◦

מתבסס על הצין המשוקלל של הבוחן+מבחן

מכללת ליליפוט: ניתוח זרימת השאלה

16 © Keren Kalif

סטודנט זכאי לגשת למבחן רק אם היה נוכח מהשיעורים. אחרת ציונו הסופי 80%בלפחות

.0בקורס הוא 60אם הסטודנט עבר את המבחן בציון לפחות

.20%ציון הבוחן מהווה מגן של אם הסטודנט עבר את המבחן, ציון מטלות

מהציון המשוקלל עם 10%שיעורי הבית מהוות הבוחן.

Page 17: הרצאה 02 בקרת זרימה: משפטי תנאי

הנוכחות בשיעורים %נתון קלט ציון המבחןנתון קלט ציון הבוחןנתון קלט ציון מטלות שיעורי הביתנתון קלט

ציון סופי בקורסנתון חישוב ונתון פלט

ניתן להגדיר כקבועים את האחוזים ◦השונים ואת הגדרות הציונים

מכללת ליליפוט: הנתונים הדרושים

17 © Keren Kalif

סטודנט זכאי לגשת למבחן רק אם היה נוכח מהשיעורים. אחרת ציונו הסופי 80%בלפחות

.0בקורס הוא 60אם הסטודנט עבר את המבחן בציון לפחות

.20%ציון הבוחן מהווה מגן של אם הסטודנט עבר את המבחן, ציון מטלות

מהציון המשוקלל עם 10%שיעורי הבית מהוות הבוחן.

Page 18: הרצאה 02 בקרת זרימה: משפטי תנאי

תרשים זרימה

18 © Keren Kalif

סטודנט זכאי לגשת למבחן רק אם היה נוכח מהשיעורים. אחרת ציונו הסופי 80%בלפחות

.0בקורס הוא 60אם הסטודנט עבר את המבחן בציון לפחות

.20%ציון הבוחן מהווה מגן של אם הסטודנט עבר את המבחן, ציון מטלות

מהציון המשוקלל עם 10%שיעורי הבית מהוות הבוחן.

Page 19: הרצאה 02 בקרת זרימה: משפטי תנאי

קלוט מהמשתמש את אחוזי הנוכחות לתוךattendance 80אם < attendance -(80% )נוכחות קטנה מ

◦finalGrade = 0:אחרת

examGradeקלוט מהמשתמש את ציון המבחן לתוך ◦examGrade >= 60אם ◦

קלוט מהמשתמש את ציון הבוחן לתוךmiddleExamGrade קלוט מהמשתמש את ציון ממוצע שיעורי הבית לתוךhwGrade אםmiddleExamGrade > examGrade

tempGrade = 0.8*examGrade + 0.2*middleExamGrade :אחרת

tempGrade = examGrade :חשבfinalGrade = 0.1*hwGrade + 0.9*tempGradeאחרת: ◦

finalGrade = examGrade הצגfinalGrade

בכתיבה פורמלית

19 © Keren Kalif

Page 20: הרצאה 02 בקרת זרימה: משפטי תנאי

ש"ח 400במלון ע"ש גוליבר בלילפוט חדר יחיד עולה ש"ח. אדם בודד יכול גם 600ללילה וחדר זוגי עולה

להתאכסן בחדר זוגי ש"ח לאדם ליום150עבור חצי פנסיון יש לשלם ש"ח לאדם ליום220עבור פנסיון מלא יש לשלם 5 ש"ח ניתן לשלם עד כ- 1500עבור תשלום מעל

תשלומים הנחה15%עבור תשלום במזומן יש אורחים2בכל הזמנה יהיו רשומים עד ניתן להניח שבהזמנה כל האורחים מתארחים על בסיס

זהה )חצי פנסיון / פנסיון מלא / ללא פנסיון( יש לקלוט נתוני הזמנה מהמשתמש ולהציג לו את הסכום

לתשלום, וכן אם יש כמה תשלומים יש להציג את הסכום בכל תשלום

תשלום שהייה במלון

20 © Keren Kalif

Page 21: הרצאה 02 בקרת זרימה: משפטי תנאי

כמות האורחיםנתון קלט כמות לילותנתון קלט )סוג החדר )יחיד/זוגי נתון קלט )רק אם האורח יחיד, אחרת

בהכרח החדר זוגי( מחיר חדר יחידנתון קבוע מחיר חדר זוגינתון קבוע )סוג הפנסיון )ללא/חצי/מלאנתון קלט מחיר לחצי פנסיוןנתון קבוע מחיר לפנסיון מלאנתון קבוע האם התשלום מזומןנתון קלט הנחה למזומןנתון קבוע מספר התשלומיםנתון קלט סה"כ לתשלוםנתון חישוב ופלט הערך לתשלום בכל תשלוםנתון חישוב ופלט

תשלום שהייה במלון: הנתונים הדרושים

21 © Keren Kalif

ש"ח וחדר 400לילה בחדר יחיד עולה ש"ח. אדם בודד יכול גם 600זוגי עולה

להתאכסן בחדר זוגי. ש"ח 150עבור חצי פנסיון יש לשלם

לאדם ליום, עבור פנסיון מלא יש ש"ח.220לשלם

ש"ח ניתן 500עבור תשלום מעל תשלומים.2לשלם עד כ-

הנחה.15%עבור תשלום במזומן יש אורחים.2בכל הזמנה יהיו רשומים עד

יש לקלוט נתוני הזמנה ולהציג את הסכום לתשלום, וכן אם יש כמה

תשלומים יש להציג את הסכום בכל תשלום.

Page 22: הרצאה 02 בקרת זרימה: משפטי תנאי

החלק הראשוןמתעסק בחישוב

מחיר השהות על בסיס הנתונים הבאים:

כמות האורחים◦מספר הלילות◦סוג החדר◦סוג הפנסיון◦

תרשים זרימה(1)חלק

22 © Keren Kalif

Page 23: הרצאה 02 בקרת זרימה: משפטי תנאי

החלק השנימתעסק בחישוב

ערך התשלום הסופי ואופן התשלום על

בסיס הנתונים הבאים:

האם מזומן◦האם ניתן לשלם ◦

בתשלומיםמספר ◦

התשלומים

תרשים זרימה(2)חלק

23 © Keren Kalif

Page 24: הרצאה 02 בקרת זרימה: משפטי תנאי

:במדינת לילפוט הוגדרו מדרגות המס הבאות0% – 5,000עד הכנסה של ◦10% – 10,000עד הכנסה של ◦35% – 15,000עד הכנסה של ◦50% – 15,000כל הכנסה מעל ◦

:)יחד עם זאת ניתנות ההקלות הבאות )זיכוי בתשלום המס הנחה. קטין עם ילדים נחשב 50% שאינו הורה מקבל 18קטין מתחת לגיל ◦

בגיר. ילדים.3 ש"ח, עד מקסימום של 300הורים: עבור כל ילד ◦ ש"ח הנחה, אך רק אם הכנסתם 400תושבים הקרובים למגוריו של גוליבר: ◦

. קטינים אינם זכאים להנחה זו.10,000קטנה מ- ש"ח ו- 4000יש מס הכנסה שלילי )למשל הורה עם משכורת של

ש"ח(.600 ילדים, יקבל החזר של 2 .יש לקבל פרטי תושב ולהדפיס את סכום המס שעליו לשלם

חישוב מס הכנסה

בדוגמא זו יש כמה התפצלויות אפשריות, לכן נשתמש בתרשים עץ

להצגת הבעיה

24© Keren Kalif

Page 25: הרצאה 02 בקרת זרימה: משפטי תנאי

:קלטערך המשכורת ◦האם קטין או בגיר◦מספר ילדים◦איזור מגורים◦

:פלט / חישובערך המס לתשלום, או הזיכוי◦

הנתונים הדרושים:

25© Keren Kalif

Page 26: הרצאה 02 בקרת זרימה: משפטי תנאי

5000הכנסה >

מס 0%

:קטין

50%הנחה

:בגיר

זיכוי עבור ילדים, עד מקסימום

900של ש"ח

מגורים קרובים

לגוליבר: 400זיכוי

ש"ח

10000הכנסה > >5000

מס 10%

:קטין

50%הנחה

:בגיר

זיכוי עבור ילדים, עד מקסימום

900של ש"ח

מגורים קרובים

לגוליבר: 400זיכוי

ש"ח

15000הכנסה > >10000

מס 35%

:קטין

50%הנחה

:בגיר

זיכוי עבור ילדים, עד מקסימום

900של ש"ח

הכנסה > 15000

מס 50%

:קטין

50%הנחה

:בגיר

זיכוי עבור ילדים, עד מקסימום

900של ש"ח

עץ להצגת הנתונים

26 © Keren Kalif

מקרים זרים ובכל מקרה יש 4ישנם תתי-מיקרים הצגת הנתונים באופן גרפי

מאפשרת בקלות זיהוי אופטימיזציות

לא רלוונטי, כי בכל מקרה אינו

משלם מס

שיכפול בבדיקת הנתונים..

Page 27: הרצאה 02 בקרת זרימה: משפטי תנאי

ואפשר גם כך

Yהוא הערך לתשלום למס הכנסה

27© Keren Kalif

חלקים: 2לבעיה בחלק הראשון נקבע סכום המס

לתשלום, ובחלק השני נקבע סכום ההקלה.

Page 28: הרצאה 02 בקרת זרימה: משפטי תנאי

( קלוט משכורתXכמות ילדים והאם גר קרוב לגוליבר ,)5000 ערך המשכורת < אם :

◦Y=0 10000-5000ערך המשכורת בין אחרת אם:

◦Y= 0.1X 15000-10000ערך המשכורת בין אחרת אם:

◦Y= 0.35Xאחרת:

◦Y = 0.5X

?האם בגיר?X < 10000האם גר קרוב לגוליבר ו- ◦

Y -= 400

?3 כמות הילדים > האם◦Y -= 900

:אחרת◦ * ( =- 300)כמות הילדיםY

:אחרת◦Y = 0.5Y

הצגY

ובכתיבה פורמאלית

: חישוב המס חלק ראשון.לתשלום

מקרים זרים לפי ערך המשכורת

בדיקות 2שונות עבור בגיר, כאשר

2לשניה יש אפשרויות

טיפול שונה בקטין או

בבגיר, לאחר השלב הראשון

28© Keren Kalif

: חישוב החזר המסחלק שני

Page 29: הרצאה 02 בקרת זרימה: משפטי תנאי

:חברת הטלפונים בלילפוט הכריזה על מבצע ללקוחותיה דקות חינם למספר מועדף, ומעבר 180כל לקוח יקבל

אגורות 15לכמות זו של דקות ליעד המועדף התשלום יהיה לדקה.

דקות חינם לכל יעד אחר )שאינו 50כמו כן, הלקוח יקבל אגורות 40המספר המועדף(, ומעבר לכמות זו ישלם

לדקה. ק"מ מביתו של גוליבר( 5אם הלקוח גר באיזור סיכון )עד

דקות בחודש, שינוצלו קודם עבור 100הוא יקבל זיכוי של החריגה בדקות למספר המועדף, ורק אז עבור שאר

המספרים.

תשלום חשבון הסלולרי

29 © Keren Kalif

Page 30: הרצאה 02 בקרת זרימה: משפטי תנאי

כמות הדקות המוקצית חינם למספר המועדףנתון קבוע תעריף ליעד המועדףנתון קבוע כמות הדקות המוקצית חינם לשאר היעדיםנתון קבוע תעריף לשאר היעדיםנתון קבוע סה"כ דקות השימוש ליעד המועדףנתון קלט סה"כ דקות השימוש לשאר היעדיםנתון קלט מרחק סיכון מגוליברנתון קבוע מרחק הלקוח מגוליברנתון קלט זיכוי דקות עבור מגורים קרוב לגוליברנתון קבוע סה"כ לתשלוםנתון חישוב

תשלום חשבון הסלולרי: הנתונים הדרושים

30 © Keren Kalif

דקות חינם למספר מועדף, ומעבר לכמות זו של דקות ליעד המועדף 180כל לקוח יקבל אגורות לדקה.15התשלום יהיה

אגורות לדקה.40 דקות חינם לכל יעד אחר, ומעבר לכמות זו ישלם 50הלקוח יקבל דקות 100 ק"מ מביתו של גוליבר( הוא יקבל זיכוי של 5אם הלקוח גר באיזור סיכון )עד

בחודש, שינוצלו קודם עבור החריגה בדקות למספר המועדף, ורק אז עבור שאר המספרים.

Page 31: הרצאה 02 בקרת זרימה: משפטי תנאי

נחשב את התשלום ליעד המועדף ולשאר היעדים, ובסוף 1.אם יש צורך, נזכה בעבור קירבה לגוליבר

נחשב את התשלום ליעד המועדף תוך התחשבת בזיכוי, 2.ורק אח"כ נחשב כנ"ל עבור התשלום לשאר היעדים

אסטרטגיות לפתרון2

31 © Keren Kalif

דקות חינם למספר מועדף, ומעבר 180כל לקוח יקבל 15לכמות זו של דקות ליעד המועדף התשלום יהיה

אגורות לדקה. דקות חינם לכל יעד אחר, ומעבר לכמות 50הלקוח יקבל

אגורות לדקה.40זו ישלם ק"מ מביתו של גוליבר( 5אם הלקוח גר באיזור סיכון )עד

דקות בחודש, שינוצלו קודם עבור 100הוא יקבל זיכוי של החריגה בדקות למספר המועדף, ורק אז עבור שאר

המספרים.

בדרך הראשונה אנו עוקבים אחרי טקסט הבעיה )כלומר הזיכויים .בסוף(

בדרך השניה אנו מחלקים את הבעיה לפי נושאים: קודם סיום החישוב עבור היעד המועדף ואח"כ חישוב התשלום לשאר

.היעדים

Page 32: הרצאה 02 בקרת זרימה: משפטי תנאי

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

הוא גם ערך לגיטמי(.0נחשב את סכום הדקות לזיכוי )0נאתחל את הסכום לתשלום כ- ◦

32 © Keren Kalif

תרשים זרימה2לאסטרטגיה (1)חלק

Page 33: הרצאה 02 בקרת זרימה: משפטי תנאי

33 © Keren Kalif

בחלק השני נחשב את

הסכום לתשלום בעבור השיחות ליעד המועדף,

לאחר כלל ההטבות

תרשים זרימה2לאסטרטגיה (2)חלק

אם יש יתרה לתשלום ויש דקות זיכוי

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

0

Page 34: הרצאה 02 בקרת זרימה: משפטי תנאי

34 © Keren Kalif

בחלק השלישי נחשב את

הסכום לתשלום בעבור השיחות לשאר היעדים,

לאחר כלל ההטבות

תרשים זרימה2לאסטרטגיה (3)חלק

אם יש יתרה לתשלום ויש דקות זיכוי

Page 35: הרצאה 02 בקרת זרימה: משפטי תנאי

,יש לחשב ציון סופי לסטודנט בקורס. בהינתן ציון המבחןכמות המטלות שהוגשו וממוצע המטלות שהוגשו, יש

לחשב את ציונו הסופי של הסטודנט עפ"י הנתונים שבטבלה הבאה:

Yממוצע המטלות –

בעיה המוצגת בעזרת טבלה

X < 60 X >= 60 מבחן ) (Xציוןשהוגשו מטלות כמות

(N)

X X N <= 4

X*0.9 + Y*0.1 X*0.8 + Y*0.2 5 <= N <= 7

X*0.6 + Y*0.4 X*0.7 + Y*0.3 8 <= N

35© Keren Kalif

Page 36: הרצאה 02 בקרת זרימה: משפטי תנאי

להצגת הנתונים: התפצלות ראשית לפי ציון )עמודות(1עץ

60ציון <

N <= 4

X

5 <= N <= 7

0.9X+0.1Y

8 <= N

0.6X+0.4Y

ציון >= 60

N <= 4

X

5 <= N <= 7

0.8X+0.2Y

8 <= N

0.7X+0.3Y

ניתן לראות שכאשר מספר העבודות , לא משנה מהו ציון 4שהוגשו קטן מ-

המבחן, ובכל מקרה הציון הסופי הוא ציון המבחן.

אז אולי כדאי לשרטט את העץ אחרת..36© Keren Kalif

Page 37: הרצאה 02 בקרת זרימה: משפטי תנאי

שהוגשו 2עץ עבודות מספר לפי ראשית התפצלות הנתונים: להצגת )שורות(

N <= 4

60ציון <

X

60ציון >=

X

5 <= N <= 7

60ציון <

0.9X+0.1Y

60ציון >=

0.8X+0.2Y

8 <= N

60ציון <

0.6X+0.4Y

60ציון >=

0.7X+0.3Y

שיכפול בבדיקת הנתונים..

37© Keren Kalif

Page 38: הרצאה 02 בקרת זרימה: משפטי תנאי

התפצלות ראשית לפי מספר עבודות שהוגשו )שורות( להצגת הנתונים: 2עץ - אופטימיזציה

N <= 4

X

5 <= N <= 7

60ציון <

0.9X+0.1Y

60ציון >=

0.8X+0.2Y

8 <= N

60ציון <

0.6X+0.4Y

60ציון >=

0.7X+0.3Y

38© Keren Kalif

Page 39: הרצאה 02 בקרת זרימה: משפטי תנאי

( קלוט ציון מבחןX( כמות מטלות שהוגשו ,)N וממוצע המטלות )(Yשהוגשו )

4 מספר המטלות שהוגשו <= אםXהציון הסופי הוא ציון המבחן ◦

7 או 6,5מספר המטלות שהוגשו הוא אחרת אם::60 ציון המבחן < אם◦

0.9הציון הסופי הואX + 0.1Y

:(60)אם ציון המבחן <= אחרת◦ 0.8הציון הסופי הואX + 0.2Y

(8)אם כמות המטלות <= אחרת::60 ציון המבחן < אם◦

0.6הציון הסופי הואX + 0.4Y

:(60)אם ציון המבחן <= אחרת◦ 0.7הציון הסופי הואX + 0.3Y

ובכתיבה פורמאלית

נשים לב לסגנון הכתיבה המדורג

39© Keren Kalif

את התנאים שבסוגריים אין צורך לרשום מאחר והם נגזרים מאי-קיום

התנאי שלפני.

Page 40: הרצאה 02 בקרת זרימה: משפטי תנאי

,יש לחשב ציון סופי לסטודנט בקורס. בהינתן ציון המבחןכמות המטלות שהוגשו וממוצע המטלות שהוגשו, יש

לחשב את ציונו הסופי של הסטודנט עפ"י הנתונים שבטבלה הבאה:

(2בעיה המוצגת בעזרת טבלה )

X < 60 X >= 60 מבחן ) (Xציוןשהוגשו מטלות כמות

(N)

X X N =< 4

X*0.9 + Y*0.1 X*0.8 + Y*0.2 5 =< N <= 7

X*0.9 + Y*0.1 X*0.7 + Y*0.3 8 <= N

40© Keren Kalif

Page 41: הרצאה 02 בקרת זרימה: משפטי תנאי

להצגת הנתונים: התפצלות ראשית לפי ציון )עמודות(1עץ

60ציון <

N <= 4

X

5 <= N <= 7

0.9X+0.1Y

8 <= N

0.9X+0.1Y

ציון >= 60

N <= 4

X

5 <= N <= 7

0.8X+0.2Y

8 <= N

0.7X+0.3Y

שיכפול בבדיקת הנתונים..

41© Keren Kalif

Page 42: הרצאה 02 בקרת זרימה: משפטי תנאי

- 1עץ )עמודות( ציון לפי ראשית התפצלות הנתונים: להצגת אופטימיזציה

60ציון <

N <= 4

X

4 < N

0.9X+0.1Y

ציון >= 60

N <= 4

X

5 <= N <= 7

0.8X+0.2Y

8 <= N

0.7X+0.3Y

איחוד התנאים המשותפים

וגם ניתן לראות שכאשר מספר העבודות שהוגשו

, הציון הסופי הוא 4קטן מ- ציון המבחן

42© Keren Kalif

Page 43: הרצאה 02 בקרת זרימה: משפטי תנאי

שהוגשו 2עץ עבודות מספר לפי ראשית התפצלות הנתונים: להצגת )שורות(

N <= 4

60ציון <

X

60ציון >=

X

5 <= N <= 7

60ציון <

0.9X+0.1Y

60ציון >=

0.8X+0.2Y

8 <= N

60ציון <

0.9X+0.1Y

60ציון >=

0.7X+0.3Y

שיכפול בבדיקת הנתונים..

43© Keren Kalif

Page 44: הרצאה 02 בקרת זרימה: משפטי תנאי

שהוגשו 2עץ עבודות מספר לפי ראשית התפצלות הנתונים: להצגת )אופטימיזציה(

N <= 4

X

5 <= N <= 7

60ציון <

0.9X+0.1Y

60ציון >=

0.8X+0.2Y

8 <= N

60ציון <

0.9X+0.1Y

60ציון >=

0.7X+0.3Y

איחוד התנאים המשותפים, ולכן אין יותר תת-תנאי

וגם פה ניתן לראות שיכפול N > 4 ו- 60כאשר הציון <=

בדוגמא זו אין העדפה מובהקת לאחד העצים

44© Keren Kalif

Page 45: הרצאה 02 בקרת זרימה: משפטי תנאי

:נקפיד על פשטות הטקסט, ונשתמש במושגים הבאים– עבור ביצוע פעולות בעת קיום תנאי מסוייםאם <תנאי> אחרת ◦

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

כתיבה פורמלית - דגשים

45© Keren Kalif

Page 46: הרצאה 02 בקרת זרימה: משפטי תנאי

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

46© Keren Kalif

ביחידה זו למדנו: