نمایش نتایج 1 تا 23 از 23

نام تاپیک: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

  1. #1
    کاربر دائمی آواتار mas'oud
    تاریخ عضویت
    آذر 1388
    محل زندگی
    تهران
    پست
    120

    Exclamation راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    با سلام
    همونطور که میدونید کامپایلر C#‎‎ فقط تا مقدار خاصی میتواند روی اعداد ، چهار عمل اصلی را انجام دهد (با + ,-,*,/). ولی در مورد اعداد بزرگ مثلا عددی 40 رقمی این کار شدنی نیست و باید با استفاده از آرایه و روشهای دیگر این کار را کرد.
    من در حال تهیه ماشین حسابی هستم که یکی از بخشهای آن کار روی اعداد بسیار بزرگ است.


    [


    همونطور که در عکس میبینید برنامه دوعدد n1 و n2 را از کاربر گرفته و جواب را در تکست باکس آخر میریزد.
    من تقریبا توانستم در کنسول عمل جمع را پیاده سازی کنم ولی نمیدانم در فرم ویندوزی چگونه عبارت تایپ شده در تکست باکس را به آرایه اعداد تبدیل کنم!!
    ضمن اینکه آرایه باید دو خانه اضافی یکی برای +،- و دیگری برای ممیز داشته باشد.
    لطفا راهنمایی کنید.
    عکس های ضمیمه عکس های ضمیمه

  2. #2
    کاربر دائمی آواتار saber187518
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    همین دور و برا
    پست
    311

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    با سلام
    دوست عزیز شما میتونی تک تک کاراکتر های textbox رو داخل یک آرایه که از قبل تعریف کردی بریزی.
    اینم نمونه.(البته اگه درست مشکل رو متوجه شده باشم)
    char[] st = new char[100];
    for (int i = 0; i < textBox1.TextLength(); i++)
    st[i] = textBox1.Text(i);

  3. #3
    کاربر دائمی آواتار علیرضا حسن زاده
    تاریخ عضویت
    تیر 1388
    محل زندگی
    تــــــــــــــــــــــــــبریز
    پست
    897

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    از این روش هم می تونی استفاده کنی راحت تر هم هست:
    char[] st = textBox1.Text.ToCharArray();

    اگر داخل یه بدنه تابع هم استفاده کنی به صورت زیر بهتره:
    var st = textBox1.Text.ToCharArray();

    البته تفاوت چندانی باهم ندارن

  4. #4

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    نقل قول نوشته شده توسط mas'oud مشاهده تاپیک
    با سلام
    همونطور که میدونید کامپایلر C#‎‎‎ فقط تا مقدار خاصی میتواند روی اعداد ، چهار عمل اصلی را انجام دهد


    سلام
    زیاد زحمت نکش

    BigInteger

    مثال:
    https://barnamenevis.org/showthread.php?t=219226
    Kernel Mode Developer
    RootKitSMM@Yahoo.com

  5. #5
    کاربر دائمی آواتار mas'oud
    تاریخ عضویت
    آذر 1388
    محل زندگی
    تهران
    پست
    120

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

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

  6. #6

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    مثال فارسی یعنی چی؟

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

    اینو بخون راحت تر توضیح داده
    http://blogs.msdn.com/b/bclteam/arch...bar-gazit.aspx
    Kernel Mode Developer
    RootKitSMM@Yahoo.com

  7. #7
    کاربر دائمی آواتار علیرضا حسن زاده
    تاریخ عضویت
    تیر 1388
    محل زندگی
    تــــــــــــــــــــــــــبریز
    پست
    897

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    دوست عزیز من فکر کردم شما تو کنسول برنامه رو نوشتی و حالا می خوای از TextBox بگیری ولی اگه روش جمع رو بلد نیستی می تونی هم از BigInteger استفاده کنی البته فکر کنم تو دات نت چهار ارائه شده و اگه از ورژن پایین استفاده می کنی می تونی یه لیست از اعداد Integer استفاده کنی مثلا اگه می خوای دو عدد 256 رقمی رو با هم جمع کنی باید حساب کنی که حداکثر تعداد ارقامی که بعد از جمع می تونه تولید بشه چقدر می تونه باشه برای ضرب و تقسیم هم همین طور اگه از سربارگذاری عملگرهای هم برای کلاس استفاده کنی می تونی دوعدد رو که تو کلاس ذخیره کردی مثل دوتا Integer معمولی جمع کنی
    یادش بخیر یه زمانی به عنوان پروژه کلاسی تو دوره کاردانی با زبان ++C نوشته بودم اگه بخوای می تونم همینجا واست Upload کنم تبدیلش به #C هم مشکل نیست

  8. #8
    کاربر دائمی آواتار saber187518
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    همین دور و برا
    پست
    311

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    با سلام
    دوستان عزیز نوع biginteger هم یک حدی داره.
    در برنامه نویسی وقتی که اعداد بزرگ رو میخوان در محاسبات دخیل کنن از چندین روش استفاده میکنن.
    یکی از روش ها اینه که عدد رو داخل یک رشته بذارید و با اون کار کنید. به این صورت که هر رقم رو به عنوان یکی از خونه های رشته در نظر بگیرید. و محاسباتتون رو روی خونه ها انجام بدید.
    که این روش مزیت محاسبه تا هر تعداد رقمی رو داره ولی یک عیب هم داره اینه که محاسبه یکم پیچیده میشه و مشکل دوم اینه که زمان بر میشه.
    موفق باشی.

  9. #9
    کاربر دائمی آواتار میلاد قاضی پور
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    اوج بلند
    پست
    768

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

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

  10. #10
    کاربر دائمی آواتار saber187518
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    همین دور و برا
    پست
    311

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    با سلام
    دوست عزیز لینک براش ندارم چون خودم روش کار کردم.
    نحوه انجام این کار به این صورت هست که مثلا یک عدد 200 رقمی رو میخوای با یک عدد 342 رقمی جمع کنی.(مثلا)
    برای این کار باید رقم اول رو با رقم اول جمع کنی. البته قبلش باید اونها رو به کد اسکی تبدیل کنی و کد اسکی رو به عدد معادل، حالا جمع کنی و جواب رو به کد اسکی تبدیل کنی و دوباره ذخیره کنی. حالا با فرض اینکه جواب جمع دو رقمی بشه شما باید رقم یکان را ذخیره و به جمع دو رقم بعد یک واحد اضافه کنی(carry).
    امیدوارم که گرفته باشی کل کار چطوره.
    موفق باشی

  11. #11
    کاربر دائمی آواتار mas'oud
    تاریخ عضویت
    آذر 1388
    محل زندگی
    تهران
    پست
    120

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    از همه دوستان ممنون
    باید بگم من از دات نت 3.5 و ویژوال استودیو 2008 استفاده میکنم .احتمالا BigInteger نداره
    در ضمن من تا حدودی تونستم عمل جمع رو پیاده سازی کنم ولی یه خورده مشکل داره اونم اینکه:
    اولا تعداد ارقام هر دو تکست باکس باید یکی باشه
    ثانیا اگر عدد جواب به صفر ختم بشه اونو نشون نمیده!!!! یعنی صفرش رو نشون نمیده
    ثالثا فقط با اعداد صحیح کار میکنه و اعداد اعشاری رو ساپورت نمیکنه

    دمتون گرم کمک کنید با یاری هم این برنامه رو به سرانجام برسونیم.
    اینم نمونه برنامه:
    فایل های ضمیمه فایل های ضمیمه

  12. #12
    کاربر دائمی آواتار saber187518
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    همین دور و برا
    پست
    311

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

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

  13. #13
    کاربر دائمی آواتار saber187518
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    همین دور و برا
    پست
    311

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    با سلام
    ببخشید دیر شد کارم جایی گیر بود.
    این برنامه میتونه اعداد رو فقط جمع کنه تا 100 رقم حداکثر.
    فایل های ضمیمه فایل های ضمیمه

  14. #14

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    نقل قول نوشته شده توسط saber187518 مشاهده تاپیک
    با سلام
    دوستان عزیز نوع biginteger هم یک حدی داره.
    در برنامه نویسی وقتی که اعداد بزرگ رو میخوان در محاسبات دخیل کنن از چندین روش استفاده میکنن.
    یکی از روش ها اینه که عدد رو داخل یک رشته بذارید و با اون کار کنید. به این صورت که هر رقم رو به عنوان یکی از خونه های رشته در نظر بگیرید. و محاسباتتون رو روی خونه ها انجام بدید.
    که این روش مزیت محاسبه تا هر تعداد رقمی رو داره ولی یک عیب هم داره اینه که محاسبه یکم پیچیده میشه و مشکل دوم اینه که زمان بر میشه.
    موفق باشی.
    دوست عزیز بهتره کمی بیشتر توجه کنی:
    از لینک بالا:

    The BigInteger type is an immutable type that represents an arbitrarily large integer whose value in theory has no upper or lower bound
    اینم بخون
    basically, a BigInteger is an abstraction of an array of integer values together with a sign, with overloads for typical integer operators
    حرف زیاده ولی یه سری شو می گم
    دوست من من این روش رو تو c نوشته بودم این روش نیاز به حلقه های طولانی داره درست هستش؟ پی فرض کن عدد ما خیلی خیلی بزرگ هستش پس حلقه هم زیاد می شه و توی هر حلقه می خوای string گی رو که immutable تغییر بدی؟

    شما در این روش باید بیای همه +-/* رو پیاده سازی کنه

    وقت برنامه نویس خیلی مهم تر از وقت سیستم هستش(که شما بیای این همه وقت صرف کنی )

    پی نوشت:
    می شه از BigInteger در vs2008 هم استفاده کرد

    و اگه زبان مهم نسیت می تونی از python استفاده کنی
    Kernel Mode Developer
    RootKitSMM@Yahoo.com

  15. #15
    کاربر دائمی آواتار mas'oud
    تاریخ عضویت
    آذر 1388
    محل زندگی
    تهران
    پست
    120

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    نقل قول نوشته شده توسط saber187518 مشاهده تاپیک
    با سلام
    ببخشید دیر شد کارم جایی گیر بود.
    این برنامه میتونه اعداد رو فقط جمع کنه تا 100 رقم حداکثر.

    شرمنده
    شما هم افتادی تو زحمت
    من باید معذرت خواهی کنم دوست عزیز!!

    بابت برنامه خیلی خیلی ممنون، راهنمایی بسیار بزرگیه، انشاالله بتونم بقیشو خودم بنویسم.
    __________________________________________
    در جواب دوست بالایی (geek1982) :

    مگه نوع داده BigInteger برای اولین بار همراه دات نت 4 ارائه نشده؟
    پس چجوری vs2008 اونو ساپورت میکنه؟
    آیا راهی برای ارتقای vs2008.net 3.5 به .net 4 وجود داره؟

  16. #16

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    در جواب دوست بالایی (geek1982) :

    مگه نوع داده BigInteger برای اولین بار همراه دات نت 4 ارائه نشده؟
    پس چجوری vs2008 اونو ساپورت میکنه؟
    آیا راهی برای ارتقای vs2008.net 3.5 به .net 4 وجود داره؟

    _

    سلام
    نخیر توی 3.5 معرفی شده
    http://bartdesmet.net/blogs/bart/arc...iginteger.aspx

    فایل system.core.dll رو برات قرار دادم ورژن 3.5 هستش
    فایل های ضمیمه فایل های ضمیمه
    Kernel Mode Developer
    RootKitSMM@Yahoo.com

  17. #17
    کاربر دائمی آواتار amir-yeketaz
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    تهران
    پست
    508

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    اگه میخوای خوب تو این بحث استاد بشی برو فاکتوریل اعداد بزرگ رو پیاده سازی کن (یادش بخیر ترم اول جز تمرینامون! بود !!! ) که حسابی محک بخوری
    باید برای فاکتوریل ابتدا از ضرب سنتی که در دوران ابتدایی انجام میدادی استفاده کنی و بعد اون عدد به دست اومده رو با فاکتوریل دو عدد قبلی جمع کنی و جمع اعدا بزرگ رو هم استفاده کنی...
    توضیح بیشتر :
    فرض کن میخوایم 100 فاکتوریل رو حساب کنیم :
    میایم میگیم 100 * 99 ، حالا برای اینکار مثه دوران ابتدایی اول میایم میگیم عدد یکان 99 یعنی 9 در عدد یکان 100 یعنی صفر ضرب میشه و یه عدد میره تو آرایه و همین جوری ... دیگه چجوری دو تا عدد خفنو اگه ماشین حساب نداشته باشی ضرب میکنی همین جوری دیگه ! بعد این عدد به دست اومده یعنی 9900 رو تو ارایه نگه میداری و بعد میای 98 رو در 9900 ضرب میکنی و دوباره عددی که بدست میاد رو با 97 ضرب میکنی و همین جوری میری جلو ...
    فقط باید اول رقم ها رو با اون الگوریتم معروف جدا کنی و بریزی تو یه آرایه یعنی اول 100 و 99 رو رقماشو جدا میکنی و میریزی تو دو تا آرایه و بعد یه sum ای به دست میاد (که دیگه خودش آرایه ای هستو و عدداش جدا و اونو با 98 و همین طوری جلو میری و به نسبت طول آرایت میتونی اعدا بزرگتری رو فاکتوریل کنی!
    درسته یه خورده شاید سخت باشه ولی واسه من حل کردنش خیلی فاز داد !!
    امیدوارم فهمیده باشی چی گفتم ...
    موفق باشید

  18. #18

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    دوست عزیز سما می تونید با استفاده از آرایه های کاراکتری اعداد رو بگیری و سپس عملیات ریاضی رو روشون انجام بدی من این برنامه رو فبلا در pascal نوشتم زیاد هم سخت نیست برای راهنمایی بیشتر بیا به سایت من www.tprogrammer.com و در انجمن جوابتو بگیر.

  19. #19
    کاربر دائمی آواتار saber187518
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    همین دور و برا
    پست
    311

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    با سلام
    دوست عزیز geek1982 آیا biginteger میتونه فاکتوریل 1000 رو محاسبه کنه؟
    اگه میتونه لطف کن برنامه شو برام بنویس و بذار.
    البته بگم من این برنامه رو نوشتم فقط میخوام ببینم آیا واقعا biginteger که این همه ازش تعریف میشه کارایی اینقدر بالا رو داره یا مثلا فاکتوریل یک عدد 100 رقمی رو میتونه محاسبه کنه؟
    چون طبق نوشته دوست عزیزمون این نوع داده ای حد بالا و پایین نداره...
    آها راستی یادم رفت بگم که در متن نوشته بود که این فرضیه نامحدودی در تئوری مطرح هست.
    من منتظرم.

  20. #20
    کاربر دائمی آواتار mas'oud
    تاریخ عضویت
    آذر 1388
    محل زندگی
    تهران
    پست
    120

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    نقل قول نوشته شده توسط saber187518 مشاهده تاپیک
    با سلام
    ببخشید دیر شد کارم جایی گیر بود.
    این برنامه میتونه اعداد رو فقط جمع کنه تا 100 رقم حداکثر.

    برنامتون ایراد کوچیک داشت!!

    عدد منفی با مثبت رو جمع نمیکنه (یعنی جواب بی ربط میده)
    اعداد اعشاری هم مثل اینکه ... حل نمیکنه
    ولی دستت درد نکنه

  21. #21

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    سلام . از دوستان اگر کسی این برنامه را کامل دارد می تونه در اختیار من بزاره؟
    sadegh.ahmadi859@gmail.com
    فوری

  22. #22
    کاربر دائمی
    تاریخ عضویت
    دی 1390
    محل زندگی
    در شهر دلم ... و خدایا دوستت دارم
    پست
    380

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

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

  23. #23

    نقل قول: راهنمایی در مورد ساخت برنامه عملیات روی اعداد بزرگ

    سلام . نه دوست عزیز حتما باید سی شارپ باشه و 4 عمل اصلی

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •