כותב |
|
DotNet משתמש פעיל
הצטרף / הצטרפה: 25 August 2006
משתמש: מנותק/ת הודעות: 60
|
נשלח בתאריך: 30 November 2006 בשעה 21:50 | | IP רשוּם
|
|
|
|
יש 2 מחרוזות str1 ו - str2 .
בעיקון יושבים במחרוזות מספרים שהם גדולים מידי כדי להיכנס למשתנים
מסןג long,int וכו...
ידוע שהמספר שיושב במחרוזת str1 גדול מהמספר שיושב במחרוזת str2 .
יש לרשום פונקציה ב - (ASP.NET) שתבצע פעולת חיסור של str2 מ - str1
המספרים שבמחרוזות ממוינות בצורה LSB (מהקטן לגדול)
|
חזרה לתחילת העמוד |
|
|
אורח אורח
הצטרף / הצטרפה: 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 רשוּם
|
|
|
|
תעשה כמו חיסור ארוך (כמו כיתה ב')...
תתחיל מהיחידות, אם איפשהו חסר לך תשאיל מהספרה הבאה כמה שצריך...
ואם אין לך יותר ממה להשאיל אזי התוצאה שלילית
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
DotNet משתמש פעיל
הצטרף / הצטרפה: 25 August 2006
משתמש: מנותק/ת הודעות: 60
|
נשלח בתאריך: 01 December 2006 בשעה 11:37 | | IP רשוּם
|
|
|
|
את הרעיון הבנתי כבר ששלחתי את ההודעה.
אני לא מצליח לממש את זה בקוד...
ב C# או ב VB.NET...
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 01 December 2006 בשעה 12:04 | | IP רשוּם
|
|
|
|
ניסית להתחיל במשהו?
תשלח אותו כאן.
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
DotNet משתמש פעיל
הצטרף / הצטרפה: 25 August 2006
משתמש: מנותק/ת הודעות: 60
|
נשלח בתאריך: 01 December 2006 בשעה 14:07 | | IP רשוּם
|
|
|
|
כן....
אבל זה ממש כלום כי אני לא מבינה כיצד לממש את פעולת החיסור
מישהו יכול לשלוח לי קוד שאמור לבצע את החיסור?
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 01 December 2006 בשעה 14:18 | | IP רשוּם
|
|
|
|
לא, תתחילי ונעזור לך.
סתם תשימי לולאה שרצה על הסטרינג שמחסרים ממנו או משהו כזה, כל התחלה היא טובה..
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
DotNet משתמש פעיל
הצטרף / הצטרפה: 25 August 2006
משתמש: מנותק/ת הודעות: 60
|
נשלח בתאריך: 02 December 2006 בשעה 12:50 | | IP רשוּם
|
|
|
|
קוד:
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() את המספר האחרון...
וזהו
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 02 December 2006 בשעה 13:44 | | IP רשוּם
|
|
|
|
אוקיי, כמה דברים:
- קודם כל כדי לנקות אפסים מהמספרים, ולהשוות את האורך שלהן.
- חוץ מזה, צריך לעבור על המחרוזות מהסוף להתחלה, ולא להיפך.
קוד:
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); } |
|
|
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
DotNet משתמש פעיל
הצטרף / הצטרפה: 25 August 2006
משתמש: מנותק/ת הודעות: 60
|
נשלח בתאריך: 03 December 2006 בשעה 22:05 | | IP רשוּם
|
|
|
|
תודה רבה
|
חזרה לתחילת העמוד |
|
|