PDA

View Full Version : گرفتن یک عدد با بی نهایت کاراکتر به صورت رشته و تبدیل به عدد



navidata
پنج شنبه 03 بهمن 1392, 20:07 عصر
سلام

ما استادمون یه پروژه ماشین حساب بهمون داده

گفته یک کلاس تعریف کنید به اسم intNum که یک عدد

تا بی نهایت کارکتر رو بتونه بگیره

بعد اون عدد رو بشه ضرب و تقسیم و بقیه عملیات های ریاضی رو روش انجام بدیم

میشه راهنمایی کنید ؟

samsam_ninja
پنج شنبه 03 بهمن 1392, 20:15 عصر
سلام
واسه جمعش که کاری نداره! شما اعدادت رو به صورت رشته بگیر بعد هر دفه سمت راستین کارکتر از هر رشته رو به عدد تبدیل کن و با هم جمع کن و کریش رو هم بریز تو یه متغیر دیگه بعد جوابش رو به رشته تبدیل کن ، واسه کارکتر های بعدی جمع اون دو تا عدد رو با کری جمع قبلی ، جمع کن و الی آخر ( یعنی تا زمانی که یکی از رشته ها تمام بشه )!
فقط حواست باشه موقع اضافه کردن به رشته پاسخ به سمت چپ رشته عدد جدید رو اضافه کنی!
دقیقا همون کاری که خودمون روی کاغذ انجام میدیم!!!
موفق باشی!

navidata
جمعه 04 بهمن 1392, 01:22 صبح
سلام
واسه جمعش که کاری نداره! شما اعدادت رو به صورت رشته بگیر بعد هر دفه سمت راستین کارکتر از هر رشته رو به عدد تبدیل کن و با هم جمع کن و کریش رو هم بریز تو یه متغیر دیگه بعد جوابش رو به رشته تبدیل کن ، واسه کارکتر های بعدی جمع اون دو تا عدد رو با کری جمع قبلی ، جمع کن و الی آخر ( یعنی تا زمانی که یکی از رشته ها تمام بشه )!
فقط حواست باشه موقع اضافه کردن به رشته پاسخ به سمت چپ رشته عدد جدید رو اضافه کنی!
دقیقا همون کاری که خودمون روی کاغذ انجام میدیم!!!
موفق باشی!
دمت گرم
یه چیزایی فهمیدم
ولی میشه کدشو بنویسی
خیلی برام مهمه
بعد اگه اینجوری که شما میگی
هی به عدد تبدیل کنم
مثلا اگه از نوع int باشه تا یه جایی تبدیل میکنه
بقیشو نمی تونه
این می خواد عدد به فرض 1000 رقمی هم بتونه ورودی باشه

samsam_ninja
جمعه 04 بهمن 1392, 11:40 صبح
عزیزم شما فقط باید یک کارکتر رو به عدد تبدیل کنی ( یک کارکتر از هر دو رشته ) و با هم جمع کنی که حتی جمعشم از 18 ( البته اگه کری هم داشته باشی میشه 19) بیشتر نمیشه ، پس تو int جا میشه!

کدشم کاری نداره اگه منظورم گرفته باشی راحت میتونی بنویسی.

sagggad
جمعه 04 بهمن 1392, 11:47 صبح
با سلام
بیشتر توضیح بده لطفا
شما میخوای یک ماشین حساب باشه که تا بی نهایت کاراکتر قبول کنه؟

navidata
جمعه 04 بهمن 1392, 11:53 صبح
با سلام
بیشتر توضیح بده لطفا
شما میخوای یک ماشین حساب باشه که تا بی نهایت کاراکتر قبول کنه؟
آره همینطوری
ولی باید عدد رو به صورت رشته بگیره

sagggad
جمعه 04 بهمن 1392, 12:06 عصر
یعنی استرینگ بگیره و به Int تبدیل کنه
درسته؟

navidata
جمعه 04 بهمن 1392, 22:46 عصر
یعنی استرینگ بگیره و به Int تبدیل کنه
درسته؟
نه مثلا اگه دو عدد 500 رقمی رو ضرب کنیم که تو int که نمیشه
نمی دونم روشش چه جوریه
ولی باید کاری کنم که دو عدد رو که ماشین حساب به صورت رشته میگیره
بتونه به عنوان یک عدد روش تمام عملیات های ریاضی رو انجام بده

