سئوال در برنامه نويسي وي بي

در اين بخش مي‌توانيد به مباحث مربوط به انواع زبان هاي برنامه نويسي بپردازيد

مدیران انجمن: athlon64x2, abbas.m.k, شوراي نظارت

Captain
Captain
پست: 2755
تاریخ عضویت: چهار شنبه 18 بهمن 1385, 12:46 pm
محل اقامت: شیراز
سپاس‌های ارسالی: 22364 بار
سپاس‌های دریافتی: 5555 بار

سئوال در برنامه نويسي وي بي

پست توسط Present » جمعه 20 مهر 1386, 6:50 pm

من باید به عنوان پروژه یک برنامه بنویسم که دوعدد بسیار بزرگ را با هم جمع کند(ضربش را نوشتم)
اگه میشه همه خواص لیست باکس را توضیح بدهید(میخوام تمام اعداد داخل یک لیست را با هم جمع کنم)
با تشکر

Rookie Poster
Rookie Poster
پست: 38
تاریخ عضویت: جمعه 17 آذر 1385, 10:20 am
سپاس‌های دریافتی: 1 بار

پست توسط aminjan » جمعه 20 مهر 1386, 10:09 pm

Dim m As Long
For i = 0 To List1.ListCount
m = m + Val(List1.List(i))
Next
Print m


------------
کد بالا همه اعداد تو یه لیست باکس رو جمع میکنه
با خاصیت list میتوته /ایتم مورد نظر رو بخونی
متلا کد زیر آیتم دوم رو میخون
K = list1.list(1)x

Rookie Poster
Rookie Poster
پست: 38
تاریخ عضویت: جمعه 17 آذر 1385, 10:20 am
سپاس‌های دریافتی: 1 بار

پست توسط aminjan » جمعه 20 مهر 1386, 10:12 pm

ببخشید دو بار شد!

Captain
Captain
پست: 2755
تاریخ عضویت: چهار شنبه 18 بهمن 1385, 12:46 pm
محل اقامت: شیراز
سپاس‌های ارسالی: 22364 بار
سپاس‌های دریافتی: 5555 بار

پست توسط Present » شنبه 21 مهر 1386, 10:27 am

با تشکر از امين جان
کسي راه حلي براي جمع دو عدد 50 رقمي نداره
با آرايه ميشه اما بر عکس به دست مياد که که از برعکس کردنش ارور ميگيره
يعني جمع را جواب ميده ولي اما وقتي عدد carry را ميخام باهاش جمه کنم براي عدد که انديس آرايه 0 است مشکل دارم
اونم به خاطر اينکه بايد هر عدد که ميخاد با عدد carry جمع شودبايد شماره ارايه يکي پايين تر باشه
پروانه نیستم که به یک شعله جان دهم / شمعم که سوزم و دودی نیاورم

گــــــــــــــــاهی تــــــــــــــاوان شیــــــــــر بودن قـــفس اســـت ...
امــــــــا شـــــغال هــــا در شـــــهــــر آزاد مـــــیگـــــــردنــــــــــد ... !

به زودی تعمیرکار لب تاپ می شم :-)

Captain
Captain
پست: 2755
تاریخ عضویت: چهار شنبه 18 بهمن 1385, 12:46 pm
محل اقامت: شیراز
سپاس‌های ارسالی: 22364 بار
سپاس‌های دریافتی: 5555 بار

پست توسط Present » یک شنبه 22 مهر 1386, 11:47 am

کسي نيست جواب بده يا راهنمايي کند
پروانه نیستم که به یک شعله جان دهم / شمعم که سوزم و دودی نیاورم

گــــــــــــــــاهی تــــــــــــــاوان شیــــــــــر بودن قـــفس اســـت ...
امــــــــا شـــــغال هــــا در شـــــهــــر آزاد مـــــیگـــــــردنــــــــــد ... !

به زودی تعمیرکار لب تاپ می شم :-)

Captain
Captain
پست: 432
تاریخ عضویت: چهار شنبه 11 بهمن 1385, 8:03 pm
محل اقامت: www.centralclubs.com
سپاس‌های ارسالی: 9 بار
سپاس‌های دریافتی: 16 بار

پست توسط dewdrop » یک شنبه 22 مهر 1386, 12:59 pm

morteza_1234m جان ،

كدي رو كه نوشتي ممكنه اينجا قرار بدي . حالا اصلا درست يا غلط بودنش هم زياد مهم نيست فقط ميخوام اگر تونستم رو كد خودت debug كنم .

اميدوارم بتونم بهت كمك كنم..... :-)

Captain
Captain
پست: 2755
تاریخ عضویت: چهار شنبه 18 بهمن 1385, 12:46 pm
محل اقامت: شیراز
سپاس‌های ارسالی: 22364 بار
سپاس‌های دریافتی: 5555 بار

پست توسط Present » سه شنبه 24 مهر 1386, 10:27 am

خودم نوشتم ولي با متغيرهاش مشکل دارم
Dim result As String, result1() As String, int1 As String, int2 As String



intnum1 = Len(Text1.Text)
intnum2 = Len(Text1.Text)
txt1 = Text1.Text
txt2 = Text2.Text
carry = 0
result = ""
For i = 1 To intnum1
int1 = Val(txt1) Mod 10
txt1 = Val(txt1) \ 10
int2 = Val(txt2) Mod 10
txt2 = Val(txt2) \ 10
If Val(int1) + Val(int2) + Val(carry) < 10 Then
result = result + Str(Val(int1) + Val(int2) + Val(carry))
carry = ""
Else
result = result + Str((Val(int1) + Val(int2) + Val(carry)) Mod 10)
carry = (Val(int1) + Val(int2) + Val(carry)) \ 10
End If
Next i

intnum3 = Len(Text1.Text)
While intnum3 > 0
ReDim result1(intnum3) As String
result1(intnum3) = (Str(Val(result)) Mod 10)
Label1.Caption = Label1.Caption + result1(intnum3)
result = (Str(Val(result)) \ 10)




intnum3 = intnum3 - 1
Wend





End Sub
پروانه نیستم که به یک شعله جان دهم / شمعم که سوزم و دودی نیاورم

گــــــــــــــــاهی تــــــــــــــاوان شیــــــــــر بودن قـــفس اســـت ...
امــــــــا شـــــغال هــــا در شـــــهــــر آزاد مـــــیگـــــــردنــــــــــد ... !

به زودی تعمیرکار لب تاپ می شم :-)

Captain
Captain
پست: 2755
تاریخ عضویت: چهار شنبه 18 بهمن 1385, 12:46 pm
محل اقامت: شیراز
سپاس‌های ارسالی: 22364 بار
سپاس‌های دریافتی: 5555 بار

پست توسط Present » سه شنبه 24 مهر 1386, 10:28 am

ارور OverFlow ميده
پروانه نیستم که به یک شعله جان دهم / شمعم که سوزم و دودی نیاورم

گــــــــــــــــاهی تــــــــــــــاوان شیــــــــــر بودن قـــفس اســـت ...
امــــــــا شـــــغال هــــا در شـــــهــــر آزاد مـــــیگـــــــردنــــــــــد ... !

به زودی تعمیرکار لب تاپ می شم :-)

Captain
Captain
پست: 432
تاریخ عضویت: چهار شنبه 11 بهمن 1385, 8:03 pm
محل اقامت: www.centralclubs.com
سپاس‌های ارسالی: 9 بار
سپاس‌های دریافتی: 16 بار

پست توسط dewdrop » چهار شنبه 25 مهر 1386, 1:07 am

دوست عزيز ،

debug اون قسمت برنامه رو ميشه با اين كد حل كرد ، يعني اگر شما اين كد رو :

کد: انتخاب همه

