31
ההההה01 הההה הההההה ההההההה ףףף ףףףף

הרצאה 01 סוגי נתונים בתוכנית

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: הרצאה 01 סוגי נתונים בתוכנית

01הרצאה סוגי נתונים בתוכנית

כליף קרן

Page 2: הרצאה 01 סוגי נתונים בתוכנית

ניתוח נתוני בעיה:מיפוי הנתונים

נתון קלט◦נתון חישוב◦נתון פלט◦נתון קבוע◦

2 © Keren Kalif

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

Page 3: הרצאה 01 סוגי נתונים בתוכנית

ש"ח35כרטיס לקולנוע עולה צריך לשאול את המשתמש כמה כרטיסים הוא רוצה

ולהציג לו את המחיר המבוקש לתשלום

:נתוני הבעיהמחיר כרטיס◦כמות כרטיסים◦סה"כ לתשלום◦

3 © Keren Kalif

קופת הכרטיסים

Page 4: הרצאה 01 סוגי נתונים בתוכנית

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

:חשב את הסכום לתשלום pay = count*35

הצג אתpay

4 © Keren Kalif

קופת הכרטיסים: אסטרטגיית הפתרון

Page 5: הרצאה 01 סוגי נתונים בתוכנית

-ש"ח35מחיר הכרטיס נקבע באופן שרירותי ל

לכן נשדרג את הפתרון כך::הגדר קבוע

PRICE_PER_TICKET = 35 שאל את המשתמש כמה כרטיסים ברצונו לקנות ואכסן

countערך זה בתוך :חשב את הסכום לתשלום

pay = count* PRICE_PER_TICKET הצג אתpay

5 © Keren Kalif

קופת הכרטיסים: עבודה עם קבועים

35: תפקידו של הערך 1יתרון ברור בפעולת החישוב.

הקבוע 2יתרון ערך שינוי :יהיה במקום ממוקד אחד ולא בהמשך תיקון ידרוש

התוכנית.

Page 6: הרצאה 01 סוגי נתונים בתוכנית

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

6 © Keren Kalif

קופת הכרטיסים: ניתוח הנתונים

כל נתון בתוכנית יסווג לפי הקבוצות הבאות:ערך שרירותי כלשהו הנקבע ע"י מגדיר הבעיהנתון קבוע: 1.נתון המתקבל מהמשתמשנתון קלט: 2.נתון המחושב בעזרת הנתונים הקבועים ונתוני הקלט נתון חישוב: 3.

שקיבלנונתון שיוצג בסוף נתון פלט: 4.

תמיד נקלוט את נתון הקלט לפני שנשים ערך בנתון

החישוב!

Page 7: הרצאה 01 סוגי נתונים בתוכנית

?מה מייצג הביטוי הבא60 * 60

?ומה מייצג הביטוי הבאNUM_OF_MINUTES * NUM_OF_SECONDS

שימוש בקבועים

7 © Keren Kalif

עבודה עם קבועים הופכת את הנוסחאות ליותר

קריאות

Page 8: הרצאה 01 סוגי נתונים בתוכנית

קבל מהמשתמש מספר המייצג אורך בס"מ, והצג אתהאורך באינצ'ים

:נוסחאת ההמרה אינץ'1 ס"מ = 2.54

נציג לו 10דוגמא: אם המשתמש הכניס את המספר ,הודעה:

אינצ'ים3.937 ס"מ הם 10◦

8 © Keren Kalif

המרה מס"מ לאינץ'

Page 9: הרצאה 01 סוגי נתונים בתוכנית

:למעשה, התבססנו על ההמרה הבאה אינץ' 1 ס"מ = 2.54◦ אינץ'0.397 ס"מ = 1◦

:הנתונים הדרושיםמספר בס"מ◦מספר באינצ'ים◦

9 © Keren Kalif

המרה מס"מ לאינץ' )המשך(

Page 10: הרצאה 01 סוגי נתונים בתוכנית

קרא מהמשתמש את מספר הס"מ לתוךcm :חשבinch=cm*0.397 הצג אתinch

שידרוג באמצעות הגדרת קבוע: הגדרINCH_TO_CM = 0.397 קרא מהמשתמש את מספר הס"מ, לתוךcm :חשבinch=cm* INCH_TO_CM הצג אתinch

10 © Keren Kalif

המרה מס"מ לאינץ': אסטרטגית הפתרון

-cmהוא נתון הקלט -inch הוא נתון החישוב

והפלט

INCH_TO_CM הוא נתוןקבוע

Page 11: הרצאה 01 סוגי נתונים בתוכנית

