PracticU

תרגילים 5-7

בלי כתוביותעם כתוביות
PracticU › קורס ג'אווה סקריפט מעשי - JavaScript › תרגילים 5-7
מילון מושגים:
לולאה - מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.
דפדפן - תוכנה שמציגה דפי אינטרנט ומריצה את הקוד שבהם, ומאפשרת לגלוש בין אתרים, למשל Chrome או Firefox.
באג - תקלה או שגיאה בקוד שגורמת לתוכנה להתנהג בניגוד למצופה.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.

תרגילים 5-7
בתרגילים 5 עד 7 מתרגלים לולאות בכיוונים שונים: טווח שלילי עם דילוג על ערך, ספירה לאחור, ויצירת מספרים אקראיים שמסודרים בפונקציות עזר. המרצה מדגיש את ההבדל בין continue ל-break, ואת חשיבות סדר התנאים בלולאה.
תרגיל 5: טווח עם דילוג
1. טווח שלילי: לולאה שרצה מ-5- עד 5, והמשתנה עולה ב-1 בכל סיבוב.
2. continue: מדלג על הערך 0 בלי לעצור את הלולאה, כך שהסיבוב הבא מתחיל מיד.
3. break: בניגוד ל-continue, עוצר את הלולאה לגמרי. לכן בתרגיל הזה משתמשים ב-continue.
תרגיל 6: ספירה לאחור
1. לולאה יורדת: מתחילים מ-20 ומורידים ב-1 עד 7.
2. תנאי: כותבים את התנאי בסדר הנכון, כלומר גדול-שווה (>=). המרצה מסביר שכתיבה בסדר הלא נכון תקעה את הדפדפן, והוא הדגיש שמדובר בבאג בדפדפן.
3. פונקציית עזר: clearScreen מנקה את המסך, וכל משימה קוראת לה במקום לשכפל את הקוד.
תרגיל 7: מספרים אקראיים
1. Math.random: מחזיר מספר בין 0 ל-1.
2. הכפלה ועיגול: מכפילים ב-10 ומעגלים כלפי מטה בעזרת Math.floor, והמספר שמתקבל הוא בין 0 ל-9.
3. טווח 1 עד 10: מוסיפים 1, כדי לקבל את הטווח המבוקש.
4. 20 פעמים: לולאה מוסיפה כל מספר לתוך משתנה התוצאה, ובסוף מוצגת כל התוצאה.
5. פונקציה בתוך פונקציה: התוצאה של פונקציה אחת יכולה לשמש כפרמטר לפונקציה אחרת. המחשב מחשב קודם את הפונקציה הפנימית ורק אחריה את החיצונית.
שימו לב
בעזרת נקודת עצירה בדיבאגר רואים את הלולאה הפנימית שורה-שורה, ואת הערכים שמשתנים בכל סיבוב. זו הדרך הטובה ביותר להבין למה תנאי מסוים לא מתקיים.
השיעור הבא בקורס: תרגילים 8-9

פרקי ההרצאה: תרגילים 5-7

  1. 00:00

    תרגיל 5: מספרים בין מינוס 5 ל-5

  2. 01:10

    פונקציית task5 וניקוי המסך

  3. 02:12

    לולאה ממינוס 5 עד 5

  4. 04:45

    דילוג על האפס עם תנאי if

  5. 06:18

    דילוג על איטרציה עם continue

  6. 09:10

    הדפסה עם jQuery וריקון ה-div

  7. 10:41

    תרגיל 6: ספירה יורדת מ-20 עד 7

  8. 11:38

    ניקוי מסך כפונקציה נפרדת

תמלול ההרצאה: תרגילים 5-7

