مشاهدة النسخة كاملة : سؤال بخصوص التكرار
ثامر أبو بلقيس
18-08-2013, 08:59 PM
السلام عليكم
في البدء أعتذر إن لم اشرح الطلب جيدا
أرغب في تعديل على هذا الكود المتعلق بالتكرار وهو :
for p in prim(100) do result = Dialog.Message("Notice", p);
end
حيث تنتج رسائل متتالية وددت التحكم فيها لتظهر النتائج كرسالة واحدة في Dialog.Message
أو في أي عنصر تقترحه
سلامي و احترامي
Haitham.2012
19-08-2013, 12:34 AM
الطلب غير واضح ,,,, نود المساعده :abc_152:
ثامر أبو بلقيس
19-08-2013, 12:46 AM
بارك الله فيك أستاذ هيثم
إليك أخي بهذا الملف يتكقل بتحليل العدد الطبيعي لجداء عوامله
الأولية لاحظ أن بعد كتابة العدد في الانبوت 1 بعد الضغط على المعاينة
أجبرت على إظهار التحليل على شكل رسائل متتابعة
أحببت أن تنزل دفعة واحدة في الأنبوت 2
http://www.gulfup.com/?tb6Foo
في كل الحالات لك كل التقدير :abc_152:
رعد الحواسيب
19-08-2013, 01:54 AM
ااااااااه من صداع الرأس :abc_070: ..
حاولت كثيرا لأصل إلى الحل ولم أصل إليه في النهاية ..
function primdiv(n)
assert(n ~= 0)
if n < 0 then n = -n end
local function f(_, v)
if n > 1 then
while n%v > 0 do
v = v + (v == 2 and 1 or 2)
if v*v > n then v = n end
end
n = n / v
return v
end
end
return f,nil,2
end
لكن بعد إذنك يا أخي حاول أن تشرح لي هذه النقاط : السطر الثاني - الرابع - الرابع عشر ..
ما فهمته من قراءتي عن assert عن أنه إذا لم يتحقق n ~= 0 تجعل n=nill وبتالي توقف بقية الدالة عن الإكمال هل فهمي صحيح ؟
جزاك الله خيرا أخي ثامر فدائما ما تجعلني أبحث وأستفيد ..
مرجع :
http://lua-users.org/wiki/IteratorsTutorial
Haitham.2012
19-08-2013, 12:32 PM
حقيقة لا أعرف ان كان هذا يفي بالغرض ...
Input.SetText("Input2", "");
my_table = {}
X=Input.GetText("Input1");
X = String.ToNumber(X);
i = 1
for p in primdiv(X) do
Table.Insert(my_table, i, p);
i = i + 1
end
---------------------------------
for x,y in pairs (my_table) do
result = Input.GetText("Input2");
Input.SetText("Input2", result .. " , " .. y);
end
ثامر أبو بلقيس
19-08-2013, 01:23 PM
أخلاق عالية عند تقديم المساعدة
أوعند تقديم النصيحة بل حتى عند المرور للتشجيع
فرضت احترامك بحسن تعاملك
بارك الله فيك :abc_050:
رعد الحواسيب
19-08-2013, 07:10 PM
أخي أبو بلقيس آمل أن تجيب على أسئلتي إن لم يكن هناك مانع ..
بارك الله فيك
ثامر أبو بلقيس
19-08-2013, 07:59 PM
أخي الكريم ..
أرى أنه لا علاقة بين assert و ماذكرت لهذا أحذف تماما السطر
ليصبح
function primdiv(n)
if n < 0 then n = -n end
local function f(_, v)
if n > 1 then
while n%v > 0 do
v = v + (v == 2 and 1 or 2)
if v*v > n then v = n end
end
n = n / v
return v
end
end
return f,nil,2
end
و للإصدار السابع اعتمدت على هذا :
function primdiv(n)
if n < 0 then n = -n end
local function f(_, v)
if n > 1 then
while Math.Mod(n, v) > 0 do
v = v + (v == 2 and 1 or 2)
if v*v > n then v = n end
end
n = n / v
return v
end
end
return f,nil,2
end
حتى يعمل
هذا ما أعرف
رعد الحواسيب
19-08-2013, 09:02 PM
ماكان يحيرني كثيرا هذا السطر فالـv لا أعرف لها قيمة معينة ..
local function f(_, v)
أسأل الله أن يفهمنا ويعلمنا ما ينفعنا وينفعنا بما علمنا
الله المستعان ..
Haitham.2012
20-08-2013, 01:23 PM
أخلاق عالية عند تقديم المساعدة
أوعند تقديم النصيحة بل حتى عند المرور للتشجيع
فرضت احترامك بحسن تعاملك
بارك الله فيك :abc_050:
جزاك الله خيرا اخي الكريم ... وهذا بعض ما عندكم
:abc_152:
vBulletin® v3.8.11, Copyright ©2000-2024, abohmam