"מערך סיסמאות" במערכת ממוחשבת של בנק מסוים הוא מערך מטיפוס שלם בגודל 10, שבו הבנק שומר את עשר הסיסמאות האחרונות של הלקוח (כדי לוודא שהלקוח לא יבחר אותן שוב). הסיסמאות נשמרות לפי הסדר מן החדשה ביותר לישנה ביותר. הסיסמה החדשה ביותר (העדכנית) נמצאת בתא 0 והסיסמה הישנה ביותר נמצאת בתא האחרון במערך.
"מערך סיסמאות" במערכת ממוחשבת של בנק מסוים הוא מערך מטיפוס שלם בגודל 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)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.