For i = intnum1 To 1 Step -1
int1 = Val(Mid(Text1, i, 1))
int2 = Val(Mid(Text2, i, 1))


جاي گزين اين قسمت كنيد

کد: انتخاب همه

For i = 1 To intnum1 
int1 = Val(txt1) Mod 10
txt1 = Val(txt1) \ 10
int2 = Val(txt2) Mod 10
txt2 = Val(txt2) \ 10


ارور اين قسمت از بين ميره . ولي باز رو برنامتون كار كنيد چون جواب نميده و اين ارور رو در قسمت آخر باز ميبينيد .

تو قسمت آخر بررسي كنيد ببينيد از راه ديگه اي هم ميشه رفت. :shock:

Captain
Captain
پست: 432
تاریخ عضویت: چهار شنبه 11 بهمن 1385, 8:03 pm
محل اقامت: www.centralclubs.com
سپاس‌های ارسالی: 9 بار
سپاس‌های دریافتی: 16 بار

پست توسط dewdrop » چهار شنبه 25 مهر 1386, 1:29 am

در ضمن من اين برنامه رو براتون نوشتم ولي يه باگ داره كه شما اين باگ رو برطرف كنيد اگر براتون ممكن . واين طوري فرض كردم كه هر دو عدد هم طول هستند.

کد: انتخاب همه

Private Sub Command1_Click()
carry = 0
intnum1 = Len(Text1.Text)

For i = intnum1 To 1 Step -1
a(i) = Val(Mid(Text1, i, 1))
b(i) = Val(Mid(Text2, i, 1))
Next
For i = intnum1 To 1 Step -1
gg = a(i) + b(i) + carry
If gg >= 10 Then
result = result + Str(gg Mod 10)
carry = gg \ 10
Else
result = result + Str(gg)
carry = 0
End If
Next
For i = Len(result) To 1 Step -1
If Mid(result, i, 1) <> " " Then
Text3 = Text3 + Mid(result, i, 1)
End If
Next


توي جواب.... :-o

Captain
Captain
پست: 2755
تاریخ عضویت: چهار شنبه 18 بهمن 1385, 12:46 pm
محل اقامت: شیراز
سپاس‌های ارسالی: 22364 بار
سپاس‌های دریافتی: 5555 بار

پست توسط Present » چهار شنبه 25 مهر 1386, 8:13 am

بله خودم قبلا کد شما را نوشتم ولي متاسفانه استاد محترم از اينجاي کد ايراد گرفت و مجبور اين کار شدم
ولي باعث تعجب هست که چرا يک متغير رشته اي ميتونه بيشتر از 10 کاراکتر را ذخيره منه؟
پروانه نیستم که به یک شعله جان دهم / شمعم که سوزم و دودی نیاورم

گــــــــــــــــاهی تــــــــــــــاوان شیــــــــــر بودن قـــفس اســـت ...
امــــــــا شـــــغال هــــا در شـــــهــــر آزاد مـــــیگـــــــردنــــــــــد ... !

به زودی تعمیرکار لب تاپ می شم :-)

Captain
Captain
پست: 2755
تاریخ عضویت: چهار شنبه 18 بهمن 1385, 12:46 pm
محل اقامت: شیراز
سپاس‌های ارسالی: 22364 بار
سپاس‌های دریافتی: 5555 بار

پست توسط Present » چهار شنبه 25 مهر 1386, 8:26 am

ولي باعث تعجب هست که چرا يک متغير رشته اي نميتونه بيشتر از 10 کاراکتر را ذخيره منه؟
پروانه نیستم که به یک شعله جان دهم / شمعم که سوزم و دودی نیاورم

گــــــــــــــــاهی تــــــــــــــاوان شیــــــــــر بودن قـــفس اســـت ...
امــــــــا شـــــغال هــــا در شـــــهــــر آزاد مـــــیگـــــــردنــــــــــد ... !

به زودی تعمیرکار لب تاپ می شم :-)

ارسال پست

بازگشت به “برنامه نويسي”