المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : توزيع مراتب عدد


ثامر أبو بلقيس
08-10-2013, 12:16 AM
السلام عليكم ورحمة الله
إخواني الأعزاء
لو أحببنا توزيع عدد وليكن مثلا 2645
حيث يتم التوزيع في مراتب الأحاد و العشرات و المئات و الالاف
في هذه الحالة

هل ممكن أن تشاركنا بأكواد تفي بالغرض
سلامي و احترامي :abc_152:

النصل القاطع
08-10-2013, 02:21 PM
استخدم الدالة
string.mid

ثامر أبو بلقيس
08-10-2013, 03:13 PM
لمحت فأفدت بارك الله فيك و جزاك الله خيرا :abc_152:
إخواني
الدالة المشار إليها تمكننا من تحديد بداية المنزلة و نهايتها لأي عدد :abc_152:

ثامر أبو بلقيس
08-10-2013, 03:48 PM
عند تحديد المنازل الوسطى مثلا المئات في العدد 7341
وعند تطبيق
result = String.Mid("7341", 2, 2);
Input.SetText("Input1", result);

سأحصل على 34 بدل 3 لوحدها
أين الخلل في الاستعمال ؟

ثامر أبو بلقيس
08-10-2013, 03:54 PM
اعتذر ربما الكود يكون بهذا الشكل
result = String.Mid("7341", 2, 1);
Input.SetText("Input1", result);
ليحقق الاستخلاص المطلوب

عبود عبود
08-10-2013, 07:48 PM
وطبعا قبل ذلك عليك الحصول على طول النص أوعدد الحروف أو عدد الأرقام للنص بإستخدام String.Length

حتى يكون هناك حدود إن كان طول الرقم غير ثابت

المتعملق
09-10-2013, 08:27 AM
لكم مني أجمل تحية .

ثامر أبو بلقيس
10-10-2013, 12:32 AM
وطبعا قبل ذلك عليك الحصول على طول النص أوعدد الحروف أو عدد الأرقام للنص بإستخدام String.Length

حتى يكون هناك حدود إن كان طول الرقم غير ثابت

شكرا جزيلا
بعدما حاولت مع الدالة string.mid لم تخدمني كثيرا للوصول إلى
برمجة تخص توزيع المراتب لذلك سأطرح حلا أرجو أن يلقى القبول

سنتعامل مع تحديد المراتب للأعداد الصحيحة
نعرف بأن أي عدد صحيح باقي قسمته على عشرة هو رقم الأحاد
مباشرة مثال 2645 مقسوم على 10 = 264 و الباقي 5 وهورقم الوحدات
لنترجم ذلك لكود
بفرض لدينا أنبوت 1 سنكتب فيه اي عدد صحيح
سنستخرج منه رقم الاحاد بالكود التالي :
x=Input.GetText("Input1");
ahad = Math.Mod(x,10);
Input.SetText("Input2", ahad);

اذا أردنا استخلاص رقم العشرات من نفس العدد السابق
نأخذ العدد 2645 ونقسمه على 10 ثم نهمل المراتب العشرية
باستعمال Math.Floor باقي قسمة الناتج على 10 هو رقم العشرات
ويكون الكود كالتالي :
acharatte = Math.Mod(Math.Floor(x/10),10);
Input.SetText("Input3", acharatte);

للحصول على منزلة المئات نقوم بنفس الخطو السابقة لكن نقسم العدد في الاول على 100
ثم نهمل المراتب العشرية باقي قسمة الناتج على 10 هو المئات
miaat = Math.Mod(Math.Floor(x/100),10);
Input.SetText("Input4", miaat);

وللحصول على مرتبة الالاف على نفس النمط
alaf = Math.Mod(Math.Floor(x/1000),10);
Input.SetText("Input5", alaf);

ونبقى نضيف كل مرة صفر لقسمة x في دالة Math.Floor

لنستخلص كل المراتب التي نريدها
والسلام عليكم

رعد الحواسيب
10-10-2013, 02:44 AM
حل مميز جدا أخي أبو بلقيس ..

تحياتي لك :abc_026:

النصل القاطع
10-10-2013, 03:29 PM
حل مميز جدا أخي أبو بلقيس ..

تحياتي لك :abc_026:

أبو بلقيس
أفدتنا بمعلومة جيدة

لا شيئ بلا مقابل
هناك هدية :abc_028:
إليك حلقة الحساب الالى لكل المراتب (المنازل)

على فرض أن مشروعك يحوى إنبوت و زر
هذا هو كود الزر :-

x=Input.GetText("Input1");
len = String.Length(x);
for i = 1,len do
x = Math.Floor(x);
fract = Math.Mod(x,10);
x=x/10
Dialog.Message("Notice",fract, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end

:abc_152:

ثامر أبو بلقيس
10-10-2013, 03:44 PM
بارك الله فيك الاستاذ رعد
شكرا الأستاذ خالد بارك الله فيك
قد يأتي يوم و أطلب درسا مميزا حول التعامل
مع الحلقات أي شرح بالتفصيل
عيد مبارك :abc_152:

ثامر أبو بلقيس
10-10-2013, 04:23 PM
هناك هدية :abc_028:
على فرض أن مشروعك يحوى إنبوت و زر
هذا هو كود الزر :-

x=Input.GetText("Input1");
len = String.Length(x);
for i = 1,len do
x = Math.Floor(x);
fract = Math.Mod(x,10);
x=x/10
Dialog.Message("Notice",fract, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end

:abc_152:

هدية رائعة
أضفت السطر الثاني حتى يتم التعامل مع الأعداد الصحيحة و العشرية
x=Input.GetText("Input1");
x = Math.Floor(x);
len = String.Length(x);
for i = 1,len do
x = Math.Floor(x);
fract = Math.Mod(x,10);
x=x/10
Dialog.Message("Notice",fract, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end

شكرا

ربيع
26-12-2014, 11:57 AM
x=Input.GetText("Input1");
for i =string.len(x),1,-1 do
result = String.Mid(x, i, 1);
Dialog.Message("Notice", result);
end