:מחיר נסיעה במונית משוקלל מהרכיבים הבאים ש"ח10.20מחיר התחלתי: ◦ ש"ח1.30מחיר עבור כל ק"מ: ◦ ש"ח2.00מחיר עבור כל מזוודה: ◦

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

11 © Keren Kalif

מחיר נסיעה במונית

Page 12: הרצאה 01 סוגי נתונים בתוכנית

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

12 © Keren Kalif

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

הבאים: ש"ח10.20מחיר התחלתי:

ש"ח1.30מחיר עבור כל ק"מ: ש"ח2.00מחיר עבור כל מזוודה:

Page 13: הרצאה 01 סוגי נתונים בתוכנית

הגדרSTART_FEE = 10.20 הגדרPRICE_PER_KM = 1.30 הגדרPRICE_PER_LUGGAGE = 2.00 קרא מהמשתמש את כמות הק"מ לתוךnumOfKm קרא מהמשתמש את מספר המזוודות לתוךnumOfLuggage :חשב

total = START_FEE + numOfKm* PRICE_PER_KM + numOfLuggage* PRICE_PER_LUGGAGE

הצג אתtotal13 © Keren Kalif

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

הבאים: ש"ח10.20מחיר התחלתי:

ש"ח1.30מחיר עבור כל ק"מ: ש"ח2.00מחיר עבור כל מזוודה:

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

נתון קבועמחיר עבור ק"מ נתון קבועמחיר עבור מזוודה

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

פלט

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

0

Page 14: הרצאה 01 סוגי נתונים בתוכנית

-ק"מ רכיבה על 40 ק"מ שחיה, 1.5תריאטלון מורכב מ ק"מ ריצה10אופניים ו-

יש לקבל מהמשתמש את המהירות של הספורטאי בכלחלק

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

14 © Keren Kalif

זמן ביצוע תריאטלון

Page 15: הרצאה 01 סוגי נתונים בתוכנית

נתון קבועמרחק שחיה ◦ נתון קבועמרחק רכיבה ◦ נתון קבועמרחק ריצה ◦

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

נתון חישוב ופלטזמן שחיה ◦ נתון חישוב ופלטזמן רכיבה ◦ נתון חישוב ופלטזמן ריצה ◦ נתון חישוב ופלטזמן כולל ◦

זמן ביצוע תריאטלון: הנתונים הדרושים

15 © Keren Kalif

מ- מורכב שחיה, 1.5תריאטלון ק"מ ק"מ 40 ו- אופניים על לקבל 10רכיבה יש ריצה. ק"מ

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

חלק וכן את הזמן הכולל.

Page 16: הרצאה 01 סוגי נתונים בתוכנית

הגדרSWIM_LEN = 1.5 הגדרRIDE_LEN = 40 הגדרRUN_LEN = 10 קרא מהמשתמש את מהירות השחיה לתוךswimSpeed קרא מהמשתמש את מהירות הרכיבה לתוךrideSpeed קרא מהמשתמש את מהירות הריצה לתוךrunSpeed :חשב

swimTime = SWIM_LEN/swimSpeed rideTime = RIDE_LEN/rideSpeed runTime = RUN_LEN/runSpeed totalTime = swimTime + rideTime + runTime

הצג אתswimTime, rideTime, runTime, totalTime

זמן ביצוע תריאטלון: אסטרטגית הפתרון

16 © Keren Kalif

מ- מורכב שחיה, 1.5תריאטלון ק"מ ק"מ 40 ו- אופניים על לקבל 10רכיבה יש ריצה. ק"מ

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

חלק וכן את הזמן הכולל.

Page 17: הרצאה 01 סוגי נתונים בתוכנית

יציאות: אייל, חורשים וקסם.3 באיזור המרכז יש 6בכביש

ק"מ.12מרחק המקטע אייל - חורשים הינו ק"מ8מרחק המקטע חורשים - קסם הינו

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

* נתוני המרחקים אינם תואמים את המציאות, אלא השערה בלבד

17 © Keren Kalif

חישוב מהירות נסיעה ממוצעת

Page 18: הרצאה 01 סוגי נתונים בתוכנית

נתון קבועהמרחק בין מחלף אייל למחלף חורשים ◦ נתון קבועהמרחק בין מחלף חורשים למחלף קסם ◦

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

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

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

18 © Keren Kalif

יש 6בכביש המרכז באיזור חורשים 3 אייל, יציאות: וקסם.

ק"מ.12מרחק המקטע אייל - חורשים הינו ק"מ.8מרחק המקטע חורשים - קסם הינו

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