milad_d993
جمعه 04 بهمن 1392, 23:24 عصر
برنامه ای بنویسید که 2 رشته عددی به طول حداقل 30 کاراکتر را دریافت کند، آنها را با هم جمع کند. طول دو رشته لزوما با هم برابر نیست...

string num1 = textBox1.Text;
string num2 = textBox2.Text;

string t = "";
if (num1.Length < num2.Length) // یکسان کردن طول دو عدد
{
for (int i = 0; i < num2.Length - num1.Length; i++)
t += "0";

t += num1;
num1 = t;
}
else
{
for (int i = 0; i < num1.Length - num2.Length; i++)
t += "0";

t += num2;

num2 = t;

}

int y = 0; // یکان
int c = 0; // رقم نقلی

int ragham1;
int ragham2;

string temp = "";

for (int j = num1.Length; j > 0; j--)
{
ragham1 = int.Parse(num1.Substring(j-1,1));
ragham2 = int.Parse(num2.Substring(j-1,1));

y = (ragham1 + ragham2 + c) % 10;
c = (ragham1 + ragham2 + c) / 10;

temp += y.ToString();
}
if (c > 0)
temp += c.ToString();

string javab = "";

for (int k = temp.Length; k > 0; k--)
javab += temp.Substring(k-1,1);

MessageBox.Show(javab);


برنامه ای بنویسید که یک رشته عددی به طول حداقل 30 کاراکتر را دریافت کند؛ آن را در عدد 1 رقمی n ضرب کند...

string str1 = textBox1.Text;
int n = int.Parse(textBox2.Text);

string temp = "";
string str2 = "";

int y = 0; // یکان
int c = 0; // رقم نقلی

int ragham;

for (int i = str1.Length; i > 0; i--)
{
ragham = int.Parse(str1.Substring(i-1, 1));
y = ((ragham * n) + c) % 10;
c = ((ragham * n) + c) / 10;
temp += y.ToString();
}
if (c > 0)
temp += c.ToString();

for (int j = temp.Length; j > 0; j--)
str2 += temp.Substring(j - 1, 1);

MessageBox.Show(str2);

navidata
شنبه 05 بهمن 1392, 22:49 عصر
برنامه ای بنویسید که 2 رشته عددی به طول حداقل 30 کاراکتر را دریافت کند، آنها را با هم جمع کند. طول دو رشته لزوما با هم برابر نیست...

string num1 = textBox1.Text;
string num2 = textBox2.Text;

string t = "";
if (num1.Length < num2.Length) // یکسان کردن طول دو عدد
{
for (int i = 0; i < num2.Length - num1.Length; i++)
t += "0";

t += num1;
num1 = t;
}
else
{
for (int i = 0; i < num1.Length - num2.Length; i++)
t += "0";

t += num2;

num2 = t;

}

int y = 0; // یکان
int c = 0; // رقم نقلی

int ragham1;
int ragham2;

string temp = "";

for (int j = num1.Length; j > 0; j--)
{
ragham1 = int.Parse(num1.Substring(j-1,1));
ragham2 = int.Parse(num2.Substring(j-1,1));

y = (ragham1 + ragham2 + c) % 10;
c = (ragham1 + ragham2 + c) / 10;

temp += y.ToString();
}
if (c > 0)
temp += c.ToString();

string javab = "";

for (int k = temp.Length; k > 0; k--)
javab += temp.Substring(k-1,1);

MessageBox.Show(javab);


برنامه ای بنویسید که یک رشته عددی به طول حداقل 30 کاراکتر را دریافت کند؛ آن را در عدد 1 رقمی n ضرب کند...

string str1 = textBox1.Text;
int n = int.Parse(textBox2.Text);

string temp = "";
string str2 = "";

int y = 0; // یکان
int c = 0; // رقم نقلی

int ragham;

for (int i = str1.Length; i > 0; i--)
{
ragham = int.Parse(str1.Substring(i-1, 1));
y = ((ragham * n) + c) % 10;
c = ((ragham * n) + c) / 10;
temp += y.ToString();
}
if (c > 0)
temp += c.ToString();

for (int j = temp.Length; j > 0; j--)
str2 += temp.Substring(j - 1, 1);

MessageBox.Show(str2);


آقا نمی دونم چه طور ازت تشکر کنم
یه دنیا ممنون
مشکلم حل شد
الان داریم با بچه ها جشن می گیریم :دی
آقا فقط جان خودت اگه می تونی بگو واسه ضرب و تقسیم چی کنیم ؟