اهلا وسهلا بك فى بوابة الثانوية العامة ... سجل الان

العودة   بوابة الثانوية العامة المصرية > القسم الإداري > أرشيف المنتدى

أرشيف المنتدى هنا نقل الموضوعات المكررة والروابط التى لا تعمل

مشاهدة نتائج الإستطلاع: هل تريد البرنامج المقرر Visual Basic 2008 express
نعم أريدة وأحتاجة 74 86.05%
لا شكراً غير مهم 12 13.95%
المصوتون: 86. أنت لم تصوت في هذا الإستطلاع

 
 
أدوات الموضوع ابحث في الموضوع انواع عرض الموضوع
  #1  
قديم 24-05-2013, 01:59 PM
tmrmsr tmrmsr غير متواجد حالياً
عضو ممتاز
 
تاريخ التسجيل: Aug 2012
المشاركات: 303
معدل تقييم المستوى: 13
tmrmsr is on a distinguished road
Smile

اقتباس:
المشاركة الأصلية كتبت بواسطة hass****hawy مشاهدة المشاركة
الخطأ لم يكن فى الأمر Return total ولكنه حدث فى الأمر total = First + second
وكما ذكرت حضرتك فإن total نوعها Short سوف تستقبل ناتج الجمع دون مشاكل
فكيف يظهر الخطأ فى total = First + second
الخطأ حدث عن تنفيذ السطر total = First + second
بسبب عندما يتم جمع قيمة المتغير First الذي نوعه Byte والمتغير Second الذي نوع Byte
ناتج الجمع يتم تمثيله أيضا في شكل Byte
وبما أن ناتج الجمع أكبر من الحد المسموع يحدث خطأ Runtime

لو القيمة في الحد المسموح يتم تحويل الناتج الذي نوعه Byte إلى Short
ليخزن في المتغير Total

ثم يتم تحويل المتغير Total إلى Byte ويرجع للدالة

وحلا لهذا الوضع
قم بعمل تحويل صريح
total =CShort( First) +CShort ( second)

ستجد الخطأ يظهر في سطر Return Total
  #2  
قديم 25-05-2013, 02:27 PM
سيف سالم سيف سالم غير متواجد حالياً
مــٌــعلــم
 
تاريخ التسجيل: Jul 2008
العمر: 57
المشاركات: 4,642
معدل تقييم المستوى: 22
سيف سالم is on a distinguished road
افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة tmrmsr مشاهدة المشاركة
1- يجوز الإعلان عن متغير أو غيره نوع بيانه يختلف عن نوع بيان الدالة ثم نجعله القيمة الراجعة (Value)
2- عندما تستقبله الدالة عند استدعائها يتم تحويله لنفس نوع بيان الدالة
حيث أن الدالة Sum نوع بيانها Byte وتم استخدام المتغير Total المعلن في نطاق الدالة Sum بنوع بيان Short كقيمة راجعة

3- عند استدعاء الدالة Sum في نطاق معالج الحدث الخاص ب Button1
تم تخصيص قيمة للوسيط الأول والوسيط الثاني أكبر من مدى نوع بيان الدالة وهذا لا يجوز فيتسبب في خطأ Runtime
منها نخلص
عند استدعاء الدالة لابد من تخصيص قيم من نفس نوع بيان وسائط الدالة أو يمكن تحويلها لهذا النوع وأن تكون في مدى القيم المسموح بها
الإعلان عن الدالة سليم لكن الاستدعاء لم يلتزم بمواصفات الدالة (مجازا)
اقتباس:
المشاركة الأصلية كتبت بواسطة tmrmsr مشاهدة المشاركة
في زر Button 2
تم تخصيص قيمة من خلال ناتج تعبير 255+1
التي هي في حدود نطاق مدى نوع المتغير

لذلك عرضت الرسالة
ولم يحدث خطأ

لكن في زر Button1
المتغير استقبل القيمة لأنها تناسبه لكن عند تحويلها لنوع بيان الدالة القيمة أصبحت خارج نطاق نوع بيان الدالة
فحدث خطأ Overflow
وشكرا
اقتباس:
المشاركة الأصلية كتبت بواسطة tmrmsr مشاهدة المشاركة
معذرة
ناتج الجمع وعند التحويل لنوع بيان الدالةbyte
اقتباس:
المشاركة الأصلية كتبت بواسطة tmrmsr مشاهدة المشاركة
الأمر يحتاج لبحث واطلاع امهلني بعض من الوقت
اقتباس:
المشاركة الأصلية كتبت بواسطة tmrmsr مشاهدة المشاركة
الخطأ حدث عن تنفيذ السطر total = First + second
بسبب عندما يتم جمع قيمة المتغير First الذي نوعه Byte والمتغير Second الذي نوع Byte
ناتج الجمع يتم تمثيله أيضا في شكل Byte
وبما أن ناتج الجمع أكبر من الحد المسموع يحدث خطأ Runtime


لو القيمة في الحد المسموح يتم تحويل الناتج الذي نوعه Byte إلى Short
ليخزن في المتغير Total


ثم يتم تحويل المتغير Total إلى Byte ويرجع للدالة

وحلا لهذا الوضع
قم بعمل تحويل صريح
total =CShort( First) +CShort ( second)

ستجد الخطأ يظهر في سطر Return Total
اولا نتوجه بالشكر للاستاذ تامر
"تم تخصيص قيمة للوسيط الأول والوسيط الثاني أكبر من مدى نوع بيان الدالة وهذا لا يجوز فيتسبب في خطأ Runtime"
هل هذا استنتاج ام مسند الى رأي علمى
"المتغير استقبل القيمة لأنها تناسبه"
طبعا المتغير لم يستقبله من الاساس رغم ان القيمة تناسبة تماما ولم تتخطى المدى short
"
حدث عن تنفيذ السطر total = First + second
بسبب عندما يتم جمع قيمة المتغير First الذي نوعه Byte والمتغير Second الذي نوع Byte
ناتج الجمع يتم تمثيله أيضا في شكل Byte
وبما أن ناتج الجمع أكبر من الحد المسموع يحدث خطأ Runtime
"
طبعا ناتج الجمع 256 يناسب النوع short تماما بعكس ما ذكرتم وحدث الخطأ وهذا هو المطلوب تفسيره لماذا لم يقبل النوع short تخزين 256 التى تناسب معه
"لو القيمة في الحد المسموح يتم تحويل الناتج الذي نوعه Byte إلى Short
ليخزن في المتغير Total
"
القيمة 256 في الحد المسموح للمكان التى ستخصص له total
وحلا لهذا الوضع
نحن لا نريد حلا ولكن نريد تفسير ليه متغير يرفض قبول قيمة مسموح بها في نطاقه في مكان ويقبلها في مكان اخر

طبعا الهدف ليس سوى الوصول الصح ايه
هل ما بعد return القيمة الراجعة نوعها هو النوع ما بعد as في تعريف الدالة ام لا

 

العلامات المرجعية

الكلمات الدلالية (Tags)
أبوزياد, اتفة الفصل الرابع وورد, شرح الترم الثاني فيديو


ضوابط المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا يمكنك اضافة مرفقات
لا يمكنك تعديل مشاركاتك

BB code متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع


جميع الأوقات بتوقيت GMT +2. الساعة الآن 09:41 PM.