سورس کدهای ویژوال بیسیک
سورس کد های رایگان ویژوال بیسیک ؛ آموزش حرفه ای؛ API و ...
|
|
ضرب عدد 100 رقمی در سه رقمی احمد از مارلیک: چگونه یک عدد صد رقمی را در سه رقمی با استفاده از آرایه ها ضرب کنیم. جواب: در حالت عادی ضرب عددی صد رقمی در سه رقمی باعث ایجاد خطای Over Flow می گردد. جهت برطرف نمودن این مشکل ما از الگوریتم زیر استفاده می نمائیم. ابتدا باید عدد 100 رقمی و 3 رقمی گرفته شود سپس ارقام آن به طور جداگانه در خانه های آرایه قرار گیرد. سپس عملیات ضرب را آغاز می کنیم. Option Base 1 ' باعث می شود اندیس آرایه از یک شروع شود F=false Help2[1]=0 Help3[1]=0 Help3[2]=0 I=0 Temp=Val(InputBox("Enter First Number: ")) ' عدد صد رقمی را وارد کنید Do While temp>0 I=i+1 Hundred[i]=Temp mod 10 Temp=Temp\10 Indx=0 Temp=Val(InputBox("Enter Second Number: ")) 'عدد سه رقمی را وارد کنید Do While Indx<=3 Indx=Indx+1 Three[Indx]=Temp mod 10 Temp=Temp\10 For k=1 to 3 For j=1 to i If overf=true then Temp=(Three[k]*Hundred[j])+sec Overf=false Else: Temp=Three[k]*Hundred[j] End if Select case k Case 1: If (Temp>9) and (j Help1[j]=Temp mod 10 Sec=temp\10 Overf=True Else if (Temp>9) and (j=i) then Help1[j]=temp mod 10 Help1[j+1]=temp\10 Overf=false Else Help1[j]=temp End If Case 2: If (Temp>9) and (j Help2[j+1]=Temp mod 10 Sec=Temp\10 Overf=true Else if (Temp>9) and (j=i) then Help2[j+1]=Temp mod 10 Help2[j+2]=Temp\10 Overf=False Else Help2[j+1]=Temp End If Case 3: If (Temp>9) and (j Help3[j+2]=Temp mod 10 Sec=Temp\10 Overf=True Else if (Temp>9) And (j=i) then Help3[j+2]=Temp mod10 Help3[j+3]=Temp\10 Overf=False LP=J+3 Else Help3[j+2]=Temp End if End Select Next j Next k For z=1 to LP If (overf=true) then Temp=(Help1[z]+Help2[z]+Help3[z])+Sec) Else Temp=(Help1[z]+Help2[z]+Help3[z]) End if If (Temp>9) and (z=LP) then Final[z]=Temp mod 10 Final[z+1]=Temp\10 Else Final[z]=Temp Overf=False End if Next z
اگر در جائی نیاز به توضیح بود بگوئید تا در همین پست توضیحات مورد نظر را اضافه کنم. نظر یادتون نره!!!!!
نوشته شده توسط علیرضا | لینک ثابت | موضوع: |
|
|