PracticU

Arithmetic Operation Data Type

בלי כתוביותעם כתוביות
PracticU › קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים › Arithmetic Operation Data Type
Arithmetic Operation Data Type
לפעולה חשבונית יש טיפוס נתונים, והוא קובע את התוצאה שלה. אם לא מבינים את זה, אפשר לקבל באגים, למשל תוצאה בלי הנקודה העשרונית.
השלבים העיקריים
1. הכלל: טיפוס התוצאה של פעולה חשבונית הוא הטיפוס הגדול או המורכב ביותר מבין המרכיבים שלה. ״גדול״ פירושו שטח זיכרון גדול יותר, כמו long לעומת int. ״מורכב״ פירושו טיפוס שיכול להחזיק גם נקודה עשרונית.
2. הבאג: a = 5 ו-b = 2 הם שניהם int, ולכן c = a / b נשמר כ-2 ולא כ-2.5. ההמרה ל-double רק אחרי החישוב לא עוזרת, כי הנקודה כבר אבדה.
3. פתרון ראשון: הופכים את אחד המרכיבים ל-double, למשל double a = 5. אז כל החישוב מתבצע כ-double, ו-c מקבל 2.5.
4. פתרון שני: הופכים את אחד המרכיבים ל-float. הפעולה מתבצעת באותו אופן, והתוצאה 2.5 נשמרת.
5. סוגריים: סוגריים מתבצעים קודם. אם כותבים (a / b) והופכים את התוצאה ל-double רק אחר כך, החלוקה כבר בוצעה כ-int, והתוצאה היא 2.0.
שימו לב
כדי לשמור על נקודה עשרונית מספיק שאחד מהמרכיבים בפעולה יהיה עשרוני, ואז כל הפעולה מקבלת את הטיפוס הזה.
השיעור הבא בקורס: תרגול לפרק על Casting

פרקי ההרצאה: Arithmetic Operation Data Type

  1. 00:00

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

  2. 00:59

    למה התוצאה 2 ולא 2.5

  3. 01:37

    כלל טיפוס הנתונים של פעולה אריתמטית

  4. 02:16

    מהו טיפוס גדול או מורכב יותר

  5. 02:51

    חילוק int בתוך int מאבד עשרוני

  6. 03:31

    פתרון עם float או double בפעולה

  7. 04:07

    המרת משתנה ל-double כששניהם int

  8. 04:44

    סוגריים קודמים לכל פעולה

תמלול ההרצאה: Arithmetic Operation Data Type

הטקסט המלא של הדקות הראשונות בהרצאה «Arithmetic Operation Data Type» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:16

    בואו נראה מה הכוונה. בואו ניקח משתנה נקרא לו a ונחליף לתוכו 5. בואו ניקח משתנה נוסף נקרא לו b ונחליף לתוכו 2. בואו ניקח משתנה נוסף נקרא לו c ונחליף לתוכו את a.

  3. 00:34

    לחלק ל-B. 5 לחלק ל-2 ו-2.5. עכשיו, int לא יכול להחזיק 2.5. בואו נציג את c, נריץ את זה, ונראה שכמובן הוא אומר לנו, תקשיבו, אני 2, מה הלוז? מה נסגר?

  4. 00:53

    אז ברור שאני 2 מפני שאני לא יכול להיות 2.5. אוקיי? אז בואו נהפוך אותו ל-double. הנה עכשיו הפכנו את c ל-double.

  5. 01:06

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

  6. 01:15

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

  7. 01:37

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

  8. 01:59

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

  9. 02:12

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

  10. 02:27

    מה זאת אומרת יותר גדול? long יותר גדול מ-int, int יותר גדול מ-short, short יותר גדול מ-bite. מה זה אומר יותר מורכב?

  11. 02:37

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

  12. 02:51

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

  13. 03:08

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

  14. 03:27

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

  15. 03:44

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

  16. 03:58

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

  17. 04:11

    אבל מה קורה אם אני רוצה ששניהם יהיו אינטג'ר מפני שאלה המספרים שקיימים לי בקוד? אנחנו יכולים להמיר אחד מהם ל-double או ל-float.

  18. 04:25

    בואו נמיר את a. ועכשיו מה שקורה זה שיש לנו כאן double לחלק ל-int. כל הדבר הזה הוא double ולכן אנחנו יכולים לשמור על הנקודה העשרונית והנה ה-2.5.

  19. 04:40

    מה קורה אם אנחנו רוצים לעשות את זה אזורה כזאת זה כמובן גם אפשרות בואו נריץ ונקבל שוב שתיים וחצי אנחנו יכולים את שניהם להמיר וגם כן כאן נקבל שתיים וחצי אבל שימו לב שאם היינו עושים דבר כזה האם עדיין היינו מקבלים שתיים וחצי תשובה לא מפני שסוגריים קודמים לכל ולכן הפעולה הייתה קודם כל מתבצעת והמערכת הייתה רואה שיש לנו int ו-int אז

  20. 05:11

    התוצאה הייתה int היינו מאבדים שוב פעם את הנקודה העשרונית

ההרצאה הקודמת: Numeric Suffixes

ההרצאה הבאה: תרגול לפרק על Casting

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

  • יתרונות של Reference Type
  • Data Contracts
  • משתנים וסוגי משתנים בסיסיים - Type Inference
  • Data Driven Test - חלק 1

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

  • קורס מבוא ל-QA - מידע חשוב לבודק תוכנה
  • קורס פוסטמן - Postman - בדיקות לאתרי אינטרנט - API
  • קורס Robot Framework - בדיקות QA ממשק גרפי
  • קורס סלניום בסיסי - בדיקות אוטומטיות - Selenium
  • קורס סלניום מתקדם - CI/CD - Continues Integration
  • קורס מייבן - Maven