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

مشاهدة النسخة كاملة : جعل for لوب تدور من الرقم الاكبر الى الاصغر


القنـاص المصرى
01-09-2014, 03:41 AM
السلام عليكم ورحمة الله وبركاته
بسم الله الرحمن الرحيم
لنفترض انى عندى هذا الكود
for j,k in pairs(table) do
Dialog.Message("Table Item", j .. "=" .. k);
end
ولنقل ان بداية الاندكس هى 1 ونهايته 10
اريد ان تبدأ اللوب العد من 10 الى 1 تنازليا
10
9
8
الخ..
قرأت فى مساعد البرنامج انى بضيف ال -1 ولكن عندما اضفته بهذا الشكل اعطانى خطأ
for j,k -1 in pairs(table) do
Dialog.Message("Table Item", j .. "=" .. k);
end
وجزاكم الله كل خير

القنـاص المصرى
01-09-2014, 03:50 AM
لمن لم يفهم طلبى فى المصفوفة
اريد جعل اللوب تمر تمر على اخر عنصر فى المصفوفة ثم العنصر الذى يسبقه
يعنى لو اخر عنصر الاندكس تبعه 10
يبدأ العد
10
9
8
7

القنـاص المصرى
01-09-2014, 05:45 AM
جزاكم الله كل خير تم الوصول الى حل هذه المشكلة عن طريق الرجوع الى مراجع لغة Lua
وتلخص الحل فيما يلى
for n = #table,1,-1 do
Dialog.Message("", table[n]);
end

خادم المسلمين
01-09-2014, 08:09 AM
طيب ممكن ترفع لنا مشروع نفهم ممن خلاله هذا الكود؟

عبود عبود
02-09-2014, 01:51 PM
طيب ممكن ترفع لنا مشروع نفهم ممن خلاله هذا الكود؟

تفضــــــــل أخى الكود بالكامل فى الملف المفتوح :

تحميــــل مشروع عداد تنازلى (https://www.mediafire.com/?xzx23ovd6ot0515)


:abc_138:

خادم المسلمين
02-09-2014, 02:45 PM
شكرا اخى عبود وجزاكم الله خيرا

الجارف
02-09-2014, 09:40 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

ياسرهتهت
02-09-2014, 10:54 PM
:abc_152:شكرا لك استاذ / عبود
والله يعطيك العافية
:abc_152:موفق بإذن الله ... لك مني أجمل تحية . :abc_152:

المـهاجر
03-09-2014, 12:45 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

بيانكى
19-10-2014, 01:11 AM
الف شكر يا غالى

خالد مسيلي
02-12-2014, 02:43 PM
الله يبارك

ثامر أبو بلقيس
02-12-2014, 05:44 PM
السلام عليكم ورحمة الله وبركاته
مجموع العناصر 10 مثلا
عند الدورة الاولى الاندكس =1
لو نريد الاعلان على هذا العنصر الاخير
لاحظ : مجموع العناصر +1 - رقم الاندكس
أي 10 +1-1 = 10 حتما سيظهر الرقم الاخير
---------
في الدورة الثانية ماذا يحدث
10 +1 -2 سيظهر ماقبله و تستمر العملية في التنازل بعملية حسابية بسيطة

جرب هذا التعديل على الكود المطروح في بدء المشاركة:
list= {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"}
for j, k in pairs(list) do
Dialog.Message("Notice",list[(#list)+1-j]);
end

عبود عبود
02-12-2014, 05:50 PM
السلام عليكم ورحمة الله وبركاته
مجموع العناصر 10 مثلا
عند الدورة الاولى الاندكس =1
لو نريد الاعلان على هذا العنصر الاخير
لاحظ : مجموع العناصر +1 - رقم الاندكس
أي 10 +1-1 = 10 حتما سيظهر الرقم الاخير
---------
في الدورة الثانية ماذا يحدث
10 +1 -2 سيظهر ماقبله و تستمر العملية في التنازل بعملية حسابية بسيطة

جرب هذا التعديل على الكود المطروح في بدء المشاركة:
list= {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"}
for j, k in pairs(list) do
Dialog.Message("Notice",list[(#list)+1-j]);
end

http://www.abc4web.net/vb/images/icons/abc00.gif هل هذا يعنى أن ما ذكر فى هذه المشاركة خطأ ؟ :

جزاكم الله كل خير تم الوصول الى حل هذه المشكلة عن طريق الرجوع الى مراجع لغة Lua
وتلخص الحل فيما يلى
for n = #table,1,-1 do
Dialog.Message("", table[n]);
end

ثامر أبو بلقيس
02-12-2014, 05:59 PM
ولماذا المقارنة من الأساس ؟
لم أذكر في حديثي عن وجود أخطاء .. كنت أبسط الكود لنفسي حتى
أفهم كيف تمت العملية حتى لا أنساها
موفق:abc_138:

عبود عبود
02-12-2014, 06:15 PM
ولماذا المقارنة من الأساس ؟
لم أذكر في حديثي عن وجود أخطاء .. كنت أبسط الكود لنفسي حتى
أفهم كيف تمت العملية حتى لا أنساها
موفق:abc_138:

ليست عملية مقارنة ولكنك عندما قلت هذه الجملة :

جرب هذا التعديل على الكود المطروح في بدء المشاركة

إعتقدت أنه يوجد خلل فيما ذكر

هذا فقط لا غير ما دار بذهنى فأردت الإستفسار من أخى ماذا يعنى

ثامر أبو بلقيس
02-12-2014, 06:55 PM
السلام عليكم ورحمة الله وبركاته

التوضيح :
جرب هذا التعديل على الكود المطروح في بدء المشاركة

----------

في بداية المشاركة كان إنشغال صاحب الموضوع حول ايحاد طريقة
بعدما قرأ في الملف المساعد
for j,k in pairs(table) do
Dialog.Message("Table Item", j .. "=" .. k);
end
ولم يجدها حينها حل فبحث كماذكر وتوصل إلى الحل
من مراجع lua
for n = #table,1,-1 do
Dialog.Message("", table[n]);
end

------------------------------
رجعت لأصل المشاركة كما طرحت في ظروفها .. قبل الحل
للإشارة إلى البحث عن حلول بتفكير قبل أي بحث لأنه في الاساس كان يبحث عن فكرة للحل
لذلك ركزت على ما كتبه اطلاقا من :
for j,k in pairs(table) do
و الله أعلم
فقط و السلام عليكم و بالمناسبة توجد عدة حلول و التنوع مفيد طرحا أو شرحا :abc_138:

سعيدون
12-01-2015, 10:12 PM
مشكور يا غالي
بارك الله فيك

سمير نبيل
14-01-2015, 09:29 PM
شكرا اخى عبود وجزاكم الله خيرا

عبدوعزيز
22-02-2016, 09:27 AM
احسنت جزاك الله خيرا

كمال على كمال
23-02-2016, 01:33 PM
:abc_139::abc_139::abc_139: شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية . :abc_139::abc_139::abc_139:

خالد المسيلي
15-09-2016, 11:28 PM
شكرا جزيلا

محمد سامر
18-09-2016, 10:32 AM
موفق بإذن الله ... لك مني أجمل تحية .