בנק 2.0 - מערכת הזדהות

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

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

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

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

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

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

האם אני יכול להניח שלא יעשה ניסיון התחברות של משתמש שני בזמן שהמשתמש ראשון עוד לא סיים את שלוש הניסיונות שלו?

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

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

אז בעצם כל הפלטים של הפונקציה authenticate שנתנו במחברת לא נכונות?

כי היא צריכה להחזיר או TRUE אם הצליח להתחבר וFALSE אם לא הצליח

בעצם הפלטים שיש פה זה של כל הקוד שאכתוב (עם עוד פונקציות), הבנתי נכון ?

מדויק ביותר, זו הכוונה של החידוד מעלה של איתמר

2 לייקים

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

ובגלל שהפונקציה authenticate מחזירה רק TRUE או FALSE אם הצליח להתחבר או לא
היא קצת הופכת לחסרת משמעות בקוד שלי… כאילו שמתי אותה בקוד אבל היא לא באמת נחוצה…
האם חייב בכל זאת להגיש אותה ? או שאני מפספסת משהו ?

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

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

אם זה יכול לעזור לך למחוק את השורה אז כל תעלול כשר

2 לייקים

חסכת לי את השאלה! מזל שאפשר לאפס :slight_smile:
כבר התחלתי לחשוב איך לעזאזל אני אשמור כמה ניסיונות כל משתמש כבר עשה

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

זה בסדר, זה לא העיקר בתרגיל ולא נתעקש על זה

3 לייקים

היי,
בחלק של מערכת הזדהות- לא הבנתי האם כאשר כתוב בתרגיל שהלקוח יזין שם משתמש וסיסמה, הדבר נעשה ע"י המשתמש ב input ורק לאחר מכן מתבצעת קריאה לפונקציה?
או האם הכוונה היא קריאה לפונקציה בלבד?
אם הכוונה ע"י קריאה לפונקצייה בלבד כיצד ניתן לשמור את שם המשתמש אשר נמצא בקריאה לפונקצייה על מנת לוודא שלא נעשה לשם משתמש מסויים 3 קריאות?

קראי את ההודעות בשרשור ואם עדיין אין לך תשובה תכתבי שוב.

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

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

לייק 1

אם את פותחת קובץ במצב “w” כל מה שבתוכו נמחק אוטומטית. ייתכן שעשית זאת בטעות?

אני חושבת שאת התגובה הזו צריך להדגיש .
היא מסבירה הכל. :ok_woman:
עברתי על כל הפורום עד שקראתי פה שצריך לעשות input
)לשם כך נכנסתי לחפש תשובה כי לא היה לי ברור(.