שאלות ממבחני עבר#

23-24, סמסטר ב’, מועד ב’ שאלה 2.ד#

בסעיף זה נממש פונקציה המאפשרת לנו להשוות בין שני רצפים גנטיים. רצף גנטי הוא מחרוזת המכילה אך ורק את התווים `ACGT?`.
הפונקציה תקבל שתי מחרוזות באותו אורך, ותחילה תוודא אם שתי המחרוזות מהוות רצפים גנטיים תקינים. אם אחד הרצפים לא תקין, הפונקציה תדפיס הודעת שגיאה ותחזיר `None`. אחרת, הפונקציה תשווה בין הרצפים הגנטיים, ותחזיר `True` אם הם שווים (או `False` אם אינם שווים).
שני רצפים גנטיים ייחשבו **לא שווים** אך ורק אם במיקום מסוים כל רצף מכיל תו שונה שאינו `?`. למשל, אם נשווה בין שני הרצפים `GTG?A` ו-`G?CCA` נראה שהם אינם שווים, שכן במיקום `2` בשני הרצפים תו שונה - `G` באחד, `C` בשני. נבחין כי במיקום `1` שני הרצפים מכילים תווים שונים, אך אחד מהתווים הוא `?`, ולכן לא גורם לכך שלא יהיו שווים.
def sequence_compare(a, b):
    pass  # fill function implementation here

23-24, סמסטר ב’, מועד ג’ שאלה 1.ב#

בשאלה זו נממש פונקציה המקבלת רשימה, ומחזירה רשימה מקוננת המכילה את כל זוגות האיברים ברשימה המקורית, ללא כפילויות.
כלומר, אם נקבל את הרשימה המקורית ['a', '3', '5'] נרצה להחזיר רשימה מקוננת המכילה את האיברים:

[['a', 3'], ['a', '5'], ['3', 'a'], ['3', '5'], ['5', 'a'], ['5', '3']]

def get_all_pairs(l):
    pass  # fill function implementation here
למעשה, בשאלה המקורית הסטודנטים התבקשו לפתור את השאלה מבלי להשתמש ב-`if`. ננסה לפתור את השאלה כעת עם ההגבלה הזו:
def no_cond_pairs(l):
    pass  # fill function implementation here

23-24, סמסטר א’, מועד א’ שאלה 1.ד#

בשאלה זו הפונקציה תקבל רשימה מקוננת של מספרים, המייצגת תוצאות של תמונה im בנקודות שונות במרחב. מטרת הפונקציה היא לחשב את האינטגרל על התמונה כולה, בהתאם לנוסחא הבאה.
\[ I(x, y) = im[x][y] + I(x-1, y) + I(x, y-1) - I(x-1, y-1) \]
כדי לחשב תוצאה זו בקוד, מומלץ לאתחל רשימה מקוננת אפסים כדי לשמור את התוצאות, ולאחר מכן יש לעבור על הערכים לפי הסדר ולמלא את הטבלה.
def intergral_im(im):
    pass  # fill function implementation here

23-24, סמסטר ב’, מועד א’ שאלה 3.ה.#

בשאלה זו יש לממש את הפונקציה months_in_range, אשר מקבלת שנת התחלה ואינדקס חודש התחלה, וכן שנת סיום ואינדקס חודש סיום.
על הפונקציה להחזיר רשימה עם טווח החודשים בין ההתחלה לסיום כולל, בפורמט הבא: “MON YYYY”.

ניתן להשתמש בתוך הפונקציה ברשימה months המכילה את שמות החודשים.

months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

def months_in_range(start_year, start_month, end_year, end_month):
    pass  # fill function implementation here

שאלת בונוס#

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

SieveUrl

def all_primes(n):
    pass  # fill function implementation here