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

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


عبد الهادي بهاب
13-12-2015, 06:49 PM
السلام عليكم ورحمة الله وبركاته
في هذا المشروع يمثل ارضية لبرنامج تعليمي تربوي
للحروف بثلاث لغات عربية و فرنسية و انجليزية

http://cdn.top4top.co/i_7a529cc9581.png
---------------------
من باب الشرح :
هناك 3 ازرار تمثل ثلاث اللغات و هي مسؤولة عن تحويل النصوص في الازرار و تحديد مجلد الاصوات
وضعت 28 زر يمثلون الاحرف تتغير النص فيها حسب تحديد اللغة
زران يمثلان تعليم النطق يعطي الانبوت 1 و اخر لتمرين تدريبي يعطي الانبوت السابق 2
في كل زر كود واحد هو تشغيل الكود الموجود في Global function
و ايضا يضع النص في انبوت غير مرئي
في كود global function
اولا احدد اللغة المحددة
ثم هل يتعلق الامر بالنطق او السؤال
اذا كان النطق (1)...... فان البرنامج يقرئ audio الموجود في مجلد اللغة المحددة و الذي يحمل اسم الزر المضغوط
اذا كان التمرين (2) ......فانه يقارن نص السؤال الذي يطرحه البرنامج من خلال دالة Math.Random و بنص الزر المضغوط فان كان متاسويان فهو يقرا audio التصفيق و اذا اختلفا النصين فهو يقرا Audio الخطأ
----------------------------------------
هناك زران اخران majuscule , minscule
هما يغيران شكل الاحرف لاجنبية
----------------------
الملف المفتوح للتحميل
http://up.top4top.net/downloadf-top4top_2e268e4aa91-rar.html

:abc_152::abc_152:
تحياتي

عبد الهادي بهاب
13-12-2015, 06:51 PM
فيه سؤال للاخوة لمن يردي التعديل
.................
كيف اجعل الدالة random لا تكرر السؤال مرتين
--------------------
حاولت اسغلال هذا الكود
http://www.abc4web.net/vb/showthread.php?t=32912
لكن لم افلح فانتظر الرد

خادم المسلمين
13-12-2015, 06:52 PM
تسلم ايدك
محترف والى الامام ان شاء الله
على قدر ابداعك وتميزك واحترافك فانت متواضع وعمر اخلاقك ما تتغير وعمرك ما تتكبر
ربنا يزيدك من علمه وفضله ويزيدك تواضع فمن تواضع لله
رفعه
:abc_022::abc_022::abc_022::abc_022:

ثامر أبو بلقيس
13-12-2015, 07:58 PM
السلام عليكم ورحمة الله وبركاته

أولا بارك الله فيك على هذا العمل المفيد كما سيق و قلت لك في أول مشاركاتك بأنك بدأت
أستاذ و هاهي انجازاتك و ردودك على استفسارات الأعضاء دالة على ذلك
وقت قصير كان كاف لاحترافك في البرنامج وذاك يعود لاهتمامك و بحثك المتواصل و الابتعاد عن الحلول الجاهزة

بارك الله فيك

قلت لم تفهم منع التكرار في الدالة العشوائية جيد سأجيبك بطريقة اخرى
أكتب في global functions
function permute(tab, n, count)
n = n or #tab
for i = 1, count or n do
local j = math.random(i, n)
tab[i], tab[j] = tab[j], tab[i]
end
return tab
end
--------------

نفترض بأنه لديك إظهار عشوائي للأعداد من 10 الى 25
لكن بدون أن يتكرر ثانية أي رقم الى غاية انتهاء الحلقة
في العادة نستعمل
result = Math.Random(10, 25);
ولعلك أشرت لعيوبها
جيد لاحظ الكود التالي :
result = Math.Random(10, 25);
tab = {}
for i = 10,25 do
Table.Insert(tab, 1, i);
end
g =permute(tab, 25-10, 25-10)
for n,p in pairs(g) do
Dialog.Message("Notice",p);
end


الدالة التكرارية تبدا من أول رقم 10 الى غاية 25 و هو المعلن عنه في السطر الاول اعلاه
ولاحظ 25-10 المكتوبة في الكود على مرتين هي عدد الأعداد المحصورة بين الرقمين
وهما مأخوذان لاستغلالهما في عدد المرات كذلك جرب الان ستظهر الاعداد عشوائبا
بعدد مرات مقدر بـ 25 - 10 و بدون أن يتكرر أحدهم أليس كذلك موفق :abc_138:

abohmam
14-12-2015, 12:42 AM
جزاك الله خيرا أخى المحترف على هذا العمل الرائع

والشكر موصول لأخى أبا بلقيس على المتابعة

بارك الله فيكم

ياسرهتهت
14-12-2015, 01:41 AM
بسم الله الرحمن الرحيم

ما شاء الله ابداع وتميز اخي المحترف

http://cdn.top4top.co/i_97a06b9f681.gif


موفق بإذن الله ... لك مني أجمل تحية .
:abc_152::abc_152:

azizsoft
14-12-2015, 03:15 AM
بسم الله الرحمن الرحيم

بارك الله فيكم جميعا :abc_022:

عبد الهادي بهاب
14-12-2015, 10:44 AM
تسلم ايدك
محترف والى الامام ان شاء الله
على قدر ابداعك وتميزك واحترافك فانت متواضع وعمر اخلاقك ما تتغير وعمرك ما تتكبر
ربنا يزيدك من علمه وفضله ويزيدك تواضع فمن تواضع لله
رفعه
:abc_022::abc_022::abc_022::abc_022:

الله عليك يا استاذ ........ تعلمنا منكم و في هذا المنتدى نضجت تجربتنا و اكوادنا .........وهذا اقل ما نقدمه .........و شعاري دائما لعل الفكرة التي تدخلني الجنة لم اكتبها بعد ......فلعل هذه تكون

السلام عليكم ورحمة الله وبركاته

أولا بارك الله فيك على هذا العمل المفيد كما سيق و قلت لك في أول مشاركاتك بأنك بدأت
أستاذ و هاهي انجازاتك و ردودك على استفسارات الأعضاء دالة على ذلك
وقت قصير كان كاف لاحترافك في البرنامج وذاك يعود لاهتمامك و بحثك المتواصل و الابتعاد عن الحلول الجاهزة

بارك الله فيك

قلت لم تفهم منع التكرار في الدالة العشوائية جيد سأجيبك بطريقة اخرى
أكتب في global functions
function permute(tab, n, count)
n = n or #tab
for i = 1, count or n do
local j = math.random(i, n)
tab[i], tab[j] = tab[j], tab[i]
end
return tab
end
--------------نفترض بأنه لديك إظهار عشوائي للأعداد من 10 الى 25
لكن بدون أن يتكرر ثانية أي رقم الى غاية انتهاء الحلقة
في العادة نستعمل
result = Math.Random(10, 25);ولعلك أشرت لعيوبها
جيد لاحظ الكود التالي :
result = Math.Random(10, 25);
tab = {}
for i = 10,25 do
Table.Insert(tab, 1, i);
end
g =permute(tab, 25-10, 25-10)
for n,p in pairs(g) do
Dialog.Message("Notice",p);
end
الدالة التكرارية تبدا من أول رقم 10 الى غاية 25 و هو المعلن عنه في السطر الاول اعلاه
ولاحظ 25-10 المكتوبة في الكود على مرتين هي عدد الأعداد المحصورة بين الرقمين
وهما مأخوذان لاستغلالهما في عدد المرات كذلك جرب الان ستظهر الاعداد عشوائبا
بعدد مرات مقدر بـ 25 - 10 و بدون أن يتكرر أحدهم أليس كذلك موفق :abc_138:

شكرا على الكامت الطيبة ......... و هذه شهدة انني تلميذ مجتهد .......:abc_022::abc_022::abc_022: ....
صدقني استاذ حاولت لاكثر من يوم لعدة ساعات لكني لم اجد حلا او تجسيدا لمساعدتك في الموضوع .........فهمت انه يجب ان ننشئ مصفوفة تسجل كل رقم تصدره الدالة random واذا تكرر الرقم من الدالة فان المصفوفة تعلن انه مسجل فتصدر الدالة رقما اخر .........صحيح ؟؟؟؟؟؟؟ .........لكن لم تفلح محاولتي لتجرمتها الى اكواد ....لذلك .....ارجو مساعدتك من خلال التالي : في المشروع في زر التمرين مصفوفة فيها الاحرف الابجدية ........الدلة Random تعطينا رقما من 1 الى 28 وهو رقم الحرف في الصفوفة و التي استدعي اسها في ملف الاصوات ......... كيف لا استعدس الرقم مرة ثانية ؟؟ .........:abc_085::abc_085::abc_085:
تحياتي استاذ بلقيس

جزاك الله خيرا أخى المحترف على هذا العمل الرائع

والشكر موصول لأخى أبا بلقيس على المتابعة

بارك الله فيكم

تحية مباركة استاذ ابوهمام .........و نعم المشرف المدير المتابع ......باركك الله

بسم الله الرحمن الرحيم

بارك الله فيكم جميعا :abc_022:

اهلا استاذ عزيز .........شكرا جزيلا و حياك الله و رفع شانك

المـهاجر
14-12-2015, 11:51 AM
اليك حل أخر من المنتدى بتعديل طفيف
عشوائى من الى
function Randomise_range(Start,End)
Numbers = {}
Moh =0
for i = Start,End do
Moh=Moh+1
Table.Insert(Numbers, Moh, i);
end
local c = #Numbers
while c >= 2 do
local s = math.random(c)
Numbers[c], Numbers[s] = Numbers[s], Numbers[c]
c = c - 1
end
return Numbers
end

إستغلال الدالة
Randomise_range(10,15)

لمشاهدة النتائج

for k, v in ipairs (Numbers) do
Dialog.Message("Notice", v, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end

يمكنك وضعها كلها فى زر واحد ثم شاهد
:abc_152:

عبد الهادي بهاب
14-12-2015, 12:27 PM
بسم الله الرحمن الرحيم

ما شاء الله ابداع وتميز اخي المحترف

http://cdn.top4top.co/i_97a06b9f681.gif


موفق بإذن الله ... لك مني أجمل تحية .
:abc_152::abc_152:

ابداع في الرد .........و جمال في التصوير ......و ورعة في الاختيار .........ربي يجمل لك اخرتك بجميل رضاه

عبد الهادي بهاب
14-12-2015, 12:28 PM
اليك حل أخر من المنتدى بتعديل طفيف
عشوائى من الى
function Randomise_range(Start,End)
Numbers = {}
Moh =0
for i = Start,End do
Moh=Moh+1
Table.Insert(Numbers, Moh, i);
end
local c = #Numbers
while c >= 2 do
local s = math.random(c)
Numbers[c], Numbers[s] = Numbers[s], Numbers[c]
c = c - 1
end
return Numbers
end

إستغلال الدالة
Randomise_range(10,15)

لمشاهدة النتائج

for k, v in ipairs (Numbers) do
Dialog.Message("Notice", v, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end

يمكنك وضعها كلها فى زر واحد ثم شاهد
:abc_152:


جميل جدا مروركم استاذنا ........و مساعدتك قيمة ..........ارجو ان انجح في تجسيدها .......للعمل مباشرة .........و لنا عودة :abc_022: