|
4 | 4 | "cell_type": "markdown", |
5 | 5 | "metadata": {}, |
6 | 6 | "source": [ |
7 | | - "בנק - בתרגיל הזה נכתוב מערכת קצת יותר חכמה לבנק. נבנה אותה בשלבים\n", |
8 | | - "\n", |
9 | | - "בשלב הראשון נבנה מחולל סיסמאות עבור משתמש. מחולל סיסמאות היא פונקציה שמקבלת שם משתמש ומחזירה סיסמה\n", |
10 | | - "הסיסמה תורכב כך: שם המשתמש במהופך מחובר אליו \"X\" כאורך השם" |
| 7 | + " <img src=\"images/logo.png\" alt=\"מיזם לימוד פייתון בעברית\">" |
| 8 | + ] |
| 9 | + }, |
| 10 | + { |
| 11 | + "cell_type": "markdown", |
| 12 | + "metadata": {}, |
| 13 | + "source": [ |
| 14 | + "<p style=\"text-align:right; direction:rtl;\">\n", |
| 15 | + "בנק - בתרגיל הזה נכתוב מערכת קצת יותר חכמה לבנק.<br>נבנה אותה בשלבים באמצעות חלוקה לפונקציות.<br>\n", |
| 16 | + "בשלב הראשון נבנה מחולל סיסמאות עבור משתמש. מחולל סיסמאות היא פונקציה שמקבלת שם משתמש ומחזירה סיסמה.<br>\n", |
| 17 | + "הסיסמה תורכב כך עבור שם משתמש נתון:<br><ul style=\"text-align:right; direction:rtl;\"><li>הפיכת התווים בשם המשתמש.\n", |
| 18 | + " </li><li>הוספת האות <code>\"X\"</code> כאורך השם מימין להיפוך התווים בשם המשתמש.</li></ul>\n", |
| 19 | + "</p>\n", |
| 20 | + "<p style=\"text-align:right;direction:rtl;\">שימו לב כי שם המשתמש לא חייב לכלול אותיות בלבד (ספרות וסימנים גם אפשריים).<br> כמו כן, לא נאפשר שם משתמש שהוא מחרוזת ריקה. במקרה זה החזירו מחרוזת ריקה.<br><br> לדוגמה, עבור שם המשתמש <code>'stam'</code> המחולל יחזיר את הסיסמה: <samp>'matsXXXX'</samp><br>הריצו את הפונקציה על 4 דוגמאות נוספות לפחות, באורכים שונים, ובדקו שקיבלתם פלט כמצופה.</p>" |
11 | 21 | ] |
12 | 22 | }, |
13 | 23 | { |
|
16 | 26 | "metadata": {}, |
17 | 27 | "outputs": [], |
18 | 28 | "source": [ |
19 | | - "#password_generator(\"stam\") --> \"matsXXXX\"" |
| 29 | + "#write function here" |
20 | 30 | ] |
21 | 31 | }, |
22 | 32 | { |
23 | 33 | "cell_type": "markdown", |
24 | 34 | "metadata": {}, |
25 | 35 | "source": [ |
26 | | - "בדקו את מחולל הסיסמאות שלכם עם 4 סיסמאות באורכים משתנים" |
| 36 | + "<p style=\"text-align:right;direction:rtl;\">הריצו את הפונקציה כך: <code>password_generator('stam')</code>" |
27 | 37 | ] |
28 | 38 | }, |
29 | 39 | { |
30 | 40 | "cell_type": "markdown", |
31 | 41 | "metadata": {}, |
32 | 42 | "source": [ |
33 | | - " קלטו מהמשתמש שם משתמש וסיסמה, חשבו את הסיסמה עם הפונקציה שכתבתם והדפיסו ברוך הבא אם הסיסמא נכונה, אחרת הדפיסו סיסמא לא נכונה\n" |
| 43 | + "<p style=\"text-align:right;direction:rtl;\">כעת נקבל שם משתמש וסיסמה, ונבדוק האם השילוב הוא נכון. בדקו באמצעות מחולל הסיסמאות מהסעיף הקודם האם הסיסמה של המשתמש תואמת את הסיסמה הנוצרת על-ידי המחולל. הדפיסו ברוך הבא אם הסיסמא נכונה, אחרת הדפיסו סיסמא לא נכונה.</p>\n", |
| 44 | + "<code>login('stam','matsXXXX')</code><br><samp>Welcome stam!</samp><br><br><code>login('stam','mats')</code><br><samp>Wrong Password!</samp>" |
| 45 | + ] |
| 46 | + }, |
| 47 | + { |
| 48 | + "cell_type": "code", |
| 49 | + "execution_count": null, |
| 50 | + "metadata": {}, |
| 51 | + "outputs": [], |
| 52 | + "source": [ |
| 53 | + "#write function here" |
| 54 | + ] |
| 55 | + }, |
| 56 | + { |
| 57 | + "cell_type": "markdown", |
| 58 | + "metadata": {}, |
| 59 | + "source": [ |
| 60 | + "<p style=\"text-align:right;direction:rtl;\">כתבו פונקציה שמחזירה <code>True</code>\n", |
| 61 | + " אם בוצע חיבור מוצלח, אחרת החזירו <code>False</code>.\n", |
| 62 | + "פונקציה זו מאוד דומה לפונקציה הקודמת שכתבתם, רק שאינה מדפיסה דבר. במקום ההדפסה יוחזר ערך בוליאני מתאים.<br>לדוגמא:<br></p><br><code>login('stam',matsXXXX')</code><br><samp>True</samp><br><code>login('stam','mats')</code><br><samp>False</samp><br>" |
34 | 63 | ] |
35 | 64 | }, |
36 | 65 | { |
|
44 | 73 | "cell_type": "markdown", |
45 | 74 | "metadata": {}, |
46 | 75 | "source": [ |
47 | | - "כתבו פונקציה שמחזירה\n", |
48 | | - "True\n", |
49 | | - "אם בוצע חיבור מוצלח, אחרת החזירו False\n", |
50 | | - "\n", |
51 | | - "הפונקציה מקבלת שם משתמש וסיסמה. בודקת את נכונות הסיסמה ומחזירה \n", |
52 | | - "True\n", |
53 | | - "אם היא נכונה ו\n", |
54 | | - "False\n", |
55 | | - "אחרת\n", |
56 | | - "\n", |
57 | | - " כעת כתבו את השאלה הקודמת באמצעות הפונקציה שכתבתם בסעיף זה" |
| 76 | + "<p style=\"text-align:right;direction:rtl;\">\n", |
| 77 | + " כעת ענו על השאלה הקודמת באמצעות הפונקציה שכתבתם בסעיף זה, כלומר כתבו פונקציה שמשתמשת בפונקציה המחזירה ערך בוליאני ומדפיסה בהתאם להוראת מהסעיף הקודם.<br>רמז: <span style=\"direction: rtl; background: #000; text: #000\">השתמשו בערך ההחזרה של הפונקציה מהסעיף הקודם, בתוך if.</span></p>\n" |
58 | 78 | ] |
59 | 79 | }, |
60 | 80 | { |
|
68 | 88 | "cell_type": "markdown", |
69 | 89 | "metadata": {}, |
70 | 90 | "source": [ |
71 | | - "לכל משתמש יש בבנק 500 שח. \n", |
72 | | - "כעת נרצה שהתוכנה שלנו תאפשר למשתמש למשוך כסף.\n", |
73 | | - "\n", |
74 | | - "נשתמש בפונקציות הקודמות שכתבנו:\n", |
75 | | - "\n", |
76 | | - "נקלוט מהמשתמש שם משתמש וסיסמא\n", |
77 | | - "אם ההתחברות הצליחה\n", |
78 | | - "נשאל אותו איזה סכום ירצה למשוך\n", |
79 | | - "\n", |
80 | | - "אם הסכום גדול מ-500:\n", |
81 | | - "נדפיס \"אין לך מספיק כסף\"\n", |
82 | | - "\n", |
83 | | - "אם הסכום הוא 0 נדפיס \"לא ניתן למשוך 0 שח\"\n", |
84 | | - "\n", |
85 | | - "אם הסכום שלילי נכתוב \"לא ניתן למשוך סכום שלילי\"\n", |
86 | | - "\n", |
87 | | - "אם הסכום תקין, נדפיס: \n", |
88 | | - "הנה הסכום שביקשת: X\n", |
89 | | - "נשאר בחשבון: \n", |
90 | | - "500-X\n", |
91 | | - "\n", |
92 | | - "\n", |
93 | | - "\n", |
94 | | - "\n" |
| 91 | + "<p style=\"text-align:right;direction:rtl;\">כעת נרחיב את מערכת הבנק שלנו.<br>נניח כי לכל לקוח בבנק יש בחשבון הבנק 500 ש\"ח.<br>באמצעות הפוקנציות הקודמות שכתבנו נממש את התוכנית הבאה:<br><ul style=\"text-align:right; direction:rtl;\"><li>נבקש מהמשתמש שם משתמש וסיסמה.</li><li>נאמת את שם המשתמש והסיסמה מול מחולל הסיסמאות. אם האימות הצליח נשאל מהו הסכום המבוקש למשיכה. אחרת נכתוב כי הזיהוי נכשל.</li><li>כיון שלמשתמש יש 500 ש\"ח בחשבון, עלינו לוודא שהסכום לא גבוה מ-500 ש\"ח. אם הסכום אכן גבוה מ-500 ש\"ח נדפיס \"לא ניתן למשוך מעבר ליתרה\".</li><li>כמו כן, עלינו לוודא כי הסכום אינו שלילי או 0. במקרה זה נדפיס \"סכום למשיכה אינו חוקי\".<li>אם הסכום חוקי, נדפיס \"אנא משוך את כספך על סך (הסכום שהוקש). יתרתך הינה: (היתרה שנשארה)\"</li></ul></p>" |
95 | 92 | ] |
96 | 93 | }, |
97 | 94 | { |
98 | 95 | "cell_type": "markdown", |
99 | 96 | "metadata": {}, |
100 | 97 | "source": [ |
101 | | - "ציירו תחילה על דף תרשים זרימה של איך הולך להיראות הקוד - תרשים מעויינים ללא קוד.\n", |
102 | | - "זה יעזור במימוש" |
| 98 | + "<p style=\"text-align:right;direction:rtl\">ציירו תחילה על דף תרשים זרימה של איך הולך להיראות הקוד - תרשים מעויינים ללא קוד.\n", |
| 99 | + "זה יעזור לכם במימוש.</p" |
103 | 100 | ] |
104 | 101 | }, |
105 | 102 | { |
106 | | - "cell_type": "code", |
107 | | - "execution_count": null, |
| 103 | + "cell_type": "markdown", |
108 | 104 | "metadata": {}, |
109 | | - "outputs": [], |
110 | | - "source": [] |
| 105 | + "source": [ |
| 106 | + "<p style=\"text-align:right;direction:rtl;\">להלן דוגמאות:</p><br><samp>Insert username:<br>'stam'<br>Insert password:<br>'matsXXXX'<br>Login succeded. How much you'd like to draw?<br>200<br>Please take your money (200NIS). your balance is: 300NIS</samp>" |
| 107 | + ] |
| 108 | + }, |
| 109 | + { |
| 110 | + "cell_type": "markdown", |
| 111 | + "metadata": {}, |
| 112 | + "source": [ |
| 113 | + "<p style=\"text-align:right;direction:rtl;\">דוגמא נוספת:</p><br><samp>Insert username:<br>'stam'<br>Insert password:<br>'mats'<br>Login failed.</samp>" |
| 114 | + ] |
| 115 | + }, |
| 116 | + { |
| 117 | + "cell_type": "markdown", |
| 118 | + "metadata": {}, |
| 119 | + "source": [ |
| 120 | + "<p style=\"text-align:right;direction:rtl;\">דוגמא למשיכה לא חוקית:</p><br><samp>Insert username:<br>'stam'<br>Insert password:<br>'matsXXXX'<br>Login succeded. How much you'd like to draw?<br>600<br>Cannot withdraw above balance.</samp>" |
| 121 | + ] |
| 122 | + }, |
| 123 | + { |
| 124 | + "cell_type": "markdown", |
| 125 | + "metadata": {}, |
| 126 | + "source": [ |
| 127 | + "<p style=\"text-align:right;direction:rtl;\">דוגמא למשיכה לא חוקית:</p><br><samp>Insert username:<br>'stam'<br>Insert password:<br>'matsXXXX'<br>Login succeded. How much you'd like to draw?<br>0<br>Invalid amount.</samp>" |
| 128 | + ] |
111 | 129 | }, |
112 | 130 | { |
113 | 131 | "cell_type": "markdown", |
|
228 | 246 | "source": [ |
229 | 247 | "נתאמן על פעולות של מחרוזות" |
230 | 248 | ] |
| 249 | + }, |
| 250 | + { |
| 251 | + "cell_type": "markdown", |
| 252 | + "metadata": {}, |
| 253 | + "source": [ |
| 254 | + "\"פונקציית גיבוב\"" |
| 255 | + ] |
| 256 | + }, |
| 257 | + { |
| 258 | + "cell_type": "code", |
| 259 | + "execution_count": null, |
| 260 | + "metadata": {}, |
| 261 | + "outputs": [], |
| 262 | + "source": [] |
231 | 263 | } |
232 | 264 | ], |
233 | 265 | "metadata": { |
|
0 commit comments