
isFloat שמציין שהמשתמש בוחר מספר עשרוני.isFloat נהפך לאמת בלחיצה על הנקודה, ונשאר אמת עד שהמשתמש מזין פעולה חדשה.Confirm Float בודקת אם יש כבר נקודה במחרוזת, ומוסיפה נקודה רק אם אין.&& ו-|| מחושב לפי סדר קדימות, ולכן כדאי לשים סוגריים כשההכרעה לא ברורה.הטקסט המלא של הדקות הראשונות בהרצאה «פרויקט ב-#C - מחשבון פשוט - חלק 8» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בהרצאה של היום אנחנו רוצים להוסיף נקודה עשרונית ואת הטיפול בה. אז בואו ונגרור נגיד את האפס, נעשה לו קופי ופייסט ונשים כאן את הנקודה העשרונית.
נשנה את זה בפרופרטיז שיהיה פה נקודה עשרונית והשם שלה יהיה במקום 10 floating point. יפה. נעשה דאבל קליק.
יפה מאוד. אז מה בעצם אנחנו רוצים לעשות כשהמשתמש לוחץ על הפלוטינג פוינט? אז רק שנייה, טוב בואו נריץ, או יותר נכון הרצנו את המחשבון שלנו, ובואו נגיד לו 123.300, או, כשאני אומר לו נקודה 3 הוא בכלל מתעלם מהנקודה 3.
למה זה קורה? אז האמת היא שכשאני אומר לו, כשאני באמצע הקלדה של מספר, אפשר להגיד שאני בעצם נמצא באלף, אני לא באיף, אני לא באתחול של 0 נקודה, ואני לא אחרי שווה שקליר שווה לטרו, אני לא מאתחל מספר חדש, שזה לא מעניין, אני נמצא באלף.
אז בואו שוב נגיד לו, קליר, 123, רגע, בואו נעזוב רגע את הזה, ושוב, 123, נקודה, ועכשיו בואו נשים breakpoint, ונגיד לו 300, יפה.
אז אנחנו עכשיו במצב שאנחנו באמצע הקלדה של מספר, אבל הטיפול שיש לנו כרגע להצמין את הספרה s מימין ל... סליחה, בין הנקודה העשרונית לבין המספר הקיים, זאת אומרת, איפה המספר הקיים?
הנה, פה. בין השלוש לבין הנקודה העשרונית, כן? בין השלוש לבין הנקודה העשרונית, כרגע הקוד הזה הולך להכניס את השלוש החדש שאנחנו מזינים.
אבל זה לא מה שאנחנו רוצים לעשות כרגע אחרי שהמשתמש לחץ על הפלוטינג פוינט. מה שאנחנו בעצם רוצים לעשות עכשיו זה אחרי הנקודה העשרונית מימין הנקודה העשרונית לשים את הספרה שלוש.
בקיצור אנחנו רוצים פה בעצם את הפתרון הטריוויאלי המקורי המקורי המקורי של פלוס שווה. אנחנו רוצים להצמיד מצד ימין את הספרה הבאה. אז בעצם אנחנו רוצים לבדוק במצב הזה האם היוזר לחץ על floating point.
ואם היוזר לחץ על floating point אז אנחנו רוצים סתם להדביק את הספרה החדשה, את s, מצד ימין. איך נדע אם היוזר לחץ על ה-floating point? אם נגלול למטה, אז זאת הפונקציה שמופעלת שהיוזר לוחץ על floating point.
אז בואו נגדיר משתנה גלובלי שיהפוך להיות true אחרי שהיוזר או כשהיוזר לוחץ כשאנחנו מגיעים לפונקציה הזו כשהיוזר לוחץ על הפלוטינג פוינט נמיר את המשתנה הזה ל true וכאן בעד נומרל בטיפול נבדוק ב-else אם is float שווה ל true אם הוא משתמש לחץ על float אם אנחנו כרגע באמצע ההבנה של משתנה רציונלי נקודת ספה
אז נעשה פלוס שווה אחרת אם אנחנו לא בהבנה של משתנה רציונלי אז באמת נכניס את הספרה החדשה בין הנקודה העשרונית לבין הספרה, כן, כמו שאנחנו עושים בעצם כרגע.
בואו נעצור את הריצה, בואו נוסיף משתנה גלובלי, variables, נוסיף פה, אני חושב שזה לעשות ctrl cv, משכפל לי את השורה, ונקרא is float, האם אנחנו באמצע הזנה של משתנה או מספר מסוג נקודת ספה, ונלך לסוף כאן delete enter ופה פשוט נגיד is float שווה ל true כאן אני הופך את
float ל true כמובן כשאני מגדיר כאן את המשתנה is float אז by default מכיוון שהוא משתנה גלובלי הוא מחוץ לכל פונקציה אז הוא מותחל על ידי המערכת באותו בול ל false אז יפה אז כשהמשתמש לוחץ על הנקודה הצפה אנחנו ממירים את המשתנה הזה ל is float ובעצם אנחנו זוכרים בראש שעכשיו אנחנו דנים ובונים מספר בטקסטבוקס אחד שלנו מסוג נקודת ספא.
אז מה אנחנו עושים במקרה כזה? בוא נגיד שלא חשוב מה כל זה, או בוא נגיד פה זה אתחול אפס וקליר. אוקיי, פה אנחנו דחפנו בין לבין, אבל לא תמיד.
זה היה כשהמספר הוא עשרוני בעצם, ורק רצינו לדחוף את הנקודה הצפה ימינה ולדחוף את הספרה החדשה בין הנקודה הצפה לבין הספרה הימנית ביותר.
אבל זה עכשיו לא תמיד, כי אם אנחנו is float שווה ל true אז זה משהו אחר, else זה שוב משהו אחר.
אז אם אנחנו לא בפלוט, אז יפה. אז באמת אנחנו דנים כרגע במספר עשרוני, אבל יש לנו תמיד נקודת סף הימנית ביותר, אז חייבים לעשות את זה עם insert, לא ניתן להעביר את זה עם פלוס שווה.
אם אנחנו בפלואוט, אז זה מקרה פשוט. אנחנו בסך הכל אומרים טקסט-בוקס אחד נקודה טקסט פלוס שווה ל-S. פשוט מדביקים את הספרה הימנית ביותר מצד ימין.
בואו נריץ את זה. אז שוב, 123.300, אוה, עכשיו הצלחנו. 321, מ-26 עד 321, יפה. אז הצגנו פה מספר מסוג פלואוט. עכשיו נגיד לו ועוד 321. או, פה יש לנו בעיה.
אמרנו לו ועוד 321, אבל הוא מבחינתו עשה פה משהו אחר. טוב, האמת היא שכשאנחנו לוחצים על פלוס, אנחנו צריכים להגיד, אוקיי, אנחנו כבר לא בונים מספר מסוג נקודה צפה.
עוד פעם אם אני אומר לו עכשיו 120 הוא לא נותן לו שם 120 הוא תמיד בונה לי מספר מסוג נקודת צפה עדיין לא בצורה מושלמת כי הוא קצת פה מפספס פה עם האפס וזה אבל הוא עדיין חושב שאני מדבר על נקודת צפה למה כי המשתנה is float נשאר true בעצם אני רוצה לאפס את המשתנה is float אז מתי אני רוצה לאפס אותו?
אם אני אומר מ-23 נקודה ל-321, אוקיי, אז יש לי משתנה מסוג נקודת ספא. כשאני אומר ועוד, או פחות, או כפול, או חלקי, אז זהו, סיימתי כבר להגדיר את המשתנה הראשון, אני עכשיו עובר להתחיל לדבר על המשתנה השני.
אז בעצם עבור כל אחת מהאופרציות אני רוצה לשכוח שאני דן במספר עם נקודת ספא. אז איפה האופרציות? אני חושב שפה טיפה למעלה, לא? כנראה למטה, נצמצם את ה-numerals, כנראה שכן, טעיתי, זה כן למעלה, אופרציות, נגלול לכאן, Handle את כל האופרציות, אז אמרנו, אוקיי, תיאמנו בעצם, לחצנו על פלוס או על כפול או על חלקי או על שווה,
אז אנחנו רוצים לאפס, נעצור את הריצה רגע, נעצור אותה בכוח, אנחנו רוצים לאפס את המשתנה isFloat, isFloat, נחזיר אותו לשווה ל-false. בואו שוב נראה, 123.321, אוקיי, זה גם עבד מקודם, ועוד, עכשיו אמור היה לאפס את המשתנה הגלובלי isFloat, ונגיד לו 321,
בסדר, הוא בונה עכשיו מספר דצימלי, אבל עכשיו נגיד לו נקודה, אז עכשיו הוא אומר, אוקיי, עכשיו אני בונה מספר מסוג נקודת סלפה, עכשיו זה 321 נקודה 123 מצוין שווה מצוין 444 נקודה 444 אוקיי בוא נגיד לו clear ועכשיו 120 עדיין אותה הבעיה לחצתי על clear אז אני גם רוצה לאפס את המשתנה אז בואו נעשה
את זה כדי למצוא את ה-clear מהר מפה דאבל קליק זה is float שווה לפלס ושוב נריץ 123.321 פחות 321.123 שווה אוקיי זה נכון clear 456 יפה נקודה 654 ועוד 654 נקודה 456 שווה נראה לסדר יפה בואו נעבור אחרי שנכנסנו לשווה בואו נעבור לחישוב הבא 120 עדיין אותה בעיה אז שוב כמו
clear גם שווה אחרי שווה אנחנו אמורים שוב להגיד if float שווה לפרוץ נעצור שוב את הריצה נחזור לשווה דאבל קליק ו-is float שווה ל-spot ושוב נריץ 123 ועוד 321 שווה טוב זה לא עוזר לי 123.321 ועוד 321.123 שווה 789.987 כפול 987.789 שווה המספר הזה, אני מניח שזה בסדר, אוקיי,