النصل القاطع
19-07-2014, 02:38 PM
بسم الله الرحمن الرحيم
السلام عليكم اخوانى
قد يواجه القادمين الجدد على مجال البرمجة بلغات الإسكربت مثل الأوتوبلاى (اللوا) بعض الصعوبات
و قد يقعون فى اخطاء تتسبب فى عدم حصولهم على النتائج الصحيحة
و قد يكرهون البرمجة بسبب هذه الأخطاء البسيطة
لذلك سنكشف لهم هذه الأخطاء حتى لا يقعون فيها
مع العلم ان اقوى المحترفين قد يقع بمثل هذه الأمور نتيجة السرعة أو فقدان التركيز المؤقت نتيجة ضغط العمل
سأقدم لكم الأمثلة تباعا و بتدرج من السهولة للصعوبة
هيا نتابع
الخطأ الأول :: أنواع المتغيرات
my_phone = "010000000000"
if my_phone == 010000000000 then
Dialog.Message("Notice", "صحيح", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
else
Dialog.Message("Notice", "خطأ", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
ملحوظة :: هذا ليس رقم هاتف حقيقى
هنا يفترض العديد من القادمين الجدد ان الرسالة ستقول "صحيح"
لكنهم سيواجهون رسالة تقول "خطأ"
فيم أخطأ المبرمج ليحصل على هذه النتيجة الغير متوقعة ؟؟
الخطأ
مقارنة سترينج مع رقم لا تؤدى ابدا للنتائج الصحيحة
"010000000000" لا تساوى ابدا 010000000000
و لا تساوى اى رقم لأنها ببساطة سترينج و ليست رقم
و لكن "010000000000" تساوى "010000000000"
و أيضا "010000000000" لا تساوى "10000000000"
ولاحظ 010000000000 تساوى010000000000
و المفاجأة
010000000000 تساوى 10000000000
للأرقام أحكام و للإسترنج أحكام
الخلاصة
لا تقارن string مع number
الخطأ الثانى :: طبيعة المتغيرات
my_phone = 010000000000
Dialog.Message("Notice", my_phone, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
هنا يتوقع المبرمج ان تظهر رسالة و بها الرقم 010000000000
لكنهم يفاجئون برسالة و بها 10000000000
اظن عرفتم لماذا
لأن المتغير الرقمى سيهمل فورا أصفار اليسار
لذلك فمن الخطأ الفادح تعيين متغيرات رقمية لأرقام الهواتف و لابد من تعيين متغيرات نصية
أترككم للتجربة
انتظروا الحلقة القادمة
السلام عليكم اخوانى
قد يواجه القادمين الجدد على مجال البرمجة بلغات الإسكربت مثل الأوتوبلاى (اللوا) بعض الصعوبات
و قد يقعون فى اخطاء تتسبب فى عدم حصولهم على النتائج الصحيحة
و قد يكرهون البرمجة بسبب هذه الأخطاء البسيطة
لذلك سنكشف لهم هذه الأخطاء حتى لا يقعون فيها
مع العلم ان اقوى المحترفين قد يقع بمثل هذه الأمور نتيجة السرعة أو فقدان التركيز المؤقت نتيجة ضغط العمل
سأقدم لكم الأمثلة تباعا و بتدرج من السهولة للصعوبة
هيا نتابع
الخطأ الأول :: أنواع المتغيرات
my_phone = "010000000000"
if my_phone == 010000000000 then
Dialog.Message("Notice", "صحيح", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
else
Dialog.Message("Notice", "خطأ", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
ملحوظة :: هذا ليس رقم هاتف حقيقى
هنا يفترض العديد من القادمين الجدد ان الرسالة ستقول "صحيح"
لكنهم سيواجهون رسالة تقول "خطأ"
فيم أخطأ المبرمج ليحصل على هذه النتيجة الغير متوقعة ؟؟
الخطأ
مقارنة سترينج مع رقم لا تؤدى ابدا للنتائج الصحيحة
"010000000000" لا تساوى ابدا 010000000000
و لا تساوى اى رقم لأنها ببساطة سترينج و ليست رقم
و لكن "010000000000" تساوى "010000000000"
و أيضا "010000000000" لا تساوى "10000000000"
ولاحظ 010000000000 تساوى010000000000
و المفاجأة
010000000000 تساوى 10000000000
للأرقام أحكام و للإسترنج أحكام
الخلاصة
لا تقارن string مع number
الخطأ الثانى :: طبيعة المتغيرات
my_phone = 010000000000
Dialog.Message("Notice", my_phone, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
هنا يتوقع المبرمج ان تظهر رسالة و بها الرقم 010000000000
لكنهم يفاجئون برسالة و بها 10000000000
اظن عرفتم لماذا
لأن المتغير الرقمى سيهمل فورا أصفار اليسار
لذلك فمن الخطأ الفادح تعيين متغيرات رقمية لأرقام الهواتف و لابد من تعيين متغيرات نصية
أترككم للتجربة
انتظروا الحلقة القادمة