ABA


"עיגול מספר עשרוני למספר שלם באמצעות פעולות חשבון בסיסיות"
גירסת הדפסה        
קבוצות דיון לימודים, מדע ותרבות נושא #22074 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 22074
cFc 
חבר מתאריך 27.3.08
157 הודעות
   18:00   15.07.19   
אל הפורום  
  עיגול מספר עשרוני למספר שלם באמצעות פעולות חשבון בסיסיות  
 
   חידה מתמטית שנראית טריוויאלית...
אז ככה האם קיימת אפשרות לעגל מספר עשרוני כלשהו למספר שלם על ידי הפעולות הבאות בלבד: +,-,*,/,<,>,=
כמו כן ניתן להשתמש בהתניית IF ELSE.

תודה מראש לכל העוזרים.


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  אתה מתכוון שהמספר נתון בנקודה צפה ואתה רוצה להפוך אותו לint? The Slayer  16.07.19 00:56 1
     לפי סגנון השאלה נראה שהוא מתכוון לפעולה מתמטית כמו בטבלת אקסל לדוגמה ZiggyMan  16.07.19 07:18 2
     תודה רבה על הפתרון. cFc  16.07.19 18:57 3
         כואב הלב לראות את זה חח The Slayer  17.07.19 02:23 4
             הצדק עמך אכן פתרון כואב זמן ריצה N לא בריא בכלל cFc  17.07.19 18:44 5
                 אוקיי, פחות מבין בזה בהצלחה The Slayer  18.07.19 01:00 6

       
The Slayer 
חבר מתאריך 29.4.03
7959 הודעות, 2 פידבק
   00:56   16.07.19   
אל הפורום  
  1. אתה מתכוון שהמספר נתון בנקודה צפה ואתה רוצה להפוך אותו לint?  
בתגובה להודעה מספר 0
 
   אם כן אתה יכול לדעת מראש את היצוג במנטיסה ורק לפי האספוננט לכתוב קוד שמייצר רק ערכים שלמים

אם אתה מתכוון לאיזו נוסחא כללית
אז מה שעובר לי בראש זה לעשות לולאה בבסיס שהוא הכי מתאים

ניתן כאן דוגמא int32 יכול להציג ספרות עד 10 בחזקת 9
אז במקרה הגרוע אתה יכול בפחות 100 איטרציות להגיע למספר

לדוגמא נתת מספר 723.358484
אתה מתחיל לבדוק אם גדול מ9^10
ואז עובר ל8^10 7^10 וכו'
אתה מגיע ל2^10 ואתה מגלה שהמספר שלך גדול
אתה נשאר על 100 ועכשיו אתה מוסיף 2^10 עד שאתה מגלה שזה קטן ואתה מגיע ל800

אתה חוזר ל700 מכאן אתה מוסיף 1^10 כל פעם עד שאתה מגיע ל730
חוזר ל720 מתחיל להוסיף 1 שזה בעצם 0^10 עד שאתה מגיע ל724 ולוקח את ה723

כמובן אפשר לכתוב בבסיס אחר שאולי יותר יעיל
ולעשות חיסורים דווקא אם עברת את ה5
ולעשות אולי קפיצות לא אחידות כמו 5 2 ואז 1 בשביל לחסוך זמן ריצה

@cFc@


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ZiggyMan 
חבר מתאריך 8.6.04
9969 הודעות
   07:18   16.07.19   
אל הפורום  
  2. לפי סגנון השאלה נראה שהוא מתכוון לפעולה מתמטית כמו בטבלת אקסל לדוגמה  
בתגובה להודעה מספר 1
 
ולא לשפת תכנות, כך שאי אפשר להריץ שם לולאות.

-------------------------------------------

L'enfer, c'est les autres


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
cFc 
חבר מתאריך 27.3.08
157 הודעות
   18:57   16.07.19   
אל הפורום  
  3. תודה רבה על הפתרון.  
בתגובה להודעה מספר 1
 
   אכן יפתור את הבעיה... אמנם שכחתי להוסיף בשאלה שניתן גם להשתמש בלולאות, אז מצאתי פתרון די דומה לשלך:
X המספר הממשי שאנו רוצים לעגל.

floor = 0
While x >= 1
floor += 1
x -= 1
End While


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
The Slayer 
חבר מתאריך 29.4.03
7959 הודעות, 2 פידבק
   02:23   17.07.19   
אל הפורום  
  4. כואב הלב לראות את זה חח  
בתגובה להודעה מספר 3
 
   אם המספר גדול זה כבד מאוד

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


#include <iostream>

int ten_pow_i(int x){
int num = 1;
for (int i = 0; i < x; i++)
num *= 10;
return num;
}

int main(){

float num = 4235723.472387;
int floor = 0;
int iter = 0;
for (int i = 9; i >= 0; i--)
{
while (floor < num){
floor += ten_pow_i(i);
iter++;
}
floor -= ten_pow_i(i);
}
std::cout << "num of iterations = " << iter << " round number = " << floor << std::endl;
}


@cFc@


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
cFc 
חבר מתאריך 27.3.08
157 הודעות
   18:44   17.07.19   
אל הפורום  
  5. הצדק עמך אכן פתרון כואב זמן ריצה N לא בריא בכלל  
בתגובה להודעה מספר 4
 
   הבעיה היא שאני מתכנת בתוך ERP ואני מאוד מוגבל מבחינה של פקודות אופרטורים ואופרנדים.
הלוואי היו לי את היכולות של C++ בתוך ה ERP. בשורה אחת הייתי עושה לו CASTING ל INT. ננסה מחר לקמבן את הפתרון שלך לרמה של ה ERP.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
The Slayer 
חבר מתאריך 29.4.03
7959 הודעות, 2 פידבק
   01:00   18.07.19   
אל הפורום  
  6. אוקיי, פחות מבין בזה בהצלחה  
בתגובה להודעה מספר 5
 
  


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

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

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



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