ABA


"למה שימוש ב-MOD (%) לא עובד כראוי (C#)"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15625 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15625
Static
חבר מתאריך 1.7.02
1329 הודעות
   10:20   22.12.09   
אל הפורום  
  למה שימוש ב-MOD (%) לא עובד כראוי (C#)  
 
   השאלה שמישהו ביקש ממני לפתור לו היא מאוד פשוטה:

פתח ויישם אלגוריתם המציג כפלט את מספר השלמים מ-1 ל-300 שהשורש שלהם הוא מספר שלם.

תרגיל קל של כמה שורות שניסיתי לפתור בדרך הזאת:


using System;

class Program
{
static void Main(string args)
{
int count = 0;
for (double i = 1; i < 301; i++)
{
if (Math.Sqrt(i) % 10== 0)
count++;

}
Console.WriteLine(count);


הקוד הזה לא עובד בשאלת ה IF אף פעם לא מקבלים TRUE (מוזר...?!)
ההיגיון אומר math.sqrt(4) % 10 == 0 ביטוי "אמת" ומשום מה לא כך הדבר.

אז פתרתי את התרגיל בצורה אחרת, כך:


מישהו יודע להסביר למה הקוד הראשון שניסיתי לא עבד?


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  sqrt(4) = 2 and 2 % 10 = 2 != 0 לא הבנת מה זה mod. TTAsnn 22.12.09 17:52 1
     בדיוק ronen333  22.12.09 18:19 3
  למה שמודלו 10 תענה לך על התשובה? ronen333  22.12.09 18:18 2
     נכון, התבלבלתי.אז איך אני בעצם תופס את מה שאחרי הנקודה? Static 22.12.09 19:37 4
         לא הסתכלתי על הקוד אבל בשביל לקבל את החלק אחרי הנקודה Net_Boy  22.12.09 19:50 5
         חחח לך לישון.. ronen333  22.12.09 19:55 6
             חחח.. תכלס בהייתי במסך ולא הבנתי למה הקומפיילר מרושע Static 23.12.09 08:45 7
  סתם בשביל הקטע, %1 בחלק מהשפות מחזיר ת'חלק העשרוני. לא זוכר בנוגע ל-#C ldan192  23.12.09 15:36 8

       
TTAsnn

   17:52   22.12.09   
אל הפורום  
  1. sqrt(4) = 2 and 2 % 10 = 2 != 0 לא הבנת מה זה mod.  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   18:19   22.12.09   
אל הפורום  
  3. בדיוק  
בתגובה להודעה מספר 1
 
   ערכתי לאחרונה בתאריך 22.12.09 בשעה 18:49 בברכה, ronen333
 
הוא כנראה חשב שזה יביא לו את מה שאחרי הנקודה רק...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   18:18   22.12.09   
אל הפורום  
  2. למה שמודלו 10 תענה לך על התשובה?  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 22.12.09 בשעה 18:30 בברכה, ronen333
 
אם תעשה מודלו 10 ל15.8 זה לא יבדוק את ה8 (אם זו הייתה הכוונה שלך).
זה יביא לך את ה5.8, מבין למה זה לא עובד לך?
כך שנניח עשית שורש ל144, והתוצאה היא 12.00אז מודלו 10יביא לך 2.00. לא בדיוק מה שרצית נכון?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Static
חבר מתאריך 1.7.02
1329 הודעות
   19:37   22.12.09   
אל הפורום  
  4. נכון, התבלבלתי.אז איך אני בעצם תופס את מה שאחרי הנקודה?  
בתגובה להודעה מספר 2
 
   איך תופסים את מה שאחרי הנקודה בשיטה יותר מסודרת ממה שהצגתי בפתרון שלי?

רוב הסיכויים שהתבלבלתי כי עשיתי את זה ב7 בבוקר חחח


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   19:50   22.12.09   
אל הפורום  
  5. לא הסתכלתי על הקוד אבל בשביל לקבל את החלק אחרי הנקודה  
בתגובה להודעה מספר 4
 
   ממספר ממשי בצורה הכי קלה


double dResult = dNumber - (int)dNumber;

תמיד המספר יעוגל כלפי מטה וככה אתה מקבל בקלות את החלק אחרי הנקודה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   19:55   22.12.09   
אל הפורום  
  6. חחח לך לישון..  
בתגובה להודעה מספר 4
 
   אתה כנראה באמת עייף. הייתה לך את התשובה בפתרון השני שלך.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Static
חבר מתאריך 1.7.02
1329 הודעות
   08:45   23.12.09   
אל הפורום  
  7. חחח.. תכלס בהייתי במסך ולא הבנתי למה הקומפיילר מרושע  
בתגובה להודעה מספר 6
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   15:36   23.12.09   
אל הפורום  
  8. סתם בשביל הקטע, %1 בחלק מהשפות מחזיר ת'חלק העשרוני. לא זוכר בנוגע ל-#C  
בתגובה להודעה מספר 0
 


בברכה,
עידן


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

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

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



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