נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: ASP.NET - שאלה בעיבוד מחרוזות, חיסור מספר

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
DotNet
משתמש פעיל
משתמש פעיל


הצטרף / הצטרפה: 25 August 2006
משתמש: מנותק/ת
הודעות: 60
נשלח בתאריך: 30 November 2006 בשעה 21:50 | IP רשוּם
ציטוט DotNet

 

יש 2 מחרוזות str1 ו - str2 .

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

מסןג long,int וכו...

ידוע שהמספר שיושב במחרוזת str1 גדול מהמספר שיושב במחרוזת  str2 .

יש לרשום פונקציה ב - (ASP.NET) שתבצע פעולת חיסור של str2  מ - str1

המספרים שבמחרוזות ממוינות בצורה LSB (מהקטן לגדול)

חזרה לתחילת העמוד הצג את כרטיס החבר של DotNet חפש הודעות אחרות של DotNet
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 30 November 2006 בשעה 22:19 | IP רשוּם
ציטוט אורח

אתה פשוט לוקח את ספרת האחדות ב str1 ואת ספרת האחדות ב str2
אתה מקבל בעצם תווים אבל אין בעייה להפוך אותם ל int
מחסיר את המספר השני מהראשון, במידה ויוצאת תוצאה שלילית, אתה שם 1 במשתנה כלשהו
מוסיף 10 למספר הראשון ואז שוב עושה פעולת חיסור ואת התוצאה מכניס לסטרינג כלשהו..
ככה אתה ממשיך עד הסוף, פשוט חיסור כמו שעושים על הדף.
חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 30 November 2006 בשעה 22:20 | IP רשוּם
ציטוט shoshan

תעשה כמו חיסור ארוך (כמו כיתה ב')...

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

ואם אין לך יותר ממה להשאיל אזי התוצאה שלילית


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
DotNet
משתמש פעיל
משתמש פעיל


הצטרף / הצטרפה: 25 August 2006
משתמש: מנותק/ת
הודעות: 60
נשלח בתאריך: 01 December 2006 בשעה 11:37 | IP רשוּם
ציטוט DotNet

את הרעיון הבנתי כבר ששלחתי את ההודעה.

אני לא מצליח לממש את זה בקוד...

ב C# או ב VB.NET...

 

חזרה לתחילת העמוד הצג את כרטיס החבר של DotNet חפש הודעות אחרות של DotNet
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 01 December 2006 בשעה 12:04 | IP רשוּם
ציטוט shoshan

ניסית להתחיל במשהו?

תשלח אותו כאן.


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
DotNet
משתמש פעיל
משתמש פעיל


הצטרף / הצטרפה: 25 August 2006
משתמש: מנותק/ת
הודעות: 60
נשלח בתאריך: 01 December 2006 בשעה 14:07 | IP רשוּם
ציטוט DotNet

כן....

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

מישהו יכול לשלוח לי קוד שאמור לבצע את החיסור?

חזרה לתחילת העמוד הצג את כרטיס החבר של DotNet חפש הודעות אחרות של DotNet
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 01 December 2006 בשעה 14:18 | IP רשוּם
ציטוט shoshan

לא, תתחילי ונעזור לך.

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


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
DotNet
משתמש פעיל
משתמש פעיל


הצטרף / הצטרפה: 25 August 2006
משתמש: מנותק/ת
הודעות: 60
נשלח בתאריך: 02 December 2006 בשעה 12:50 | IP רשוּם
ציטוט DotNet

קוד:
public string SubStrings(string str1, string str2)

{

int i,res;

string ret;

char[] x;

char ch;

for(i=0;i<str1.Length-1;i++)

{

x = str1.ToCharArray();

ch= x[str1.Length - 1];

}

return "";

}

טוב אז באמת שלא הצלחתי כלום כמעט יש לי במשתנה

ch.tostring() את המספר האחרון...

וזהו

חזרה לתחילת העמוד הצג את כרטיס החבר של DotNet חפש הודעות אחרות של DotNet
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 02 December 2006 בשעה 13:44 | IP רשוּם
ציטוט shoshan

אוקיי, כמה דברים:
  1. קודם כל כדי לנקות אפסים מהמספרים, ולהשוות את האורך שלהן.
  2. חוץ מזה, צריך לעבור על המחרוזות מהסוף להתחלה, ולא להיפך.
קוד:
private static string SubStrings(string s1, string s2
{
    // s1 must be larger than s2, so it's either as long or longer.

    int i;
    int n1, n2, d;
    s1 = remove0s(s1);
    s2 = remove0s(s2);
    s2 = s2.PadLeft(s1.Length, '0');
    char[] x1 = s1.ToCharArray();
    char[] x2 = s2.ToCharArray();
    for (i = x2.Length - 1; i >= 0; --i)
    {
        n1 = (int)(x1[i ] - '0');
        n2 = (int)(x2[i ] - '0');
        d = n1 - n2;
        if (d >= 0)
             x1[i ] = (char)(n1 - n2 + '0');
        else
        {
             // in here I'm assuming (s1 > s2), because
             // otherwise there will be an index out of range.
             int removeFromNext = 1 - d / 10; // d in negetive, -d is positive.
             x1[ i] = (char)(d + removeFromNext * 10 + '0');
             x1[i - 1] = (char)(x1[i - 1] - removeFromNext);
        }
    }
    return remove0s(new string(x1));
}

private static string remove0s(string s)
{
    int i = 0;
    int l = s.Length;
    while (i < l && s[ i] == '0')
        ++i;
    return s.Substring(i);
}



__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
DotNet
משתמש פעיל
משתמש פעיל


הצטרף / הצטרפה: 25 August 2006
משתמש: מנותק/ת
הודעות: 60
נשלח בתאריך: 03 December 2006 בשעה 22:05 | IP רשוּם
ציטוט DotNet

תודה רבה

חזרה לתחילת העמוד הצג את כרטיס החבר של DotNet חפש הודעות אחרות של DotNet
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה