امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
اعمال تغییرات ریاضی روی دو رشته عددی نامحدود
نویسنده پیام
bahareh_toto آفلاین
كاربر دو ستاره
**

ارسال‌ها: 73
موضوع‌ها: 16
تاریخ عضویت: مهر ۱۳۸۵

تشکرها : 0
( 3 تشکر در 3 ارسال )
ارسال: #1
اعمال تغییرات ریاضی روی دو رشته عددی نامحدود
سلام...یک سوال دارم..واقعا هم روی این سوال فکر کردم ولی چون به نتیجه نرسیدم این تاپیک را زدم..
برنامه ای میخوام که دو رشته عددی نامحدود را بگیره و 4 عمل اصلی(+*-/) را روی اون ها انجام بده...از long که نمیشه استفاده کرد چون گفتم نامحدود...من خودم تصمیم داشتم از تابع mid استفاده کنم و این کار را هم کردم ولی واقعا گیج شدم..اگر ممکنه سورس این برنامه را در اختیارم بزارید
۰۷-آذر-۱۳۸۵, ۰۰:۲۹:۰۷
ارسال‌ها
پاسخ
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #2
RE: اعمال تغییرات ریاضی روی دو رشته عددی نامحدود
بزار ببینم:
آها خوب من برات Sum رو نوشتم خیلی راحت می تونی به تفریق تبدیلش کنی و از همن کد و الگوریتم ایده بگیر برای ضرب و تقسیم. کد های خودت رو بزار تا ببینیم چی کار کردی:

کد:
A$ = InputBox("Please Input First Number:", "Number 1")
B$ = InputBox("Please Input Second Number:", "Number 2")

Dim LrgLenNum  As String, SmlLenNum As String
         LrgLenNum = IIf(Len(A) > Len(B), A, B)
         SmlLenNum = IIf(Len(A) <= Len(B), A, B)
        
ISumS = Len(SmlLenNum) + 1
For ISum = Len(LrgLenNum) To 1 Step -1
    ISumS = ISumS - 1
    If ISumS > 0 Then
        mSm = Val(Mid$(LrgLenNum, ISum, 1)) + Val(Mid$(SmlLenNum, ISumS, 1)) + M10
    Else
        mSm = Val(Mid$(LrgLenNum, ISum, 1)) + M10
    End If
    If mSm >= 10 Then
        M10 = mSm \ 10
        mSm = mSm - 10
    Else
        M10 = 0
    End If
    SumNums = CStr(mSm) & SumNums
Next ISum
If Not M10 = 0 Then SumNums = CStr(M10) & SumNums
MsgBox "Sum= " & SumNums

اگر در این کد ها هم سوالی داشتی بپرس  (;
(آخرین ویرایش در این ارسال: ۰۷-آذر-۱۳۸۵, ۰۷:۳۷:۴۹، توسط Darg.)
۰۷-آذر-۱۳۸۵, ۰۴:۲۱:۵۶
وب سایت ارسال‌ها
پاسخ
bahareh_toto آفلاین
كاربر دو ستاره
**

ارسال‌ها: 73
موضوع‌ها: 16
تاریخ عضویت: مهر ۱۳۸۵

تشکرها : 0
( 3 تشکر در 3 ارسال )
ارسال: #3
RE: اعمال تغییرات ریاضی روی دو رشته عددی نامحدود
LrgLenNum = IIf(Len(A) > Len(B), A, B)
این یعنی چی....iif تابع است
SumNums = CStr(mSm) & SumNums
(آخرین ویرایش در این ارسال: ۰۷-آذر-۱۳۸۵, ۰۹:۳۲:۰۰، توسط bahareh_toto.)
۰۷-آذر-۱۳۸۵, ۰۹:۱۷:۲۲
ارسال‌ها
پاسخ
bahareh_toto آفلاین
كاربر دو ستاره
**

ارسال‌ها: 73
موضوع‌ها: 16
تاریخ عضویت: مهر ۱۳۸۵

تشکرها : 0
( 3 تشکر در 3 ارسال )
ارسال: #4
RE: اعمال تغییرات ریاضی روی دو رشته عددی نامحدود
سلام....خیلی ممنون از راهنمائیتون...darg من به این برنامه خیلی نیاز دارم...تا حدودی برنامه را درک کردم ولی نه کامل...برنامه ای میخوام که قبل از شروع عملگر را بگیره و سپس دو تا رشته عددی و در انتها جواب را نمایش بده...اگر ممکنه سورس کامل برنامه را در اختیارم بذار ...من هم اصلا نمیخوام که فقط حالت پرسش و پاسخ پیدا کنه ولی واقعا به این برنامه نیاز دارم !!
۰۷-آذر-۱۳۸۵, ۰۹:۲۸:۵۹
ارسال‌ها
پاسخ
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #5
RE: اعمال تغییرات ریاضی روی دو رشته عددی نامحدود
بله IIF یک تابعست که خروجی با بررسی شرط انجام می شه. وقتی به کار میره که شما می خوای یک شرط طولانی رو با فرمان IF بررسی کنید که با وجود IIF
کد کمتری استفاده میشه و به این ترتیب خوانایی کد بالا میره.
مثلا هر دو کد زیر یک جواب رو دارند ولی کدوم بهتره؟
IF A>C Then B=A+C Else B=A-C
---------------------------------------
B=IIF(A>C,A+C,A-C)

و شکل فرمانش هم به این شکله:
IIF(expersion,TruePart,FalsePart)

که expersion همون شرط مورد نظره.
اما یک نکته مهم درباره IIF که حتما مد نظر داشته باش:
* در زمانی که شما از IIF استفاده می کنی وی بی ابتدا هر دو قسمت TruePart و FalsePart رو محاسبه می کنه بعد شرط رو بررسی می کنه و با توجه به جواب شرط (درستTrue یا غلطFalse) جواب آخر خودش رو بر می گردونه.
مثلا در مورد مثالی که در بالا اومده وی بی ابتدا در IIF جواب هر دو عبارت A+C و
A-C رو محاسبه می کنه بعد میره سراغ بررسی شرط, یعنی اگر A بزرگتر از C باشه جواب A+C و اگر کوچکتر باشه جواب A-C رو بر می گردونه.
اما در خود IF این طور نیست. یعنی اگر شرط در IF برقرار بود فقط فرمان های قسمت Then اجرا می شه و در غیر آن صورت فرمان های بخش Else
این خاصیت IIF هم خوبه هم بد.
خوبیش اینه که شما می تونی توابع مورد نظرت رو (مثلا در قفل های نرم افزار) در هر صورت اجرا کنی
بدیش اینه که اگر فرمان هات طولانی باشند با توجه به اینکه هر دو فرمان ابتدا و به یکباره اجرا می شند, این خودش هزینه بر هست.

_______________________________________________
در مورد Cstr
توابعی وجود دارند که باعث می شند توع یک آرایه به طور کامل تغییر کنه مثلا در این مورد Cstr باعث میشه که یک آرایه از هرنوعی به نوع رشته ای تبدیل بشه:
A$=Cstr(B%) <Code

یا مثلا داریم توابع Cint که باعث تبدیل نوع یک آرایه از هر نوع به نوع Integer میشند. لیست کاملش در زیر اومده:

CBool Boolean
CByte Byte
CChar Char
CDate Date
CDbl Double
CDec Decimal
CInt Integer
CLng Long
CObj Object
CShort Short
CSng Single
CStr String

اما چه ربطی داره که من توی کد:
SumNums = CStr(mSm) & SumNums
از تابع Cstr استفاده کردم.
ببین هدف من اونجا تبدیل کردن داده mSm از حالت عددی (حالا کار ندارم Integer هست یا Long) به رشته ای بوده.
اما ما تابعی داریم به اسم Str$ که خودش میاد و یک داده عددی رو رشته می کنه (دقت کن که برای Str$ ما داده رو تغییر نوع می دیم اما با Cstr نوع آرایه حافظه تغییر پیدا می کنه به رشته ای).
حالا چرا من از Str$ استفاده نکردم دلیلش تا چند لحظه دیگه برات روشن میشه. مثال:
Str$(1)=" 1" <Code
Str$(+1)=" 1" <Code
Str$(-1)="-1" <Code
اما:
CStr(1)="1" <Code
CStr(+1)="1" <Code
CStr(-1)="-1" <Code
خوب حالا می دونم متوجه شدی که تابع Str$ وفتی یک عدد مثبت رو به یک رشته تبدیل می کرد یک فضای خالی در سمت چپ رشته اون عدد میزاره که اون نشون دهده علامت (مثبت) عدده.
اما خوبه Cstr اینه که دیگه اون فضای خالی (علامت مثبت) رو اضافه نمی کنه و کار خراب نمی شه...
۰۷-آذر-۱۳۸۵, ۱۰:۱۹:۱۸
وب سایت ارسال‌ها
پاسخ
bahareh_toto آفلاین
كاربر دو ستاره
**

ارسال‌ها: 73
موضوع‌ها: 16
تاریخ عضویت: مهر ۱۳۸۵

تشکرها : 0
( 3 تشکر در 3 ارسال )
ارسال: #6
RE: اعمال تغییرات ریاضی روی دو رشته عددی نامحدود
از توضیحات خوب شما ممنون..........ولی اگر ممکنه سورس کامل برنامه را در اختیارم بزارید....(باور کنید روم نمیشه این حرف را بزنم چون به من توی این انجمن به اندازه کافی کمک شده)
۰۷-آذر-۱۳۸۵, ۱۰:۲۹:۰۲
ارسال‌ها
پاسخ
bahareh_toto آفلاین
كاربر دو ستاره
**

ارسال‌ها: 73
موضوع‌ها: 16
تاریخ عضویت: مهر ۱۳۸۵

تشکرها : 0
( 3 تشکر در 3 ارسال )
ارسال: #7
RE: اعمال تغییرات ریاضی روی دو رشته عددی نامحدود
خیلی ممنون
۰۷-آذر-۱۳۸۵, ۲۳:۳۵:۵۹
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  تکست باکس عددی و جدا کننده سه رقمی drc0de 1 869 ۱۸-تير-۱۳۹۹, ۱۴:۴۶:۱۳
آخرین ارسال: drc0de
  ذخیره کردن نتیجه اجرای کد به صورت رشته alefpe 1 2,740 ۱۰-خرداد-۱۳۹۴, ۱۰:۲۰:۲۲
آخرین ارسال: lord_viper
  هش کردن رشته توسط vb6 policweb 5 4,794 ۲۶-شهریور-۱۳۹۲, ۲۲:۵۹:۱۲
آخرین ارسال: Ghoghnus
  ارایه ای از رشته ها و option expilcit mehrdad8 2 2,907 ۱۹-خرداد-۱۳۹۲, ۰۰:۰۷:۱۷
آخرین ارسال: Payman62
Question [سوال] چگونگي استفاده از توابع رشته اي در تكست باكس با حالت multiline PRO 4 4,524 ۱۵-شهریور-۱۳۹۱, ۰۱:۰۳:۳۳
آخرین ارسال: PRO
  مشکل پاک نکردن رشته از ریجستری با vb6 !_!_batman_!_! 3 3,732 ۰۲-اردیبهشت-۱۳۹۱, ۱۳:۴۴:۴۹
آخرین ارسال: Payman62
  جستجوی یک رشته درون رشته ی دیگه RAMA2009 5 8,623 ۲۴-اسفند-۱۳۹۰, ۱۲:۰۶:۵۴
آخرین ارسال: Di Di
  کمک فوری در مورد ذخیره کردن تغییرات download69 3 3,239 ۲۳-آبان-۱۳۸۹, ۱۸:۳۷:۲۹
آخرین ارسال: Mr.pRoGraMmer
  عکس به جای رشته در vb.6 main 5 3,936 ۱۶-اسفند-۱۳۸۸, ۱۸:۵۷:۳۵
آخرین ارسال: Di Di
  خواندن فایل متنی و ذخیره تغییرات niko2008 6 8,067 ۲۷-دى-۱۳۸۸, ۰۰:۲۱:۲۲
آخرین ارسال: niko2008

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS