منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] اصل الارقام - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4)
+--- قسم : قسم لغة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=18)
+---- قسم : قسم أسئلة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=28)
+---- الموضوع : [سؤال] اصل الارقام (/showthread.php?tid=14267)



اصل الارقام - تاج - 29-12-15

السلام عليكم ورحمة الله
كما تعرفون ان اصل كل الارقام من ١-٩
فمثلا الرقم ٥٢ عبارة عن ٣+٥  =٨
الرقم ١٩٧٢ عبارة عن ٢+٧+٩+١ =١٩ والتى بدورها عبارة عن ٩+١ =10
والتي بدورها عبارة عن ٠+١ =١
اذن في كل الحالات الناتج النهائي محصور بين الارقام من ١-٩
كيف يمكن كتابة كود
بحيث نضع الرقم ١٩٧٢ =1
الرقم 2015= 5+1+0+2=8
١
ارجو الافادة
وشكرا


RE: اصل الارقام - sami2015 - 29-12-15

PHP كود :
Dim ns$, tl%, i%
ns$ = Trim$(Str(2015))
For 
1 To Len(ns$)
   tl% = tl% + Val(Mid$(ns$, i1))
Next
MsgBox tl




RE: اصل الارقام - Ahmed_Mansoor - 29-12-15

أهلا أخي الكريم ، جرب الكود التالي :

PHP كود :
Dim zValue As String
Dim zTotal 
As String
Dim I 
As Integer

zValue 
"2015"
zTotal "00"

Do While Len(zTotal) > 1
      
      zTotal 
"00"

      
For 1 To Len(zValue)
            
zTotal Val(zTotal) + Val(Mid$(zValue,I,1))
      
Next

     zValue 
zTotal

Loop

MsgBox zTotal 



RE: اصل الارقام - تاج - 29-12-15

(29-12-15, 06:44 AM)sami2015 كتب :
PHP كود :
Dim ns$, tl%, i%
ns$ = Trim$(Str(2015))
For 
1 To Len(ns$)
   tl% = tl% + Val(Mid$(ns$, i1))
Next
MsgBox tl


اخي الكريم
كل الشكر لك على سرعة الاجابة
ولكن عند تجريب البرنامج على الارقام التى لا تحتاج الجمع المعنوي اكثر من مرة فانه يضبط مثل رقم 2015 يعطي نتيجة صحيحة لان 5+1+0+2=8

اما الارقام التي بها جمع معنوي اكثر من مرة فانه لا يجيدها
مثال 1972 فانه يعطي 19 ولكن المفروض نجمع 1+9=10 ثم نجمع 1+0=1
لاحظ هنا كررنا الجمع اكثر من مرة
ولعل الملف المرف يوضح ذلك
اكرر شكرى لك

(29-12-15, 08:45 AM)Ahmed_Mansoor كتب : أهلا أخي الكريم ، جرب الكود التالي :

PHP كود :
Dim zValue As String
Dim zTotal 
As String
Dim I 
As Integer

zValue 
"2015"
zTotal "00"

Do While Len(zTotal) > 1
      
      zTotal 
"00"

 
     For I 1 To Len(zValue)
 
           zTotal Val(zTotal) + Val(Mid$(zValue,I,1))
 
     Next

     zValue 
zTotal

Loop

MsgBox zTotal 

الاخ الكريم احمد منصور
كل التحية والامتنان لك
الكود لا غبار عليه
بارك الله فيك
وهذا هو الكود مرفق ربما يحتاج اليه اعضاء اخرون
ارجو شرح هذا الجزء من الكود
PHP كود :
zTotal "00" 



RE: اصل الارقام - Ahmed_Mansoor - 30-12-15

أهلا أخي الكريم ، شكراً جزيلاً لك ، وضعت قيمة المتغير zTotal يساوي صفرين قبل اللوب وفي بدايتها لكي لايتم الخروج من اللوب إلا إذا كانت قيمته عباره عن رقم واحد أو خانه واحده .


RE: اصل الارقام - تاج - 30-12-15

(30-12-15, 02:39 AM)Ahmed_Mansoor كتب : أهلا أخي الكريم ، شكراً جزيلاً لك ، وضعت قيمة المتغير zTotal يساوي صفرين قبل اللوب وفي بدايتها لكي لايتم الخروج من اللوب إلا إذا كانت قيمته عباره عن رقم واحد أو خانه واحده .

شكرا جزيلا للتوضيح