منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : اصل الارقام
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله
كما تعرفون ان اصل كل الارقام من ١-٩
فمثلا الرقم ٥٢ عبارة عن ٣+٥  =٨
الرقم ١٩٧٢ عبارة عن ٢+٧+٩+١ =١٩ والتى بدورها عبارة عن ٩+١ =10
والتي بدورها عبارة عن ٠+١ =١
اذن في كل الحالات الناتج النهائي محصور بين الارقام من ١-٩
كيف يمكن كتابة كود
بحيث نضع الرقم ١٩٧٢ =1
الرقم 2015= 5+1+0+2=8
١
ارجو الافادة
وشكرا
PHP كود :
Dim ns$, tl%, i%
ns$ = Trim$(Str(2015))
For 
1 To Len(ns$)
   tl% = tl% + Val(Mid$(ns$, i1))
Next
MsgBox tl

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

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

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