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

הוסטס - פורום אחסון האתרים הגדול בישראל (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=30882)

Matchs 15-09-06 15:55

תנאים ב-C#, אפשר דוגמה?
 
אני צריך דוגמה לתנאי מסוג כזה:
אם C שווה למשהו, ו-D שווה למשהו, אז..

תודה! :]

omaniusd 15-09-06 15:56

http://www.devarea.be/Front/NewsNet/...eportId=138370

Matchs 15-09-06 15:59

תודה רבה! :)
אפשר מידע לגבי DivideByZeroException?

omaniusd 15-09-06 16:02

ציטוט:

נכתב במקור על ידי Matchs
תודה רבה! :)
אפשר מידע לגבי DivideByZeroException?

מה שקורה כשיש חלוקה באפס. Exceeption סופר-קריטי ברמת המערכת.
http://www.devarea.be/Front/NewsNet/...eportId=124014

Matchs 15-09-06 16:07

לא הבנתי כל כך..
אני רוצה לעשות בדיקה שאם מתגלה חילוק ב-0, אז הוא יראה שגיאה..

אפשר דוגמת קוד?
תודה.

omaniusd 15-09-06 16:13

ציטוט:

נכתב במקור על ידי Matchs
לא הבנתי כל כך..
אני רוצה לעשות בדיקה שאם מתגלה חילוק ב-0, אז הוא יראה שגיאה..

אפשר דוגמת קוד?
תודה.

עקרונית, רצוי להשתמש ב if, ולראות אם המחלק הוא אפס (יותר חסכוני מבחינת משאבים).
אם אתה מעדיף לעבוד עם Exception, אז במדריך הבא:
http://www.devarea.be/Front/NewsNet/...eportId=124014
צירפתי בסוף דוגמא שתבהיר לך את העניין. אתם נותנים לי הרבה עבודה, וזה טוב, ואני באמת רוצה להרחיב את החומר באתר לפי הנושאים שאתם לומדים.

Matchs 15-09-06 16:16

עשיתי עם IF והכל,
הבעיה שזה עובד - אבל הקומפיילר מציג את השגיאה עצמה של ה-DivideByZeroException.

מה ניתן לעשות?

omaniusd 15-09-06 16:18

ציטוט:

נכתב במקור על ידי Matchs
עשיתי עם IF והכל,
הבעיה שזה עובד - אבל הקומפיילר מציג את השגיאה עצמה של ה-DivideByZeroException.

מה ניתן לעשות?

אתה עושה חלוקה באפס בקוד עצמו?
אם כן, אז הקומפיילר יתערב. אני מדבר על מקרה שבו אתה מסנן קלט של המשתמש למחלק, שלא יהיה אפס.
כתבתי על זה מאמר בזמנו-
http://blogs.microsoft.co.il/blogs/s...04/21/123.aspx

Matchs 15-09-06 16:22

אני בכוונה מחלק ב-0 בכדי למנוע את השגיאה. הבנת?
אז עם מה עדיף להשתמש? IF? או עם CATCH (ועדיין לא הבנתי את ה-TRY, יש לי את C שהוא הפעולה, ו-B שזה המספר השני, ז"א הפעולה / והמספר השני 0)..

omaniusd 15-09-06 16:24

ציטוט:

נכתב במקור על ידי Matchs
אני בכוונה מחלק ב-0 בכדי למנוע את השגיאה. הבנת?
אז עם מה עדיף להשתמש? IF? או עם CATCH (ועדיין לא הבנתי את ה-TRY, יש לי את C שהוא הפעולה, ו-B שזה המספר השני, ז"א הפעולה / והמספר השני 0)..

מה זאת אומרת בכוונה מחלק באפס?
חילוק באפס - הוא הגורם לשגיאה!

IF עדיף. תבין, CATCH הוא חלק ממשפט ה TRY. כלומר, בבלוק של TRY אתה כותב את המשפט שעלולות להיות בו בעיות (נניח, משפט חלוקה שמסתמך על פלט של המשתמש, כשאתה לא יודע מה הוא ידחוף לך שם).
בבלוק של הCATCH, אתה כותב במידה ויהיו בעיות במשפטים שמופיעים בבלוק של הTRY מה יקרה. כשאתה יכול להגיב ספיציפית ל Exception מסויים, או לכל ה Exception-ים האפשריים בכלליות.

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

Matchs 15-09-06 16:28

ציטוט:

נכתב במקור על ידי omaniusd
מה זאת אומרת בכוונה מחלק באפס?
חילוק באפס - הוא הגורם לשגיאה!

IF עדיף. תבין, CATCH הוא חלק ממשפט ה TRY. כלומר, בבלוק של TRY אתה כותב את המשפט שעלולות להיות בו בעיות (נניח, משפט חלוקה שמסתמך על פלט של המשתמש, כשאתה לא יודע מה הוא ידחוף לך שם).
בבלוק של הCATCH, אתה כותב במידה ויהיו בעיות במשפטים שמופיעים בבלוק של הTRY מה יקרה. כשאתה יכול להגיב ספיציפית ל Exception מסויים, או לכל ה Exception-ים האפשריים בכלליות.

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

א. אני אפרסם.
ב. אני יודע שהוא הגורם לשגיאה, אבל אני לא רוצה שהקומפיילר יתחיל לעשות לי הצגות כשאני מריץ את הבדיקה עם IF ולא עם DivideByZeroException... אתה מבין?

omaniusd 15-09-06 16:31

ציטוט:

נכתב במקור על ידי Matchs
א. אני אפרסם.
ב. אני יודע שהוא הגורם לשגיאה, אבל אני לא רוצה שהקומפיילר יתחיל לעשות לי הצגות כשאני מריץ את הבדיקה עם IF ולא עם DivideByZeroException... אתה מבין?

תעשה שתקבל בתור קלט אפשרות ל0, ואת החלוקה עצמה תעשה בתוך משפט הIF אחרי שווידאת שאינו 0, ואם הוא 0 תעשה משפט else שיציג שגיאה.
רוצה קוד דוגמא?

opsite 15-09-06 16:31

למה אין שפת c? חבל אחי אם היה הייתי מפרסם המורה אמר לנו לתת אתרים טובים לשפת סי אבל זה לא מה שאניחנו לומדים אנחנו לומדים c בלבד לבנתיים

omaniusd 15-09-06 16:32

ציטוט:

נכתב במקור על ידי Logic-serv
למה אין שפת c? חבל אחי אם היה הייתי מפרסם המורה אמר לנו לתת אתרים טובים לשפת סי אבל זה לא מה שאניחנו לומדים אנחנו לומדים c בלבד לבנתיים

כי אין טעם לכתוב מדריכים לשפה לא רלוונטית מבחינה טכנולוגית.
זה, והעובדה המצערת שפעם אחרונה שכתבתי משהו בC היה לפני 4 שנים, אם לא משחיבים שנה שעברה שעזרתי למישהו ללמוד לבגרות.

Matchs 15-09-06 16:33

ציטוט:

נכתב במקור על ידי omaniusd
תעשה שתקבל בתור קלט אפשרות ל0, ואת החלוקה עצמה תעשה בתוך משפט הIF אחרי שווידאת שאינו 0, ואם הוא 0 תעשה משפט else שיציג שגיאה.
רוצה קוד דוגמא?

יאפ..

omaniusd 15-09-06 16:39

סבבה.
קוד:

//הגדרת משתנים
            int num1;
            int num2;
            //קבלת קלט
            Console.WriteLine("Enter two numbers' please");
            num1 = Convert.ToInt32(Console.ReadLine()); //עשיתי גם המרה
            num2 = Convert.ToInt32(Console.ReadLine());
            if(num2==0) //בדיקה אם המחלק שווה לאפס
            {
                Console.WriteLine("I'm Sorry. I can't divide zero");
            }
            else //אם הפעולה תקינה
            {
                Console.WriteLine(num1/num2);
            }
            Console.Read(); //שהאפליקציה תמתין לקלט לסיום


Matchs 15-09-06 16:45

ציטוט:

נכתב במקור על ידי omaniusd
סבבה.
קוד:

//הגדרת משתנים
            int num1;
            int num2;
            //קבלת קלט
            Console.WriteLine("Enter two numbers' please");
            num1 = Convert.ToInt32(Console.ReadLine()); //עשיתי גם המרה
            num2 = Convert.ToInt32(Console.ReadLine());
            if(num2==0) //בדיקה אם המחלק שווה לאפס
            {
                Console.WriteLine("I'm Sorry. I can't divide zero");
            }
            else //אם הפעולה תקינה
            {
                Console.WriteLine(num1/num2);
            }
            Console.Read(); //שהאפליקציה תמתין לקלט לסיום


עשיתי בדיוק מה שאמרת, רק בלי ELSE - ועכשיו הכל פועל נהדר! :)
למי שרוצה לראות מחשבון בסיסי עם 2 מספרים ופעולות, בשפת סי-שארפ (אשמח לתגובות וכמובן ממך omaniusd):

PHP קוד:

using System;
using System.Collections.Generic;
using System.Text;

namespace Calculator
{
    class 
Program
    
{
        static 
void Main(string[] args)
        {
            
int A;
            
int B;
            
char C;

            
Console.WriteLine("Welcome to C# calculator!");
            
Console.WriteLine("Made by Rotem the programmer :P");

            
Console.WriteLine();

            
Console.Write("Please insert the first number: ");
            
int.Parse(Console.ReadLine());

            
Console.Write("Please insert the second number: ");
            
int.Parse(Console.ReadLine());

            
Console.Write("Please insert an action: ");
            
char.Parse(Console.ReadLine());

            if ((
== '/') || (== 0))
            {
                
Console.WriteLine();
                
Console.WriteLine("You can't division by zero!");
                
Console.Read();
            }

            else
            {
                switch (
C)
                {
                    case 
'+':
                        
Console.WriteLine("The Result: {0} {1} {2} = {3}"ACBB);
                        
Console.Read();
                        break;

                    case 
'-':
                        
Console.WriteLine("The Result: {0} {1} {2} = {3}"ACBB);
                        
Console.Read();
                        break;

                    case 
'*':
                        
Console.WriteLine("The Result: {0} {1} {2} = {3}"ACBB);
                        
Console.Read();
                        break;

                    case 
'/':
                        
Console.WriteLine("The Result: {0} {1} {2} = {3}"ACBB);
                        
Console.Read();
                        break;

                    default:
                        
Console.WriteLine("There is a problem! :(");
                        break;
                }
            }
        }
    }



omaniusd 15-09-06 16:48

ציטוט:

נכתב במקור על ידי Matchs
עשיתי בדיוק מה שאמרת, רק בלי ELSE - ועכשיו הכל פועל נהדר! :)
למי שרוצה לראות מחשבון בסיסי עם 2 מספרים ופעולות, בשפת סי-שארפ (אשמח לתגובות וכמובן ממך omaniusd):

PHP קוד:

using System;
using System.Collections.Generic;
using System.Text;

namespace Calculator
{
    class 
Program
    
{
        static 
void Main(string[] args)
        {
            
int A;
            
int B;
            
char C;

            
Console.WriteLine("Welcome to C# calculator!");
            
Console.WriteLine("Made by Rotem the programmer :P");

            
Console.WriteLine();

            
Console.Write("Please insert the first number: ");
            
int.Parse(Console.ReadLine());

            
Console.Write("Please insert the second number: ");
            
int.Parse(Console.ReadLine());

            
Console.Write("Please insert an action: ");
            
char.Parse(Console.ReadLine());

            if ((
== '/') || (== 0))
            {
                
Console.WriteLine();
                
Console.WriteLine("You can't division by zero!");
                
Console.Read();
            }

            else
            {
                switch (
C)
                {
                    case 
'+':
                        
Console.WriteLine("The Result: {0} {1} {2} = {3}"ACBB);
                        
Console.Read();
                        break;

                    case 
'-':
                        
Console.WriteLine("The Result: {0} {1} {2} = {3}"ACBB);
                        
Console.Read();
                        break;

                    case 
'*':
                        
Console.WriteLine("The Result: {0} {1} {2} = {3}"ACBB);
                        
Console.Read();
                        break;

                    case 
'/':
                        
Console.WriteLine("The Result: {0} {1} {2} = {3}"ACBB);
                        
Console.Read();
                        break;

                    default:
                        
Console.WriteLine("There is a problem! :(");
                        break;
                }
            }
        }
    }



אתה צריך לעשות שאם C הוא חילוק וגם B שווה אפס. בחיבור, זה לא מפריע לך.
עשית את ההמרה עם Parse. יש לזה את היתרונות והחסרונות שלו, בכזאת אפליקציה, זה לא רלוונטי.
שים לב שלפי זה (לא בדקתי בפועל, אבל נראה לי) אם אני מכניס B שהוא אפס וסימן חיבור, הוא עדיין יגיד שאינו יכול לחלק באפס (או שאני טועה).

הקוד כעיקרון יפה, רק תחליף את || ב &&

Matchs 15-09-06 16:50

ציטוט:

נכתב במקור על ידי omaniusd
אתה צריך לעשות שאם C הוא חילוק וגם B שווה אפס. בחיבור, זה לא מפריע לך.
עשית את ההמרה עם Parse. יש לזה את היתרונות והחסרונות שלו, בכזאת אפליקציה, זה לא רלוונטי.
שים לב שלפי זה (לא בדקתי בפועל, אבל נראה לי) אם אני מכניס B שהוא אפס וסימן חיבור, הוא עדיין יגיד שאינו יכול לחלק באפס (או שאני טועה).

הקוד כעיקרון יפה, רק תחליף את || ב &&

אופס, טעות שלי |מסמיק|
עכשיו מצאתי עוד בעיה.. לא מצליח להשתמש במספרים לא שלמים (1.5 לדוגמה, הוא נותן שגיאה)..
מה אפשר לעשות?

omaniusd 15-09-06 16:51

ציטוט:

נכתב במקור על ידי Matchs
אופס, טעות שלי |מסמיק|
עכשיו מצאתי עוד בעיה.. לא מצליח להשתמש במספרים לא שלמים (1.5 לדוגמה, הוא נותן שגיאה)..
מה אפשר לעשות?

להמיר כל מקום שכתוב בו int ל float או ל Decimal.
הטיפוס int לא עובד על מספרים שאינם שלמים, וכשמנסים להכניס לו מספרים שאינם שלמים, ייזרק Exception.

Matchs 15-09-06 16:53

ציטוט:

נכתב במקור על ידי omaniusd
להמיר כל מקום שכתוב בו int ל float או ל Decimal.
הטיפוס int לא עובד על מספרים שאינם שלמים, וכשמנסים להכניס לו מספרים שאינם שלמים, ייזרק Exception.

עובד מעולה.
אני חייב לך תודה ענקית, באמצעותך ובאמצעות האתר שלך למדתי היום הרבה על סי-שארפ.

אני אשתדל מאוד לפרסם את זה אצלנו בביה"ס,
גם מה שמתחילים ללמוד סי-שארפ :)

תודה ענקית שוב!
רותם.

omaniusd 15-09-06 16:56

ציטוט:

נכתב במקור על ידי Matchs
עובד מעולה.
אני חייב לך תודה ענקית, באמצעותך ובאמצעות האתר שלך למדתי היום הרבה על סי-שארפ.

אני אשתדל מאוד לפרסם את זה אצלנו בביה"ס,
גם מה שמתחילים ללמוד סי-שארפ :)

תודה ענקית שוב!
רותם.

בבקשה רותם, תמיד, על כל נושא שהוא (ויש עוד הרבה מאד נושאים :) אתה מוזמן לשאול).


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

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