הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   איזה משתנה צריך לעשות ב C# כדי לחלק והתשובה תיצא שברים? (https://hosts.co.il/forums/showthread.php?t=32354)

Ori The Man 07-10-06 17:04

איזה משתנה צריך לעשות ב C# כדי לחלק והתשובה תיצא שברים?
 
אם אני מחלק 3 ב 1 זה רושם לי 0
הגדרתי את המשתנים של המספרים בתור int ואת הסימני פעולה בתור char

מה צריך לעשות כדי שזה יכתוב גם שברים

Gal Shafrir 07-10-06 17:08

אני לא בטוח אבל אולי ככה:

int a,b;
a = 3;
b = 1;
c = a / b;

Ori The Man 07-10-06 17:09

זה הקוד שעשיתי

קוד:

  Console.WriteLine("Calculator C#");
            Console.WriteLine("");

            int A;
            int B;
            char C;
           

            Console.Write("input one number  :");
            A = int.Parse(Console.ReadLine());

            Console.WriteLine("");
            Console.Write("insert action ( *  / - +)  :");

            C = char.Parse(Console.ReadLine());

            Console.Write("input second number  :");
            B = int.Parse(Console.ReadLine());

            switch(C)
            {
                case '+':
                    Console.WriteLine("The Result: {0} {1} {2} = {3}", A, C, B, A+B);
                    Console.ReadLine();
                    break;

                case '-':
                    Console.WriteLine("The Result: {0} {1} {2} = {3}", A, C, B, A-B);
                    Console.ReadLine();
                    break;

                case '*':
                    Console.WriteLine("The Result: {0} {1} {2} = {3}", A, C, B, A*B);
                    Console.ReadLine();
                    break;

                case '/':
                    Console.WriteLine("The Result: {0} {1} {2} = {3}", A, C, B, A / B);
                    Console.ReadLine();
                    break;


Balrog 07-10-06 17:10

אתה כנראה מתכוון שאם אתה מחלק 1 ב-3 (לא 3 ב-1, 3 חלקי 1 = 3)

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

דרך אחרת היא להמיר את המספר השלם לשבר, באמצעות casting:
לא בטוח איך זה מתבצע ב-c#, אבל ב-C הייתה רושם בסוגריים את הסוג שאליו אתה רוצה להעביר :
קוד:

(float)var
ותמיד אתה יכול מראש לעבוד עם משתנה מסוג שבר - וכאן שוב אנחנו חוזרים לשם שלו ב-C#
תנסה float או double (בתקווה שC# דומה ל-C).

Eye-Soft 07-10-06 18:12

כדי שיצא שבר חובה על המשתנה שמקבל את הערך להיות מסוג float.

Alter 07-10-06 18:15

אורי את a,b,c תחליף לfloat ..
זה מספר עם נקודה אחרי..
int זה מספר שלם ..
char זה אות..

יכלת לדבר איתי והייתי אומר לך =)

opsite 07-10-06 18:37

char - תו כמו !@#$%^&*)(_

וכן אתה חייב שזה יהיה מסוג float
זה אומר שזה נקודה עשרונית..

בידיוק השבוע למדתי על זה בבית ספר

omaniusd 07-10-06 19:03

מה שאתה מחפש זה הטיפוס float (כפי שהוא מכונה ב C#) או decimal

Alon.R 07-10-06 19:16

ציטוט:

נכתב במקור על ידי omaniusd
מה שאתה מחפש זה הטיפוס float (כפי שהוא מכונה ב C#) או decimal

כשאתה אומר טיפוס float זה יעני סוג משתנה כמו int?

ולמה לא דאבל?

Balrog 07-10-06 19:35

float זה סוג משתנה, בדומה לint
אבל float זה מספר עם נקודה צפה (=מספר עם חלק שהוא שבר)

ההבדל הוא בגודל של המשתנה (= טווח הערכים שהמשתנה יכול להכיל)
double משמש למספרים שיותר גדולים ממה שfloat יכול להכיל.

omaniusd 07-10-06 19:50

ציטוט:

נכתב במקור על ידי Balrog
float זה סוג משתנה, בדומה לint
אבל float זה מספר עם נקודה צפה (=מספר עם חלק שהוא שבר)

ההבדל הוא בגודל של המשתנה (= טווח הערכים שהמשתנה יכול להכיל)
double משמש למספרים שיותר גדולים ממה שfloat יכול להכיל.

שימו לב, שאלה הם "כינויים" למשתנים. אין משתנה בשם float בCLR.

Balrog 07-10-06 20:04

ל- omaniusd, הצדק עמך, ונראה לי שאתה מבין טוב ממני בסביבת ה.NET,
אז אולי כדאי שאתה תתן את הפירוט הנוסף פה.

omaniusd 07-10-06 20:11

ציטוט:

נכתב במקור על ידי Balrog
ל- omaniusd, הצדק עמך, ונראה לי שאתה מבין טוב ממני בסביבת ה.NET,
אז אולי כדאי שאתה תתן את הפירוט הנוסף פה.

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

איך עושים את זה? משאילים.
כדי שיהיה נוח יותר למפתחי C++ ו C, דאגו שהתחביר ייראה דומה. כדי שגם יהיה להם קל לכתוב תוכנית ראשונה בסיסית באמצעות למידה מינימלית, עשו להם גם שמות טיפוסים דומים.
השמות טיפוסים האלה, שהיו מוכרים להם מהעבר כמו int,float,char ו string (עם אותיות קטנות) אלה aliases לשמות האמיתיים, של המקבילים ב CLR.
int - System.Int32
uint - System.Int16
string - System.String

השיטה שבה הם הטמיעו אותה, מערבת חיבור ישיר לIDE (הקומפיילר מפרש) ושימוש ב Namespace מיוחד שמכיל אמצעי עזר לקומפיילרים של C# לעבוד עם הטיפוסים הללו.

זה כל הסיפור.

CSite.co.il 08-10-06 00:09

למי ששאל,
double - ממשי ממשי.
float - ממשי שלם.

תקנו אותי, אני כמעט בטוח.

omaniusd 08-10-06 06:23

ציטוט:

נכתב במקור על ידי MnM
למי ששאל,
double - ממשי ממשי.
float - ממשי שלם.

תקנו אותי, אני כמעט בטוח.

לא מכיר את המינוח הזה. float שווה ערך ל System.Single. אתה צודק, שערך ב float יאוכסן עם מראה כזה, למשל (3.5F). אחרת, תהיה שגיאת קומפילציה. פשוט מדובר בדברים שונים.

psycho 08-10-06 08:18

ב C# יותר מקובל לעבוד עם דאבל מאשר לעבוד עם float
למיטב ידיעתי

אני טועה?

omaniusd 08-10-06 08:46

ציטוט:

נכתב במקור על ידי psycho
ב C# יותר מקובל לעבוד עם דאבל מאשר לעבוד עם float
למיטב ידיעתי

אני טועה?

אין "מקובל". תלוי לאיזה צורך. ברמה שהוא ביקש אותה, double יהיה לו יותר נוח - זה נכון.

Ori The Man 08-10-06 10:30

תודה לכולם אני יגיע הביתה אני ינסה :) (חחח עובד אצל אבא שלי וכמו שאתם רואים לא עושה כלום)
ורון לא הייתה מחובר P:

Alon.R 08-10-06 12:35

ציטוט:

נכתב במקור על ידי omaniusd
אין "מקובל". תלוי לאיזה צורך. ברמה שהוא ביקש אותה, double יהיה לו יותר נוח - זה נכון.

עדיין לא הבנתי את ההבדל בין float לבין double.... הסבר בבקשה :D

תנו לי בבקשה דוגמאות כמו
שבint אפשר להכניס רק 1/85050555/9 וכו' (רק מספרים שלמים)
אני יודע שבדאבל אפשר להכניס מספרים עשרוניים כמו 1.5 וכו'..

אז מה float יכול להכיל ומה ההבדל שלו מדאבל..B-)


כל הזמנים הם GMT +2. הזמן כעת הוא 20:17.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