1 / 31

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

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

renee-wood
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. הרצאה 01סוגי נתונים בתוכנית קרן כליף

  2. ביחידה זו נלמד: • ניתוח נתוני בעיה • מיפוי הנתונים: • נתון קלט • נתון חישוב • נתון פלט • נתון קבוע

  3. קופת הכרטיסים • כרטיס לקולנוע עולה 35 ש"ח • צריך לשאול את המשתמש כמה כרטיסים הוא רוצה ולהציג לו את המחיר המבוקש לתשלום • נתוני הבעיה: • מחיר כרטיס • כמות כרטיסים • סה"כ לתשלום

  4. קופת הכרטיסים: אסטרטגיית הפתרון • שאל את המשתמש כמה כרטיסים ברצונו לקנות ואכסן ערך זה בתוך count • חשב את הסכום לתשלום: pay = count*35 • הצג את pay

  5. קופת הכרטיסים: עבודה עם קבועים • מחיר הכרטיס נקבע באופן שרירותי ל- 35 ש"ח לכן נשדרג את הפתרון כך: • הגדר קבוע: PRICE_PER_TICKET = 35 • שאל את המשתמש כמה כרטיסים ברצונו לקנות ואכסן ערך זה בתוך count • חשב את הסכום לתשלום: pay = count* PRICE_PER_TICKET • הצג את pay יתרון 1: תפקידו של הערך 35 ברור בפעולת החישוב. יתרון 2: שינוי ערך הקבוע יהיה במקום ממוקד אחד ולא ידרוש תיקון בהמשך התוכנית.

  6. קופת הכרטיסים: ניתוח הנתונים • מחיר כרטיס  נתון קבוע • כמות כרטיסים  נתון קלט • סה"כ לתשלום  נתון חישוב ונתון פלט כל נתון בתוכנית יסווג לפי הקבוצות הבאות: נתון קבוע: ערך שרירותי כלשהו הנקבע ע"י מגדיר הבעיה נתון קלט: נתון המתקבל מהמשתמש נתון חישוב: נתון המחושב בעזרת הנתונים הקבועים ונתוני הקלט שקיבלנו נתון פלט: נתון שיוצג בסוף תמיד נקלוט את נתון הקלט לפני שנשים ערך בנתון החישוב!

  7. שימוש בקבועים • מה מייצג הביטוי הבא? 60 * 60 • ומה מייצג הביטוי הבא? NUM_OF_MINUTES * NUM_OF_SECONDS עבודה עם קבועים הופכת את הנוסחאות ליותר קריאות

  8. המרה מס"מ לאינץ' • קבל מהמשתמש מספר המייצג אורך בס"מ, והצג את האורך באינצ'ים • נוסחאת ההמרה: 2.54 ס"מ = 1 אינץ' • דוגמא: אם המשתמש הכניס את המספר 10, נציג לו הודעה: • 10 ס"מ הם 3.937 אינצ'ים

  9. המרה מס"מ לאינץ' (המשך) • למעשה, התבססנו על ההמרה הבאה: • 2.54 ס"מ = 1 אינץ'  • 1 ס"מ = 0.397 אינץ' • הנתונים הדרושים: • מספר בס"מ • מספר באינצ'ים

  10. המרה מס"מ לאינץ': אסטרטגית הפתרון • קרא מהמשתמש את מספר הס"מ לתוך cm • חשב: inch=cm*0.397 • הצג את inch שידרוג באמצעות הגדרת קבוע: • הגדר INCH_TO_CM = 0.397 • קרא מהמשתמש את מספר הס"מ, לתוך cm • חשב: inch=cm* INCH_TO_CM • הצג את inch - cm הוא נתון הקלט - inchהוא נתון החישוב והפלט INCH_TO_CMהוא נתון קבוע

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

  12. מחיר נסיעה במונית: הנתונים הדרושים • מחיר התחלתי  נתון קבוע • מחיר עבור ק"מ  נתון קבוע • מחיר עבור מזוודה  נתון קבוע • מספר ק"מ לנסיעה  נתון קלט • מספר מזוודות  נתון קלט • סה"כ לתשלום  נתון חישוב ונתון פלט • מחיר נסיעה במונית משוקלל מהרכיבים הבאים: • מחיר התחלתי: 10.20 ש"ח • מחיר עבור כל ק"מ: 1.30 ש"ח • מחיר עבור כל מזוודה: 2.00 ש"ח

  13. מחיר נסיעה במונית: אסטרטגית הפתרון • הנתונים הדרושים: • מחיר התחלתי  נתון קבוע • מחיר עבור ק"מ  נתון קבוע • מחיר עבור מזוודה  נתון קבוע • מספר ק"מ לנסיעה  נתון קלט • מספר מזוודות  נתון קלט • סה"כ לתשלום  נתון חישוב ונתון פלט • הגדר 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 • הצג את total • מחיר נסיעה במונית משוקלל מהרכיבים הבאים: • מחיר התחלתי: 10.20 ש"ח • מחיר עבור כל ק"מ: 1.30 ש"ח • מחיר עבור כל מזוודה: 2.00 ש"ח נשים לב שהנוסחא עובדת גם אם מספר המזוודות הוא 0

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

  15. זמן ביצוע תריאטלון: הנתונים הדרושים תריאטלון מורכב מ- 1.5 ק"מ שחיה, 40 ק"מ רכיבה על אופניים ו- 10 ק"מ ריצה. יש לקבל המשתמש את מהירותו של הספורטאי בכל חלק. יש להציג כמה זמן לוקח לספורטאי לעבור כל חלק וכן את הזמן הכולל. • מרחק שחיה  נתון קבוע • מרחק רכיבה  נתון קבוע • מרחק ריצה  נתון קבוע • מהירות שחיה  נתון קלט • מהירות רכיבה  נתון קלט • מהירות ריצה  נתון קלט • זמן שחיה  נתון חישוב ופלט • זמן רכיבה  נתון חישוב ופלט • זמן ריצה  נתון חישוב ופלט • זמן כולל  נתון חישוב ופלט

  16. זמן ביצוע תריאטלון: אסטרטגית הפתרון תריאטלון מורכב מ- 1.5 ק"מ שחיה, 40 ק"מ רכיבה על אופניים ו- 10 ק"מ ריצה. יש לקבל המשתמש את מהירותו של הספורטאי בכל חלק. יש להציג כמה זמן לוקח לספורטאי לעבור כל חלק וכן את הזמן הכולל. • הגדר 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

  17. חישוב מהירות נסיעה ממוצעת • בכביש 6 באיזור המרכז יש 3 יציאות: אייל, חורשים וקסם. • מרחק המקטע אייל - חורשים הינו 12 ק"מ. • מרחק המקטע חורשים - קסם הינו 8 ק"מ • יש לשאול את המשתמש כמה זמן לקח לו לעבור כל מקטע ולהציג את מהירות הנסיעה הממוצעת. * נתוני המרחקים אינם תואמים את המציאות, אלא השערה בלבד

  18. חישוב מהירות נסיעה ממוצעת: הנתונים הדרושים • המרחק בין מחלף אייל למחלף חורשים  נתון קבוע • המרחק בין מחלף חורשים למחלף קסם  נתון קבוע • זמן הנסיעה בין מחלף אייל למחלף חורשים  נתון קלט • זמן הנסיעה בין מחלף חורשים למחלף קדם  נתון קלט • מהירות הנסיעה הממוצע: נתון חישוב ופלט בכביש 6 באיזור המרכז יש 3 יציאות: אייל, חורשים וקסם. מרחק המקטע אייל - חורשים הינו 12 ק"מ. מרחק המקטע חורשים - קסם הינו 8 ק"מ. יש לשאול את המשתמש כמה זמן לקח לו לעבור כל מקטע ולהציג את מהירות הנסיעה הממוצעת.

  19. חישוב מהירות נסיעה ממוצעת : אסטרטגית הפתרון בכביש 6 באיזור המרכז יש 3 יציאות: אייל, חורשים וקסם. מרחק המקטע אייל - חורשים הינו 12 ק"מ. מרחק המקטע חורשים - קסם הינו 8 ק"מ. יש לשאול את המשתמש כמה זמן לקח לו לעבור כל מקטע ולהציג את מהירות הנסיעה הממוצעת. • הגדר DIST_EYAL_SHORASHIM = 12 • הגדר DIST_SHORASHIM_KESEM = 8 • קרא מהמשתמש את הזמן שלקח לו לנסוע במקטע אייל – חורשים לתוך timeEyalShorashim • קרא מהמשתמש את הזמן שלקח לו לנסוע במקטע שורשים – קסם לתוך timeShorashimKesem • חשב: avgSpeed = תזכורת: מהירות = דרך / זמן

  20. חישוב ממוצע החמישייה • עבור החמישייה הראשונה בקבוצת כדורסל, נבקש את כמות הדקות הממוצעת של כל שחקן במשחק ואת כמות הנקודות הממוצעת שלו • יש להציג מה הייתה תוצאת הקבוצה לו החמישייה הראשונה הייתה משחקת בכל 40 דקות המשחק (בהנחה שהתפוקה של כל שחקן אינה משתנה).  למעשה נרצה לחשב מהי תפוקתו של כל שחקן בממוצע בדקה ואז, את סכום התפוקות נכפיל ב- 40

  21. חישוב ממוצע החמישייה: הנתונים הדרושים עבור החמישייה הראשונה בקבוצת כדורסל, נבקש את כמות הדקות הממוצעת של כל שחקן במשחק ואת כמות הנקודות הממוצעת שלו. יש להציג מה הייתה תוצאת הקבוצה לו החמישייה הראשונה הייתה משחקת בכל 40 דקות המשחק. • זמן ממוצע של שחקן 1 (avgTime1) • כמות נקודות ממוצעת של שחקן 1 (avgPoints1) • ... • זמן ממוצע של שחקן 5 (avgTime5) • כמות נקודות ממוצעת של שחקן 5 (avgPoints5) • תפוקת שחקן 1 (נק' לדקה) (avgPerMinute1) • ... • תפוקת שחקן 5 (נק' לדקה) (avgPerMinute5) • סה"כ הנקודות לקבוצה נתוני קלט נתוני חישוב נתון חישוב ופלט

  22. חישוב ממוצע החמישייה: אסטרטגיית הפתרון • קרא מהמשתמש את הזמן הממוצע של שחקן 1 לתוך avgTime1 • קרא מהמשתמש את ממוצע הנקודות של שחקן 1 לתוך avgPoints1 • ... • קרא מהמשתמש את הזמן הממוצע של שחקן 5 לתוך avgTime5 • קרא מהמשתמש את ממוצע הנקודות של שחקן 5 לתוך avgPoints5 • חשב ממוצע לדקה עבור שחקן 1: avgPerMinute1 = avgPoints1 / avgTime1 • ... • חשב ממוצע לדקה עבור שחקן 5: avgPerMinute5= avgPoints5 / avgTime5 • חשב סה"כ נקודות לדקה עבור החמישייה: totalAvgPerMinute = avgPerMinute1 + … + avgPerMinute5 • חשב סה"כ הנקודות ב- 40 דקות: totalPoints = 40 * totalAvgPerMinute • הצג totalPoints

  23. זמן נסיעה במעלית • נרצה לחשב את הזמן מהרגע שזימנו את המעלית עד אשר נגיע לקומת היעד • בכל קומה בה המעלית עוצרת היא מתעכבת 5 שניות • זמן הנסיעה בין קומה לקומה הינו 3 שניות • ניתן להניח שהמעלית נוסעת ללא עצירות, פרט לעצירה בקומה ממנה נאסף הנוסע

  24. זמן נסיעה במעלית: הנתונים הדרושים נרצה לחשב את הזמן מהרגע שזימנו את המעלית עד אשר נגיע לקומת היעד. בכל קומה בה המעלית עוצרת היא מתעכבת 5 שניות. זמן הנסיעה בין קומה לקומה הינו 3 שניות. ניתן להניח שאין עצירות נוספות פרט לאסיפת הנוסע ועצירה בקומת היעד. • זמן נסיעה מקומה לקומה (TIME_PER_FLOOR) • זמן עצירה בקומה (TIME_FOR_STOP) • מיקומה הנוכחי של המעלית • הקומה ממנה מזמנים את המעלית • קומת היעד הסופית • הזמן הדרוש למעלית להגיע לקומה המזמנת • זמן הנסיעה מהקומה המזמנת לקומת היעד • סה"כ הזמן נתונים קבועים נתוני קלט נתוני חישוב נתון חישוב ופלט

  25. זמן נסיעה במעלית: אסטרטגיית הפתרון • הגדר 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

  26. מחיר מוצר + אריזה • בחנות "כמעט בחינם" ניתן לקנות אריזה דקורטיבית למוצר • אריזה דקורטיבית הינה קופסא בגודל מותאם אישית, עטופה בנייר ורוד • קופסא היא גוף מלבני בעל גובה, רוחב ועומק, וכדי לארוז אותה צריך נייר אריזה שגודלו כשטח הפנים של הקופסא + 20% • מחיר נייר אריזה הוא 5 ש"ח למ"ר • המשתמש מזין את מחיר המוצר ואת מימדי הקופסא הרצויה (במ"ר) • יש להציג מחיר הכולל את מחיר המוצר + 16% מע"מ ואת מחיר האריזה

  27. מחיר מוצר + אריזה: הנתונים הדרושים • מחיר נייר האריזה למ"ר  נתון קבוע • מע"מ  נתון קבוע • אחוזי האקסטרה של נייר האריזה  נתון קבוע • גובה הקופסא  נתון קלט • רוחב הקופסא  נתון קלט • עומק הקופסא  נתון קלט • מחיר המוצר  נתון קלט • שטח הנייר לאריזה  נתון חישוב • מחיר נייר האריזה  נתון חישוב • המחיר הסופי  נתון חישוב ונתון פלט קופסא היא גוף מלבני בעל גובה, רוחב ועומק, וכדי לארוז אותה צריך נייר אריזה שגודלו כשטח הפנים של הקופסא + 20%. מחיר נייר אריזה הוא 5 ש"ח ליחידת מידה. המשתמש מזין את מחיר המוצר ואת מימדי הקופסא הרצויה. יש להציג מחיר הכולל את מחיר המוצר + 16% מע"מ ואת מחיר האריזה.

  28. קופסא היא גוף מלבני בעל גובה, רוחב ועומק, וכדי לארוז אותה צריך נייר אריזה שגודלו כשטח הפנים של הקופסא + 20%. מחיר נייר אריזה הוא 5 ש"ח ליחידת מידה. המשתמש מזין את מחיר המוצר ואת מימדי הקופסא הרצויה. יש להציג מחיר הכולל את מחיר המוצר + 16% מע"מ ואת מחיר האריזה. מחיר מוצר + אריזה: אסטרטגיית הפתרון • הגדר 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

  29. החלפת ערכים • נתונים עיגולים במרחב • בשני עיגולים יש מספרים • המטרה: • להחליף בין ערכי העיגולים (כלומר, שהערך שבכחול יהיה בורוד והערך שבורוד יהיה בכחול) • הכלים העומדים לרשותך: • העברת מספרים בין העיגולים • בכל עיגול יהיה ערך אחד בלבד בכל פעם • כדי שניתן יהיה להשתמש בערך מסויים הוא חייב להיות מאוחסן בעיגול 5 8 8 5

  30. החלפת ערכים: אסטרטגיית הפתרון • בכתיבה פורמלית: • העבר ערכו של עיגול כחול לעיגול סגול • העבר ערכו של עיגול ורוד לעיגול כחול • העבר ערכו של עיגול סגול לעיגול ורוד 5 5 8 מצב התחלתי: 5 5 8 8 8 מצב סופי:

  31. ביחידה זו למדנו: • ניתוח נתוני בעיה • מיפוי הנתונים: • נתון קלט • נתון חישוב • נתון פלט • נתון קבוע

More Related