Page 19: הרצאה 01 סוגי נתונים בתוכנית

הגדרDIST_EYAL_SHORASHIM = 12 הגדרDIST_SHORASHIM_KESEM = 8 – קרא מהמשתמש את הזמן שלקח לו לנסוע במקטע אייל

timeEyalShorashimחורשים לתוך קרא מהמשתמש את הזמן שלקח לו לנסוע במקטע שורשים

timeShorashimKesem– קסם לתוך :חשב

avgSpeed =

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

19 © Keren Kalif

יש 6בכביש המרכז באיזור חורשים 3 אייל, יציאות: וקסם.

ק"מ.12מרחק המקטע אייל - חורשים הינו ק"מ.8מרחק המקטע חורשים - קסם הינו

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

ולהציג את מהירות הנסיעה הממוצעת.

ashimKesem timeShor orashimtimeEyalSh

____

KESEMSHORASHIMDISTSHORASHIMEYALDIST

:תזכורתמהירות = דרך /

זמן

Page 20: הרצאה 01 סוגי נתונים בתוכנית

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

הנקודות הממוצעת שלו יש להציג מה הייתה תוצאת הקבוצה לו החמישייה

דקות המשחק )בהנחה 40הראשונה הייתה משחקת בכל שהתפוקה של כל שחקן אינה משתנה(.

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

20 © Keren Kalif

חישוב ממוצע החמישייה

Page 21: הרצאה 01 סוגי נתונים בתוכנית

(avgTime1 )1זמן ממוצע של שחקן ◦(avgPoints1 )1כמות נקודות ממוצעת של שחקן ◦◦...(avgTime5 )5זמן ממוצע של שחקן ◦(avgPoints5 )5כמות נקודות ממוצעת של שחקן ◦

(avgPerMinute1 )נק' לדקה( )1תפוקת שחקן ◦◦...(avgPerMinute5 )נק' לדקה( )5תפוקת שחקן ◦

סה"כ הנקודות לקבוצה◦

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

21 © Keren Kalif

נתוני קלט

נתוני חישוב

נתון חישוב ופלט

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

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

דקות המשחק.40הייתה משחקת בכל

Page 22: הרצאה 01 סוגי נתונים בתוכנית

לתוך 1קרא מהמשתמש את הזמן הממוצע של שחקן avgTime1 לתוך 1קרא מהמשתמש את ממוצע הנקודות של שחקן avgPoints1... לתוך 5קרא מהמשתמש את הזמן הממוצע של שחקן avgTime5 לתוך 5קרא מהמשתמש את ממוצע הנקודות של שחקן avgPoints5

1חשב ממוצע לדקה עבור שחקן :

avgPerMinute1 = avgPoints1 / avgTime1 ... 5חשב ממוצע לדקה עבור שחקן :

avgPerMinute5= avgPoints5 / avgTime5

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

totalAvgPerMinute = avgPerMinute1 + … + avgPerMinute5 -דקות:40חשב סה"כ הנקודות ב

totalPoints = 40 * totalAvgPerMinute הצגtotalPoints

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

22 © Keren Kalif

Page 23: הרצאה 01 סוגי נתונים בתוכנית

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

שניות5בכל קומה בה המעלית עוצרת היא מתעכבת

שניות3זמן הנסיעה בין קומה לקומה הינו

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

23 © Keren Kalif

זמן נסיעה במעלית

Page 24: הרצאה 01 סוגי נתונים בתוכנית

(TIME_PER_FLOORזמן נסיעה מקומה לקומה )◦(TIME_FOR_STOPזמן עצירה בקומה )◦

מיקומה הנוכחי של המעלית ◦הקומה ממנה מזמנים את המעלית◦קומת היעד הסופית◦

הזמן הדרוש למעלית להגיע לקומה המזמנת◦זמן הנסיעה מהקומה המזמנת לקומת היעד◦

סה"כ הזמן◦

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

24 © Keren Kalif

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

שניות.5בכל קומה בה המעלית עוצרת היא מתעכבת שניות.3זמן הנסיעה בין קומה לקומה הינו

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

נתוני קלט

נתוני חישוב

נתון חישוב ופלט

נתונים קבועים

Page 25: הרצאה 01 סוגי נתונים בתוכנית

הגדרTIME_PER_FLOOR = 3 הגדרTIME_FOR_STOP = 5 קרא מהמשתמש את מיקומה הנוכחי של המעלית לתוךcurrentFloor קרא מהמשתמש את הקומה ממנה מזמנים את המעלית לתוך

initiatingFloor קרא מהמשתמש את הקומה אליה הנוסע רוצה להגיע לתוך

destinationFloor חשב את מספר הקומות בין מיקומה הנוכחי של המעלית לקומה

המזמנת:floorsTillInitiatingFloor = |currentFloor – initiatingFloor|

:חשב את מספר הקומות בין הקומה המזמנת לקומת היעד הסופיתfloorsToTravel = |initiatingFloor - destinationFloor|

:חשב את זמן הנסיעהtotalTime = )floorsTillInitiatingFloor + floorsToTravel(*

TIME_PER_FLOOR + TIME_FOR_STOP הצגtotalTime

זמן נסיעה במעלית: אסטרטגיית הפתרון

25 © Keren Kalif

Page 26: הרצאה 01 סוגי נתונים בתוכנית

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

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

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

20% ש"ח למ"ר5מחיר נייר אריזה הוא המשתמש מזין את מחיר המוצר ואת מימדי הקופסא

הרצויה )במ"ר( + מע"מ ואת 16%יש להציג מחיר הכולל את מחיר המוצר

מחיר האריזה

מחיר מוצר + אריזה

26 © Keren Kalif

Page 27: הרצאה 01 סוגי נתונים בתוכנית

נתון קבועמחיר נייר האריזה למ"ר ◦ נתון קבועמע"מ ◦ נתון קבועאחוזי האקסטרה של נייר האריזה ◦

נתון קלטגובה הקופסא ◦ נתון קלטרוחב הקופסא ◦ נתון קלטעומק הקופסא ◦ נתון קלטמחיר המוצר ◦

נתון חישובשטח הנייר לאריזה ◦ נתון חישובמחיר נייר האריזה ◦

נתון חישוב ונתון פלטהמחיר הסופי ◦

מחיר מוצר + אריזה: הנתונים הדרושים

27 © Keren Kalif

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

.20%הפנים של הקופסא + ש"ח ליחידת מידה.5מחיר נייר אריזה הוא

מימדי ואת המוצר מחיר את מזין המשתמש הקופסא הרצויה.

+ הכולל את מחיר המוצר להציג מחיר 16%יש מע"מ ואת מחיר האריזה.

Page 28: הרצאה 01 סוגי נתונים בתוכנית

PRICE_PER_UNIT = 5הגדר ◦TAXES = 1.16הגדר ◦EXTRA_SIZE = 1.2הגדר ◦

heightקלוט מהמשתמש את גובה הקופסא לתוך ◦widthקלוט מהמשתמש את רוחב הקופסא לתוך ◦depthקלוט מהמשתמש את עומק הקופסא לתוך ◦priceקלוט מהמשתמש את מחיר המוצר לתוך ◦

חשב את שטח הנייר לאריזה:◦size = EXTRA_SIZE *2*)height*width + width*depth + depth*height(

paperPrice = size*PRICE_PER_UNITחשב את מחיר נייר האריזה: ◦totalPrice = )price+paperPrice(*TAXESחשב את המחיר הסופי: ◦totalPriceהצג את ◦

מחיר מוצר + אריזה: אסטרטגיית הפתרון

28 © Keren Kalif

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

.20%הפנים של הקופסא + ש"ח ליחידת מידה.5מחיר נייר אריזה הוא

מימדי ואת המוצר מחיר את מזין המשתמש הקופסא הרצויה.

+ הכולל את מחיר המוצר להציג מחיר 16%יש מע"מ ואת מחיר האריזה.

Page 29: הרצאה 01 סוגי נתונים בתוכנית

נתונים עיגולים במרחבבשני עיגולים יש מספרים

:המטרהלהחליף בין ערכי העיגולים )כלומר, שהערך ◦

שבכחול יהיה בורוד והערך שבורוד יהיה בכחול(

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

חייב להיות מאוחסן בעיגול

החלפת ערכים

5

8

8

5

29© Keren Kalif

Page 30: הרצאה 01 סוגי נתונים בתוכנית

:בכתיבה פורמליתהעבר ערכו של עיגול כחול לעיגול סגול◦העבר ערכו של עיגול ורוד לעיגול כחול◦העבר ערכו של עיגול סגול לעיגול ורוד◦

החלפת ערכים: אסטרטגיית הפתרון

5

8

58

5

8

:מצב התחלתי

8

5

:מצב סופי

30© Keren Kalif

Page 31: הרצאה 01 סוגי נתונים בתוכנית

ניתוח נתוני בעיה:מיפוי הנתונים

נתון קלט◦נתון חישוב◦נתון פלט◦נתון קבוע◦

31© Keren Kalif

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