ABA


"שאלה ב JAVA מאוד פשוטה - יחסית"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10673 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10673
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   16:54   26.04.12   
אל הפורום  
  שאלה ב JAVA מאוד פשוטה - יחסית  
 
   ראו את הקוד הבא:

public static void main(String args)
{
double i = 16.0;
while(i!=0)
{
System.out.println("X");
i = i/3;
}
}

כמה פעמים יודפס ה X על המסך?

תשובות:
1. שגיאה
2. יותר מ 10
3. 3
4. 5
5. 5.33

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


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  על פניו זה נראה 5.33 -KINGMAN-  26.04.12 18:20 1
     יש לי בעיה לוגית עם תשובה כזאת. ShocKi  26.04.12 22:10 3
     אתה אמיתי? חומוס 26.04.12 23:31 5
  הפונקציה הזאת לא תתקמפל חסר סוגרים מרובעות ShocKi  26.04.12 22:06 2
     אני לא חושב שזה יתאפס ... זה יהיה לולאה אינסופית cfirzzz 26.04.12 22:48 4
         ואז הוא יעצור והלולאה תגמר.. לכן זו לא לולאה אינסופית. ShocKi  27.04.12 11:25 10
     הוא פשוט שכח ללחוץ על המרת סוגריים מרובעים ldan192  27.04.12 00:02 6
  2. יותר מ-10. תאורטית אם double היה אינסופי ldan192  27.04.12 00:05 7
     אתה צודק זאת התשובה. אבל לא הבנתי משהו, dvir8 27.04.12 02:11 8
         לא כי double מיוצג ע''י מספר מסויים וסופי של ביטים TheKid 27.04.12 08:15 9
             בדיוק.. ShocKi  27.04.12 11:26 11
             האם אני יכול להסתמך על זה שכל חישוב שאעשה בשאיפה ל0, dvir8 27.04.12 13:31 12
                 לא ניסית אבל תלוי בסביבת העבודה והטיפוס לטעמי TheKid 27.04.12 14:56 13
                     זה מה שמתקבל - 4.9E-324 dvir8 27.04.12 15:24 14
                         זה מספר ששואף ל-0. ufo  27.04.12 15:41 15
                         תשנה את ההדפסה להדפסה בפורמט נוח ShocKi  27.04.12 17:02 16
                 ממש ממש לא... יש גם נקודות ''שווי משקל'' ldan192  28.04.12 19:36 17
                     אז למה התשובה לשאלה היא לא ''שגיאה''? dvir8 29.04.12 10:29 18
                         כי חלוקה ב-3 זה לא המקרה הנ''ל ldan192  29.04.12 11:21 19
                             הבנתי פחות או יותר - תודה רבה! dvir8 29.04.12 12:41 20

       
-KINGMAN-  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 13.4.03
7284 הודעות, 2 פידבק
   18:20   26.04.12   
אל הפורום  
  1. על פניו זה נראה 5.33  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   22:10   26.04.12   
אל הפורום  
  3. יש לי בעיה לוגית עם תשובה כזאת.  
בתגובה להודעה מספר 1
 
   השאלה היא כמה פעמים X יודפס על המסך.. אז איך יכול להיות שהתשובה תהייה 5.33? איך הוא יודפס 5.33 פעמים..? זה בלתי אפשרי.
מהטיעון הזה בלבד התשובה הזאת נפסלת.


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
חומוס לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 22.4.02
13069 הודעות, 5 פידבק
   23:31   26.04.12   
אל הפורום  
  5. אתה אמיתי?  
בתגובה להודעה מספר 1
 
מה זה 0.33 פעמים?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   22:06   26.04.12   
אל הפורום  
  2. הפונקציה הזאת לא תתקמפל חסר סוגרים מרובעות  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 26.04.12 בשעה 22:09 בברכה, ShocKi
 
ב args... אני זוכר שכשעשיתי קורס ג'אווה כל הזמן שכחתי את הסוגרים וeclips לא היה מוכן לוותר על זה..

מעבר לכך, אם נתעלם שניה משגיאת הסינטקס הזאת.. הרי שהתוכנית הזאת תרוץ הרבה מאוד פעמים... i למעשה שואף ל 0 אבל צריך הרבה מאוד סיבובים כדי שהוא "יתאפס" בכל הספרות שאחרי הנקודה. תחלק את i ב3 במשך 6 פעמים ואתה תראה שאפילו 6 סיבובים לא יספיקו. ולכן התשובה היא 2 (שוב, בהנחה ומתעלמים משגיאת הסינטקס).


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
cfirzzz לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.8.02
5060 הודעות, 2 פידבק
   22:48   26.04.12   
אל הפורום  
  4. אני לא חושב שזה יתאפס ... זה יהיה לולאה אינסופית  
בתגובה להודעה מספר 2
 
   כלומר
היא כנראה לא באמת אינסופית, אלא המחשב לא יגיע למצב שכל הספרות שהוא יכול להכיל יהיו מאופסות...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   11:25   27.04.12   
אל הפורום  
  10. ואז הוא יעצור והלולאה תגמר.. לכן זו לא לולאה אינסופית.  
בתגובה להודעה מספר 4
 
   יש מספר סופי של סיבובים.


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   00:02   27.04.12   
אל הפורום  
  6. הוא פשוט שכח ללחוץ על המרת סוגריים מרובעים  
בתגובה להודעה מספר 2
 


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   00:05   27.04.12   
אל הפורום  
  7. 2. יותר מ-10. תאורטית אם double היה אינסופי  
בתגובה להודעה מספר 0
 
אז אינסוף פעמים, כי זה מזכיר כמו שתיקח חוט וכל פעם תחתוך אותו בדיוק באמצע, תבחר חלק ותחתוך אותו שוב וכן הלאה - אתה אף פעם לא תגיע לעצירה (אלא אם החוט כבר יגיע לאטום בודד וכו' וכו').
אז מכיוון שהוא חסום ב-32 ביט אז זה יפסיק מתישהו.
מתי? יש חישוב אנליטי (מאנליזה נומרית) שנותן את זה דיי בקלות, השאלה אם אתה צריך את זה...


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   02:11   27.04.12   
אל הפורום  
  8. אתה צודק זאת התשובה. אבל לא הבנתי משהו,  
בתגובה להודעה מספר 7
 
   למה התוכנית לא קורסת בשל לולאה אינסופית?
כלומר אף פעם מחילוק ב 3 לא נגיע ל0. אולי נשאף אליו אבל לא נגיע אליו ולכן התוכניות תרוץ אינסוף פעמים.

לא?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TheKid לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.10.07
17978 הודעות, 1 פידבק
   08:15   27.04.12   
אל הפורום  
  9. לא כי double מיוצג ע''י מספר מסויים וסופי של ביטים  
בתגובה להודעה מספר 8
 
   ברגע שתגיע לכמות המקסימלית של הייצוג הוא ייקח את הספרות הראשונות שכניראה יהיו אפס..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   11:26   27.04.12   
אל הפורום  
  11. בדיוק..  
בתגובה להודעה מספר 9
 
  


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   13:31   27.04.12   
אל הפורום  
  12. האם אני יכול להסתמך על זה שכל חישוב שאעשה בשאיפה ל0,  
בתגובה להודעה מספר 9
 
   הוא תמיד יפסק מתישהו ולא בגלל קריסה?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
TheKid לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.10.07
17978 הודעות, 1 פידבק
   14:56   27.04.12   
אל הפורום  
  13. לא ניסית אבל תלוי בסביבת העבודה והטיפוס לטעמי  
בתגובה להודעה מספר 12
 
   אתה יכול במקום להדפיס את X להדפיס את i ואז תבין איך זה עובד למול זה שדאבל הוא בגודל 8 בתים ויכול להיות עד 15 ספרות אם אני לא טועה..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   15:24   27.04.12   
אל הפורום  
  14. זה מה שמתקבל - 4.9E-324  
בתגובה להודעה מספר 13
 
   איזה מן מספר זה? מה זה אומר?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ufo  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.3.02
2725 הודעות, 2 פידבק
   15:41   27.04.12   
אל הפורום  
  15. זה מספר ששואף ל-0.  
בתגובה להודעה מספר 14
 
   המספר הוא 4.9 כפול (10 בחזקת 324-) .


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   17:02   27.04.12   
אל הפורום  
  16. תשנה את ההדפסה להדפסה בפורמט נוח  
בתגובה להודעה מספר 14
 
   עם %2.15 או משהו כזה...


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   19:36   28.04.12   
אל הפורום  
  17. ממש ממש לא... יש גם נקודות ''שווי משקל''  
בתגובה להודעה מספר 12
 
שבאותה מידה ההתכנסות תחזיר אותך לחישוב הקודם (לופ אינסופי).
מה שגם יכול להיות שקצב ההתכנסות יהיה כל כך איטי שבשבילך זה יהיה אינסופי


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   10:29   29.04.12   
אל הפורום  
  18. אז למה התשובה לשאלה היא לא ''שגיאה''?  
בתגובה להודעה מספר 17
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   11:21   29.04.12   
אל הפורום  
  19. כי חלוקה ב-3 זה לא המקרה הנ''ל  
בתגובה להודעה מספר 18
 
בוא נניח ש-double היה מאפשר רק 2 ספרות אחרי הנקודה וניקח את המספר 1.99 ותכפול אותו ב-1.005. מה תקבל? 1.99995, אבל בקיצוץ תקבל שוב 1.99.
אתה לא מתכנס אף פעם ל-2 למרות שאתה כופל במספר גדול מ-1.

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


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   12:41   29.04.12   
אל הפורום  
  20. הבנתי פחות או יותר - תודה רבה!  
בתגובה להודעה מספר 19
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net