הטקסט המלא של הדקות הראשונות בהרצאה «תרגילים 5-7» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    אנחנו ממשיכים עם ההרצאות שלנו ועם התרגילים המעשיים ב-JavaScript ו-JQuery ואנחנו פותרים עכשיו את התרגיל החמישי שלנו שהתרגיל החמישי אומר לעשות להדפיס על המסך את כל המספרים בין מינוס 5 ל-5 בין מינוס 5 ל-5 וכל מספר על שורה משלו על שורה נפרדת כאשר לדלג ולא להדפיס מספר 0 אוקיי לא להדפיס מספר 0 על המסך אנחנו נעשה את זה בכמה דרכים

  2. 00:35

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

  3. 00:47

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

  4. 01:10

    יפה. ובתוך הפונקציה function5 אנחנו רוצים דבר ראשון לנקות את המסך, לסדר את כל המסך, אז אנחנו מתחילים ב-getElementByID.res, זאת אומרת ה-getElementByID בסוגריים ID של ה-div שלנו, לוקחים אלמנט לפי המזהה שלו ומכניסים ב-HTML שלו ריק.

  5. 01:41

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

  6. 02:10

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

  7. 02:33

    רצים ממינוס חמש עד חמש כאשר מוסיפים ל-i כל פעם פלוס אחד. יפה מאוד. ולתוך ה-res אנחנו צוברים את i ונוסיף לדוגמה גם ירידת שורה פלוס br.

  8. 02:48

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

  9. 03:12

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

  10. 03:46

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

  11. 04:15

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

  12. 04:45

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

  13. 05:12

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

  14. 05:49

    הוא לא ייכנס לתוך התנאי הזה. זאת אומרת, בתוך הלולן יכול להוריץ לעשות תנאים ובדיקות. ובדקתי, אם i שווה אפס, אז אני פשוט לא נכנס לתוך הif הזה.

  15. 06:02

    זאת אומרת, הוא לא ייכנס לתוך הif וימשיך הלאה. ומה שיקרה, שהוא לא יצבור לתוך התוצאה הסופית את המקרה שבו i שווה 0, כי הוא פשוט לא ייכנס לתנאי הזה. זאת אומרת, השורה של הצבירה, הכנסתי סביבה תנאי.

  16. 06:22

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

  17. 06:33

    אני רוצה שהלולאה תמשיך, אני רוצה רק שהקונטיניו מדלג וקופץ להתחלה. בואו נראה. נפעיל עם הדבאגר ונראה איך ה-Continue עובד.

  18. 06:46

    אנחנו מגיעים, שימו לב, הגענו לדבאגר, עצר לנו. זאת אומרת, הביצוע של התוכנית נעצרה לנו. ואנחנו עכשיו נעבור שורה-שורה ונראה מה קורה.

  19. 07:00

    קודם כל, אנחנו במצב, עצרנו בזמן לא בשורה הראשונה, אלא עצרנו בתוך התנאי if. זאת אומרת שאנחנו כבר במצב שבתוך ה-Ress, התוצאה שלנו, יש מינוס 4, מינוס 3, מינוס 2, מינוס 1, BR, ואז הגענו למצב ש-I שווה 0, ונכנסנו לתוך תנאי של i שווה 0, אנחנו כבר בפנים.

  20. 07:23

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

  21. 07:34

    על השורה הזאת הוא פשוט דילג ולא ביצע אותה, כי פקודת קונטיניו אומרת לו דלג להתחלה, ופקודת ברייק אומרת לו תעצור את הכל. שימו לב, כשאני כבר ב-i שווה 1 הוא לא מדלג מעל השורה, ואז יוצא שיש לנו מינוס 1 ו-1 ובזמן ה-0 הוא קפץ מעל השורה.

  22. 07:59

    זאת אומרת, פקודת קונטיניו אומרת לו לחזור חזרה לתחילת הלולאה. ואם יש לנו רק פקודה אחת, אפשר לרשום אותה גם בלי סוגריים. זאת אומרת, בלי גרשיים אפשר לרשום אותה, בלי בלוק.

  23. 08:15

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

  24. 08:41

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

  25. 09:08

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

  26. 09:23

    טוב, בואו נעשה את זה עם jQuery ואנחנו עושים את זה עם jQuery ומרוקנים את הדיב של רס. יש שם פקודת אמפטי לרוקן והוא מרוקן את כל ה-HTML.

  27. 09:37

    שימו לב הלולה נשארת אותו דבר ואנחנו רק כותבים את החלק הוויזואלי ב-JQuery ואנחנו עושים, לוקחים מזהה רס ומחליפים לו את ה-HTML.

  28. 10:01

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

  29. 10:31

    זה אומר שהצלחנו. אני אתקדם עכשיו למשימה הבאה, משימה מספר 6, שמשימה מספר 6 אומרת להדפיס את כל המספרים מ-20 עד 7, כל אחד במספר, זאת אומרת להדפיס עכשיו סדר יורד מ-20 עד 7, מדפיסים כלפי מטה.

  30. 10:52

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

  31. 11:09

    אני כל פעם כותב לקחת את הדולר רס, את מזהה הרס, את ה-result שלי ולנקות את ה-inner html שלו. אני מרגיש שאני עושה אותו קוד שוב שוב ושוב ואם יום אחד יחליפו לי את השם של הדיו ואליו צריך להוציא את התוצאות או משהו כזה, אני אצטרך עכשיו לרוץ בין כל הפונקציות ולשנות שם בכולם הכל וגם לשכפל אותו קוד 20 פעם זה ממש לא יפה,

  32. 11:40

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

  33. 12:08

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

  34. 12:23

    אנחנו מתחילים עוד פעם עם המשתנה שיצבור לנו את כל התוצאות, ובסוף נדפיס אותו. עושים לולה 4 שמתחילה ב-20, שימו לב, היא מתחילה ב-20, וכל עוד i לא קטן ממשהו, כל עוד i גדול מ-7.

  35. 12:40

    כל עוד i גדול מ-7, מתחילים מ-20 ועושים כל עוד i גדול מ-7, אוקיי? אפשר לרשום את זה בהרבה צורות שונות, אנחנו צריכים לעשות לא i פלוס פלוס אלא i מינוס מינוס להקטין את i באחד כל פעם לרדת באחד מתחילים ב-20, 19, 18 והעלולה נמשכת כל עוד i גדול מ-7 יפה מאוד שימו לב אפשר לרשום

  36. 13:13

    את זה ככה ואפשר לרשום את זה הפוך i גדול מ-7 יופי אז שימו לב מה עשיתי הפכתי את ה-i מגדול לקטן שזה פעם ראשונה שאנחנו עושים את זה ודבר שני עשיתי i מינוס מינוס הקטנתי את ה-i כי התחלתי ממספר גבוה ואני מקטין אותו אוקיי, ולתוך ה-Ress אני צובר את i ו-br, i, 20, 19, 18, אני צובר אותו, ועכשיו אני צריך להדפיס על המסך את ה-Ress

  37. 13:47

    שלנו, אפשר להדפיס אותו דרך jQuery, אפשר להדפיס אותו דרך JavaScript טהור, ואני אומר לתוך div Ress תכניס ערך של משתנה Ress, שימו לב, אין שום קשר בין זה שהמשתנה וה-Div באותו שם הם לא קשורים, שמות של דיבים זה לא קשור ל-JavaScript, כן?

  38. 14:09

    JavaScript משתנים ו-divים יכולים להיות באותו שם, אין שום קשר. בואו נעשה את זה עכשיו ב- jQuery לא לשכוח סולמית אם זה מזהה. נקודה html, למה נקודה html? כי יש לי תגיות כמו br בפנים ואני ב- jQuery מכניס לתוך div res את המשתנה res.

  39. 14:34

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

לקורס המלא: קורס ג'אווה סקריפט מעשי

ההרצאה הקודמת: תרגיל 4

ההרצאה הבאה: תרגילים 8-9

הרצאות קשורות מקורסים אחרים

  • תרגילים על Collections
  • תרגילים על מטריצות בג'אווה
  • תרגילים מסכמים בנושא עיצוב

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס TypeScript
  • קורס ריאקט - React
  • קורס NodeJS