אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — יסודות (שאלון 899371)מבחן 2024 · קיץ מועד א · שאלה 2כל שאלות המבחן ←
תכנות בסיסימערכים חד-ממדיים

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

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

דוגמה: עבור המערך arr שלפניכם ו-password = 300, המערך יישאר ללא שינוי והפעולה תחזיר false (הסיסמה 300 כבר מופיעה במערך arr, באינדקס 3). אינדקסים 0–9.

index:  0     1    2    3    4    5    6    7    8    9
arr:  1223  134  245  300  111  101  777  900  195  1234

דוגמה נוספת: עבור אותו המערך ו-password = 8888, הפעולה תחזיר true, והמערך ייראה כך בתום הפעולה (הסיסמה 8888 אינה אחת הסיסמאות שכבר מופיעות במערך). אינדקסים 0–9.

index:  0     1     2    3    4    5    6    7    8    9
arr:  8888  1223  134  245  300  111  101  777  900  195
סעיף א

כתבו פעולה בוליאנית חיצונית ששמה getPass בשפת Java או GetPass בשפת C#, המקבלת מערך סיסמאות מלא – arr, וסיסמה – password, מטיפוס שלם. אם הסיסמה שהתקבלה היא חדשה (כלומר אינה זהה לשום סיסמה שמופיעה במערך), הפעולה תוסיף אותה למערך arr בתא 0 (לאחר הזזת שאר הסיסמאות תא אחד ימינה) ותחזיר true. אחרת, מערך הסיסמאות יישאר ללא שינוי ויוחזר false.

public static boolean getPass (int[] arr, int password)

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי