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

مشاهدة النسخة كاملة : اين هو المنطق في البرمجة؟؟


سعيدون
16-02-2015, 10:37 PM
اسمحوا اخواني ان اشرح لكم هذه الخطوة وهي من اولى خطواتي في كتابة الاكواد
فكرت ان اصنع آلة حاسبة متواضعة
وكان المشكل في زر القسمة الذي احتوى على الكود التالي
x = Input.GetText("Input1");
y = Input.GetText("Input3");
z = Input.GetText("Input4");
if Input.GetText("Input3",nil) then
Dialog.Message("Notice", "impossible de diviser par zero", MB_OK);
else
Input.SetText("Input4", x/y);
end

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

ثامر أبو بلقيس
16-02-2015, 11:16 PM
السلام عليكم ورحمة الله وبركاته

أنت كتبت :
x = Input.GetText("Input1");
y = Input.GetText("Input3");
z = Input.GetText("Input4");
if Input.GetText("Input3") then
Dialog.Message("Notice", "impossible de diviser par zero", MB_OK);
else
Input.SetText("Input4", x/y);
end

بغض النظر عن المنطق الحسابي لأن بالتأكيد 0/0 غير مقبول و لا يعطي نواتج
كما لا تنس أن أنبوت فارغ يجب تحويل محتواها لقيمة رقمية و ليس نصية
لأن 0/0 ليست هي أنبوت فارغ / أنبوت فارغ
----------------------------------------------------------
هذا لا يهم المهم هو شوف دالة الشرط التي كتبتها الدالة على
اذا كان الانبوت 3 قم بإظهار رسالة و إن لم يكن فقم بعملية قسمة

بدون تعب الشرط المطروح يتحقق دوما و بالتالي تظهر الرسالة دون المرور
للاجراء الثاني مع ملاحظة أن الشرط المكتوب غير منطقي
--------------------------
أخي الدالة صياغتها خاطئة والقسمة على صفر لها منطق برمجي يتوافق مع الرياضي
موفق :abc_138:
Dialog.Message("Notice", 12/0 );

-------------------------------------
x = String.ToNumber(Input.GetText("Input1"));
y = String.ToNumber(Input.GetText("Input3"));
v = x/y
if y==0 then
Dialog.Message("Notice", "impossible de diviser par zero", MB_OK);
else
Input.SetText("Input4", x/y);
end

سعيدون
16-02-2015, 11:36 PM
السلام عليكم ورحمة الله وبركاته

أنت كتبت :
x = input.gettext("input1");
y = input.gettext("input3");
z = input.gettext("input4");
if input.gettext("input3") then
dialog.message("notice", "impossible de diviser par zero", mb_ok);
else
input.settext("input4", x/y);
end

بغض النظر عن المنطق الحسابي لأن بالتأكيد 0/0 غير مقبول و لا يعطي نواتج
كما لا تنس أن أنبوت فارغ يجب تحويل محتواها لقيمة رقمية و ليس نصية
لأن 0/0 ليست هي أنبوت فارغ / أنبوت فارغ
----------------------------------------------------------
هذا لا يهم المهم هو شوف دالة الشرط التي كتبتها الدالة على
اذا كان الانبوت 3 قم بإظهار رسالة و إن لم يكن فقم بعملية قسمة

بدون تعب الشرط المطروح يتحقق دوما و بالتالي تظهر الرسالة دون المرور
للاجراء الثاني مع ملاحظة أن الشرط المكتوب غير منطقي
--------------------------
أخي الدالة صياغتها خاطئة والقسمة على صفر لها منطق برمجي يتوافق مع الرياضي
موفق :abc_138:
dialog.message("notice", 12/0 );

-------------------------------------
x = string.tonumber(input.gettext("input1"));
y = string.tonumber(input.gettext("input3"));
v = x/y
if y==0 then
dialog.message("notice", "impossible de diviser par zero", mb_ok);
else
input.settext("input4", x/y);
end

شكرا لك استاذي ابو بلقيس البهي على الشرح المنطقي وعلى سرعة الاستجابة
فعلا كنت رائعا

سعيدون
16-02-2015, 11:49 PM
السلام عليكم ورحمة الله وبركاته

أنت كتبت :
x = input.gettext("input1");
y = input.gettext("input3");
z = input.gettext("input4");
if input.gettext("input3") then
dialog.message("notice", "impossible de diviser par zero", mb_ok);
else
input.settext("input4", x/y);
end

بغض النظر عن المنطق الحسابي لأن بالتأكيد 0/0 غير مقبول و لا يعطي نواتج
كما لا تنس أن أنبوت فارغ يجب تحويل محتواها لقيمة رقمية و ليس نصية
لأن 0/0 ليست هي أنبوت فارغ / أنبوت فارغ
----------------------------------------------------------
هذا لا يهم المهم هو شوف دالة الشرط التي كتبتها الدالة على
اذا كان الانبوت 3 قم بإظهار رسالة و إن لم يكن فقم بعملية قسمة

بدون تعب الشرط المطروح يتحقق دوما و بالتالي تظهر الرسالة دون المرور
للاجراء الثاني مع ملاحظة أن الشرط المكتوب غير منطقي
--------------------------
أخي الدالة صياغتها خاطئة والقسمة على صفر لها منطق برمجي يتوافق مع الرياضي
موفق :abc_138:
dialog.message("notice", 12/0 );

-------------------------------------
x = string.tonumber(input.gettext("input1"));
y = string.tonumber(input.gettext("input3"));
v = x/y
if y==0 then
dialog.message("notice", "impossible de diviser par zero", mb_ok);
else
input.settext("input4", x/y);
end

رغم ذلك الكود لا يستجيب ويعود باخطاء
شكرا

سعيدون
17-02-2015, 12:10 AM
للافادة
ها هو الكود الذي اشتغل معي:

x = Input.GetText("Input1");
y = String.ToNumber(Input.GetText("Input3"));
z = Input.GetText("Input4");
if String.ToNumber(Input.GetText("Input3")) == 0 then
Dialog.Message("Notice", "impossible de diviser par zero", MB_OK);
else
Input.SetText("Input4", x/y);
end

ثامر أبو بلقيس
17-02-2015, 07:29 AM
السلام عليكم ورحمة الله وبركاته
فكرت ان اصنع آلة حاسبة
أحسنت الاختيار فهذا أفضل بكثير من تجميع برامج تحت ازرار ثم البحث عن حماية لها :abc_083:
موفق :abc_138:

ثامر أبو بلقيس
17-02-2015, 03:24 PM
السلام عليكم ورحمة الله وبركاته

فقط للاستفادة من بعض لا أكثر

لقد قلت في آخر مشاركة لك
للافادة
ها هو الكود الذي اشتغل معي:

x = Input.GetText("Input1");
y = String.ToNumber(Input.GetText("Input3"));
z = Input.GetText("Input4");
if String.ToNumber(Input.GetText("Input3")) == 0 then
Dialog.Message("Notice", "impossible de diviser par zero", MB_OK);
else
Input.SetText("Input4", x/y);
end

أترك الانبوت رقم 1 فارغ " لا تكتب فيه شيء " و أكتب أي رقم في الانبوت 3

ماهو الناتج ؟؟؟

طبعا سيعود الناتج بالخطأ أليس كذلك ؟

وقلت في مشاركة قبلها لكود كتبته لك حتى و أنه فيه اعلان زائد
رغم ذلك الكود لا يستجيب ويعود باخطاء
شكرا
وتقصد
x = String.ToNumber(Input.GetText("Input1"));
y = String.ToNumber(Input.GetText("Input3"));
v = x/y
if y==0 then
Dialog.Message("Notice", "impossible de diviser par zero", MB_OK);
else
Input.SetText("Input4", x/y);
end
المطلوب وضحت لك خطأك في الكود المكتوب للافادة
جيد لو توضح لي الخطأ و للقاريء في الكود المرسل لك للاستفادة أكثر تقديري :abc_138: