مشاهدة النسخة كاملة : اريد طريقتين للمقارنة بين 5 ارقام وعرض الاكبر بينهم
القنـاص المصرى
26-10-2013, 02:01 PM
السلام عليكم ورحمة الله وبركاته
بسم الله الرحمن الرحيم
هلا وغلا بكم يا اصحاب
انا عندى استفسار بسيط بخصوص مقارنة 5 ارقام وليكن
a,b,c,d,e
اريد اعطاء هذه المتغيرات ارقام ومن ثم جعل البرنامج يقارن بينهم ويظهر لى الرقم الاكبر
وياريت لو ممكن بأكثر من طريقة
عبود عبود
26-10-2013, 02:28 PM
نفس السؤال على الرابط التالى ................ راجــــــع جيـــــــدا
http://www.abc4web.net/vb/showthread.php?t=27916
ثامر أبو بلقيس
26-10-2013, 02:35 PM
للاستفادة من بعض أكثر
ضمن مساحة العمل 5 أنبوتات لتكتب فيها الاعداد
Input1
Input2
Input3
Input4
Input5
و أنبوت 6 لاستقبال ناتج المقارنة
Input6
ازرع في global function
function largest(t)
local maxcount = 0
local maxindex
for index, value in pairs(t) do
if value > maxcount then
maxcount = value
maxindex = index
end
end
return maxcount, maxindex
end
ثم ضع زر في مساحة العمل وضمنه الكود التالي و عاين المقارنة
a = Input.GetText("Input1");
a = String.ToNumber(a);
b = Input.GetText("Input2");
b = String.ToNumber(b);
c = Input.GetText("Input3");
c = String.ToNumber(c);
d = Input.GetText("Input4");
d = String.ToNumber(d);
e = Input.GetText("Input5");
e = String.ToNumber(e);
numbers = {a,b,c,d,e}
Input.SetText("Input6", largest(numbers));
موفق :abc_152:
القنـاص المصرى
26-10-2013, 03:07 PM
تمام جزاكم الله كل خير
ولكنى لم افهم ولا كود ياريت لو حد يفهمنى واحده واحده او يدينى لدرس المتعلق بالعملية دى
لان الغرض من السؤال ليس البرمجة بل رسم خريطة تدفق للمشروع Flow Chart
فانا لما حاولت ارسم خريطة التدفق اولا فشلت فقلت علنى ابرمجه اولا ثم ارسم الخريطة على برمجتى
اما وبعد الفشل فى البرمجة وضعت اسفسار لعلى افهم ماسيتم طرحه الان الحمد لله تمكنا من البرمجة ولم اتمكن من رسم خريطة التدفق
ثامر أبو بلقيس
26-10-2013, 03:31 PM
السلام عليكم
إليك بمقترح لطريقة ثانية حسب عنوان مشاركتك
ماذا لو كانت المقارنة ستتم بين أعداد سالبة
أقترح
في global function
function largest(t)
local maxcount = t[1]
local maxindex = 1
for index, value in pairs(t) do
if value > maxcount then
maxcount = value
maxindex = index
end
end
return maxcount, maxindex
end
ضع زر فيه الكود التالي و لاحظ :
numbers = {-5, -360, -3, -11, -17}
result = Dialog.Message("Notice", largest(numbers));
موفق:abc_152:
عبود عبود
26-10-2013, 07:50 PM
لان الغرض من السؤال ليس البرمجة بل رسم خريطة تدفق للمشروع flow chart
فى أى مجـــال عملك أو دراستك إذا كنت ما زلت طالبا ؟ وهل تدرس هذة اللغــــة "lua" ؟ وما هى مكونات مشروعك هذا ؟ وعن أى شيئ هذا المشروع ؟
القنـاص المصرى
27-10-2013, 04:50 PM
انا ادرس يا اخ عبود فى كلية Computer Science
ولم ادرس لغة ال "lua" المشكلة ان الدكتور ادانا اسيمنت "واجب" لعمل خريطة تدفق "Flow Chart " لمقارنة خمس ارقام ببعض واستخراج الناتج الاكبر والكلام ده فى لغة ال C++ ولكن لم يطلب مشروع لاننا لم يتم شرح لن ا سوى المتغيرات وانواعها فى السى بلس ولم ندخل بعد لل Syantx الخاص بالسى بلس بلس
وحاولت اتغلب على المشكلة دى وفكرت ابرمج شئ بالاوتوبلاى لان يعنى عندى بصيص من الفهم للغة البرمجة فيه يقوم بالعمل واصمم الفلوتشارت على اساسه
ولما وجدت الردود محبطة بالنسبة لى لانى لم افهم ولا كود رحت حاولت وعملت الفلو تشارت دى والمعيد اخبرنى انها صحيحة
http://img34.imageshack.us/img34/5504/ypg1.png
اعلم انها معقدة بعض الشئ وان تطبيقها يحتاج الى مجهود كثير
انا الان اريد فقط اى شرح لما طرحه الاخ ابا بلقيس للاكواد فانا لم افهم شئ وكاد عقلى يختل
كما وددت يا اخ عبود لو تساعدنى وتشرح لى ماهى ال Lua هذه وهل هى داخل الاوتوبلاى ؟ ام لا
فلغة البرمجة التى افهمها جزئيا هى لغة السكربتات الخاصة داخل الاوتوبلاى
واعتذر للاطالة وجزاك الله كل خير
ثامر أبو بلقيس
27-10-2013, 08:06 PM
حتى تستطيع التعبير بـ خرائط التدفق علينا أن نعرف بأن لغة
lua ستقودنا في النهاية إلى Complex logic أي أسلوب معقد
وهو عيب من عيوب خرائط التدفق
لهذا عليك اخي اختيار برمجة ما تريده بطرق سهلة حتى تستطيع
رسم الخريطة مثلا :
نريد معرفة العدد الأكبر لثلاثة أرقام
لاحظ الخريطة التالية
http://www11.0zz0.com/2013/10/27/17/153261440.jpg (http://www.0zz0.com)
عند ترجمتها للغة lua
خذ ثلاث أنبوتات
لتكتب فيها الأرقام و لاحظ الأكواد التي كتبتها مع بساطتها
لو تبني عليها ستحقق ما تريد إن شاء الله
وازرع هذا الكود في زر لينفذ العمل :
x =Input.GetText("Input1");
x = String.ToNumber(x);
y =Input.GetText("Input2");
y= String.ToNumber(y);
z = Input.GetText("Input3");
z = String.ToNumber(z);
----------------
if x >= y and x >= z then
Dialog.Message("Notice", x);
elseif y >= x and y >= z then
Dialog.Message("Notice", y);
elseif z >= x and z >= y then
Dialog.Message("Notice", z);
end
حاولت التفكير معك بقدر ما فهمت
إن وجدت خطأ صححه
ثامر أبو بلقيس
27-10-2013, 08:29 PM
عدل ما تريد ليتناسب مع الخريطة التي أرسلتها
في مشاركتك
a =Input.GetText("Input1");
a = String.ToNumber(a);
b =Input.GetText("Input2");
b= String.ToNumber(b);
c = Input.GetText("Input3");
c = String.ToNumber(c);
d = Input.GetText("Input4");
d = String.ToNumber(d);
e = Input.GetText("Input5");
e = String.ToNumber(e);
----------------
if a >= b and a >= c and a >= d and a >= e then
Dialog.Message("Notice", a);
elseif b >= a and b >= c and b >= d and b >= e then
Dialog.Message("Notice", b);
elseif c >= a and c >= b and c >= d and c >= e then
Dialog.Message("Notice", c);
elseif d >= a and d >= b and d >= c and d >= e then
Dialog.Message("Notice", d);
elseif e >= a and e >= b and e >= c and e >= d then
Dialog.Message("Notice", e);
end
القنـاص المصرى
08-11-2013, 09:24 PM
اخى ابو بلقيس قد ابدعت وساعدتنى جزاك الله كل خير وبوئك من الجنة منزلا
ثامر أبو بلقيس
08-11-2013, 09:46 PM
أخي العزيز بارك الله فيك
لكن وجبت الاشارة إلى أنه البرنامج يقدم لنا تلك
الخدمة بفضل إضافات أو أكواد مدمجة إن صح التعبير
مثال :
table = {344,34,14,546,849,353,22};
for j, k in pairs(table) do
Max = Math.Max (Max, k);
end
result = Dialog.Message("Notice", Max);
فقد يكون كاف لاجراء مقارنة لكن قد لا تصلح في شرح أكاديمي
موفق دائما أخي :abc_022:
القنـاص المصرى
08-11-2013, 09:57 PM
هل تقصد ان هناك اضافة اضع بها خمس ارقام او مصفوفة بها عدة ارقام فيقوم تلقائيا بعمل مقارنة واستخراج الناتج ؟
ان كان نعم فما اسم هذه الاضافة بارك الله فيك
ثامر أبو بلقيس
31-03-2014, 10:45 PM
موفق إن شاء الله :abc_152:
النصل القاطع
01-04-2014, 10:11 AM
هل تقصد ان هناك اضافة اضع بها خمس ارقام او مصفوفة بها عدة ارقام فيقوم تلقائيا بعمل مقارنة واستخراج الناتج ؟
و ماذا لو لم تكن موجودة ؟ :abc_070:
بسيطة
نوجدها :abc_065:
http://im90.gulfup.com/EJcgtZ.png
ان كان نعم فما اسم هذه الاضافة
بسيطة نسميها Table_Sharp_Min_Max
من برمجتى (خارجة للتو من الفرن)
هى تعالج المصفوفة بأى حجم كانت و ليس فقط 5 قيم
فقط يجب أن تكون العناصر داخل المصفوفة رقمية و ليست نصية
مثال لمصفوفة رقمية
my_table ={66,2,3,4,5,9}
مثال لمصفوفة نصية
my_table ={"66","2","3","4","5","9"}
هذه مصفوفة نصية برغم أنها تحتوى على أرقام
البلجن يتعامل مع المصفوفات الرقمية فقط
مثال لإستغلال الإضافة
my_table ={66,2,3,4,5,9}
max = Table_Sharp.Max(my_table);
Dialog.Message("Notice", max, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
min = Table_Sharp.Min(my_table);
Dialog.Message("Notice", min, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
عند تطبيق الكود السابق تكون النتيجة max 66 و 2 min أليس صحيح ؟
التحميل من المرفقات :abc_028:
ملحوظة :-
هذه الإضافة ستندمج فى الإضافة الأكبر التى ستحتويها و سأطلق عليها Table_Sharp_Blade_2014
و ستصدر قريبا
فرح صالحي
01-04-2014, 10:20 AM
السلام عليكم ورحمة الله وبركاته
جازاك الله خيرا كثيرا
جاري التحميل والاستفادة ان شاء الله
موفق بإذن الله ... لك مني أجمل تحية .
:abc_152:
ثامر أبو بلقيس
01-04-2014, 02:07 PM
جزاك الله خيرا وظيفة مفيدة جدا و لاغنى عنها في الاضافة المنتظرة إن شاء الله
شكرا جزيلا موفق خالص تقديري لشخصكم :abc_138:
ثامر أبو بلقيس
26-12-2014, 12:29 PM
:abc_138::abc_138:
ثامر أبو بلقيس
26-12-2014, 12:52 PM
السلام عليكم ورحمة الله وبركاته
اضع بها خمس ارقام او مصفوفة بها عدة ارقام فيقوم تلقائيا بعمل مقارنة واستخراج الناتج
و هذا حل مختصر و أجمل
الرسالة الاولى للأكبر
و الثانية للأصغر و لا يشترط كتابة القيم نصية و لا رقمية و لا حتى التنويع فيهما
my_table ={"3","2","66","4","5","9"}
Dialog.Message("Notice", math.max( unpack(my_table)));
Dialog.Message("Notice", math.min( unpack(my_table)));
بالتوفيق :abc_138:
هذا عن المصفوفة
ثامر أبو بلقيس
28-12-2014, 02:50 PM
واذ لم يتعلق الامر بمصفوفات
هنااا الحل السريع
http://www.abc4web.net/vb/showthread.php?t=30800
vBulletin® v3.8.11, Copyright ©2000-2024, abohmam