PDA

View Full Version : مشكل در تقسيم اعداد بزرگ



oranoos_mt
دوشنبه 02 خرداد 1390, 10:36 صبح
سلام
برنامه زير واسه عمليات اصلي روي اعداد بزرگه.
برنامه روي جمع و تفريق و ضرب خوب و درست جواب ميده اما براي تقسيم جواب نميده. (يكي از برنامه ها بعضي مواقع (خيلي كم) جواب ميده و يكي ديگه اصلا جواب نميده)
اگه كسي ميتونه يه كمكي بكنه نياز دارم و بگه مشكل تقسيم از كجا ناشي ميشه
مرسي

Arcsinos
دوشنبه 02 خرداد 1390, 17:28 عصر
سلام دوست عزیز

این برنامه برای تقسییم از تفریق های متوالی استفاده کرده و کاریش هم نمیشه کرد مگر اینکه از روش دو روش دیگه استفاده کنی .

روش اول اینه که همون کاری را که به صورت دستی انجام میدی رو انجام بدی . البته برای اینکار باید عمل جمع و تفریق رو از قبل تعریف کرده باشی . عمل دستی هم که میدونی چطوریه مثلا تقسیم 2354 بر 56 خب اول میاییم دو رقم از 2354 از سمت چپ جدا میکنیم که میشه 23 ولی 23 از 56 کوچیکتره ( باید تابعی به نام compare هم بنویسی که بتونه تو تا آرایه رو مقایسه کنه اگه برابر بودن 0 اگه عدد اول بزرگتر بود 1 اگه هم عدد دوم بزرگ تر بود 2 بده این تابع رو من نوشتم میدم بهت ولی برای آرایه ننوشتم برای لیست پیوندی نوشتم ) بعد از این باید یه رقم دیگه از عدد 2354 جدا کنی و به 23 بچسبونی که میشه 235 بعد بیای 235 رو به روش تفریق ها ی متوالی بر 56 تقسیم کنی که میده 4 و با قیمانده میشه 11 . دوباره بیای یه رقم از عدد اول 2354 جدا کنی که و به 11 بچسبونی که میشه 114 و بعد دوباره با تفریق های متوالی 114 رو بر 56 تقسیم کنی که میشه 2 و باقیمانده هم میشه 2 . حالا جواب رو به دست آووردی . جواب میشه 42 و باقیمانده هم میشه 2 .

روش دوم هم اینه که بری اینجا (http://barnamenevis.org/showthread.php?272086-تقسیم-با-استفاده-از-شیف-دادن) و الگوریتم تقسیم دودویی رو ببینی و خودت ببریش تو مبنای 10 پیاده سازیش کنی .

من خودم یه برنامه نوشتم ولی چون زیاد مهم نبود از همون روش تفریق های متوالی استفاده کردم . این برنامه با استفاده از لیست پیوندی هست و اعداد میتونن از مبنا ی 2 تا هر مبنایی که بخوایید رو جمع و ضرب و ... کنه . البته با استفاده از کلاسها .

دانلود (http://up.iranblog.com/images/y7ewfqz7w830iem3mf6l.rar)

oranoos_mt
دوشنبه 02 خرداد 1390, 21:13 عصر
سلام دوست عزیز

این برنامه برای تقسییم از تفریق های متوالی استفاده کرده و کاریش هم نمیشه کرد مگر اینکه از روش دو روش دیگه استفاده کنی .

روش اول اینه که همون کاری را که به صورت دستی انجام میدی رو انجام بدی . البته برای اینکار باید عمل جمع و تفریق رو از قبل تعریف کرده باشی . عمل دستی هم که میدونی چطوریه مثلا تقسیم 2354 بر 56 خب اول میاییم دو رقم از 2354 از سمت چپ جدا میکنیم که میشه 23 ولی 23 از 56 کوچیکتره ( باید تابعی به نام compare هم بنویسی که بتونه تو تا آرایه رو مقایسه کنه اگه برابر بودن 0 اگه عدد اول بزرگتر بود 1 اگه هم عدد دوم بزرگ تر بود 2 بده این تابع رو من نوشتم میدم بهت ولی برای آرایه ننوشتم برای لیست پیوندی نوشتم ) بعد از این باید یه رقم دیگه از عدد 2354 جدا کنی و به 23 بچسبونی که میشه 235 بعد بیای 235 رو به روش تفریق ها ی متوالی بر 56 تقسیم کنی که میده 4 و با قیمانده میشه 11 . دوباره بیای یه رقم از عدد اول 2354 جدا کنی که و به 11 بچسبونی که میشه 114 و بعد دوباره با تفریق های متوالی 114 رو بر 56 تقسیم کنی که میشه 2 و باقیمانده هم میشه 2 . حالا جواب رو به دست آووردی . جواب میشه 42 و باقیمانده هم میشه 2 .

روش دوم هم اینه که بری اینجا (http://barnamenevis.org/showthread.php?272086-تقسیم-با-استفاده-از-شیف-دادن) و الگوریتم تقسیم دودویی رو ببینی و خودت ببریش تو مبنای 10 پیاده سازیش کنی .

من خودم یه برنامه نوشتم ولی چون زیاد مهم نبود از همون روش تفریق های متوالی استفاده کردم . این برنامه با استفاده از لیست پیوندی هست و اعداد میتونن از مبنا ی 2 تا هر مبنایی که بخوایید رو جمع و ضرب و ... کنه . البته با استفاده از کلاسها .

دانلود (http://up.iranblog.com/images/y7ewfqz7w830iem3mf6l.rar)

ممنون بابت جوابي كه دادي.
ولي ببخشيد من با ليست پيوندي و اشاره گرها نميخوام.
من با آرايه ها ميخوام.
ميشه همين برنامه منو يه نگاهي بندازي و درستش كني
ممنون ميشم.
خيلي واجبه
مرسي

Arcsinos
دوشنبه 02 خرداد 1390, 22:04 عصر
قابلی نداشت

ولی فکر میکنم کدی رو هم که گذاشتی من خودم نوشتم . ببینید این کار زمان میبره به خاطر همین من الگریتمشو گفتم که خودتون پیاده کنیدش . الان هم که وقت امتحاناست ولی اگه بعد از هفت یا هشتم تیر بخوایید من در خدمتم با آرایه بدون آرایه هر طوری که بگید مینویسم

با عرض پوزش

موفق و پیروز باشید

Safeman
جمعه 13 مرداد 1391, 10:53 صبح
من عمل های جمع، ضرب، تقسیم و مقایسه برای اعداد بزرگ رو سربارگزاری کردم اما توی تقسیم به مشکل برخوردم!
دوستان کسی هست که تقسیم رو با استفاده از استرینگ یا آرایه... نوشته باشه؟
یا کد تقسیم ده دهی با استفاده این شیفت دادن (http://barnamenevis.org/showthread.php?272086-%D8%AA%D9%82%D8%B3%DB%8C%D9%85-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%B4%DB%8C%D9%81-%D8%AF%D8%A7%D8%AF%D9%86) رو داشته باشه؟
خیلی ممنون از راهنمایی ها

لطفا کسی این برنامه رو قبلا گرفته و امکانش هست این لینک هم اصلاح کنید:



من خودم یه برنامه نوشتم ولی چون زیاد مهم نبود از همون روش تفریق های متوالی استفاده کردم . این برنامه با استفاده از لیست پیوندی هست و اعداد میتونن از مبنا ی 2 تا هر مبنایی که بخوایید رو جمع و ضرب و ... کنه . البته با استفاده از کلاسها .

دانلود (http://up.iranblog.com/images/y7ewfqz7w830iem3mf6l.rar)

سپاس فراوان

EvLorD
پنج شنبه 30 آذر 1391, 21:59 عصر
سلام.
منم همین برنامه رو با استفاده از لیست پیوندی می خوام.
اما لینک دانلودی که توی پست دوم گذاشتین کار نمی کنه انگار...
می شه لطفاً چک کنید برام؟
ممنونم.

Ananas
پنج شنبه 30 آذر 1391, 22:12 عصر
http://barnamenevis.org/showthread.php?150444-%D9%85%D8%AC%D9%85%D9%88%D8%B9%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%D9%86%D9%88%D8%B4%D8%AA%D9%87-%D8%B4%D8%AF%D9%87-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-C-%D9%88-C&p=1649855&viewfull=1#post1649855