בחירות במדינת הגמדים, שאלה לגבי ההוראות במחברת

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

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

לייק 1

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

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

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

לייק 1

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

אני בגדול מסכים עם felix אבל אישית אני חושב שמקרה הזה זה דיי גמיש. אתה יכול לשרשר פונקציה נוספת בפנים או להחזיר ולהמשיך עם
זה בחוץ.

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

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

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

לייק 1

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

לייק 1

שלום לכולם.
זאת ההוראה כלשונה:

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

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

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

אני חוזר ומדגיש את כלל האצבע שיהיה נכון תמיד - אם אתה צריך תוצאות שכבר חישבת ואתה מגיע למצב שאתה צריך לעשות copy + paste - כנראה שזה צריך להיות פונקציה. אל תיאחז בלשון התרגיל המפורשת כדי ליצור שכפולי קוד. אנחנו בני אדם ואנחנו מעדיפים קוד נכון, קריא ומחולק לפונקציות מאשר היצמדות עיקשת להוראות. (במיוחד כשלא נאמר בהן במפורש איך לממש את הדבר הזה)

2 לייקים

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

אנצל את הנושא לשאלה קשורה על ניסוח: (בשלב השלישי של התרגיל)
“כעת כתבו פונקציה המקבלת את מילון תוצאות הבחירות ומחזירה את מספר הקולות שקיבלו רק מפלגות שעברו את אחוז החסימה.”
הפונקציה אמורה להחזיר סכימה?
אני מוודאת כי מניסוח ההוראות חשבתי שהיא צריכה להחזיר את מספר הקולות בנפרד של כל מפלגה (שעברה את אחוז החסימה)

זו אכן כוונתו של המשורר

זו אכן כוונתי.

המשורר

10 לייקים

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

היי!
האם אפשר להגיש פונקציה אחת שגם מחזירה את השמות וגם סוכמת את הקולות?
לא בטוחה שהבנתי מה זה פונקציה פנימית :dizzy_face:

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

לייק 1

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

צריך להחזיר מילון שמכיל את הנתונים של המפלגה המנצחת או את של כל המפלגות?

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

זה מה שגרם לי לתהות באמצע התרגיל אם הבנתי לא נכון את הבקשה הראשונה :sweat_smile:
בניתי פונקציה שגם יוצרת את המילון שהתכוונו, והשתמשתי בה כל הזמן ובאופן מאולץ גם בפונקציה שחשבתי שאמורה למצוא את המנצח.
אבל עכשיו התאמתי את הקוד וזה באמת הרבה יותר הגיוני :slight_smile: