|
أرشيف المنتدى هنا نقل الموضوعات المكررة والروابط التى لا تعمل |
مشاهدة نتائج الإستطلاع: هل تريد البرنامج المقرر Visual Basic 2008 express | |||
نعم أريدة وأحتاجة |
![]() ![]() ![]() ![]() |
74 | 86.05% |
لا شكراً غير مهم |
![]() ![]() ![]() ![]() |
12 | 13.95% |
المصوتون: 86. أنت لم تصوت في هذا الإستطلاع |
|
أدوات الموضوع | ابحث في الموضوع | انواع عرض الموضوع |
#826
|
||||
|
||||
![]()
أنظر لهذا التعديل وستعجب له
Function Sum(ByVal First As String, ByVal second As String) As Byte Dim total As String total = First + second Return total End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MsgBox(Sum("255", "1")) End Sub ستجد أن الخطأ ظهر فى سطر Return total
__________________
يخطئ من يظن أن للذئاب ديناً
|
#827
|
|||
|
|||
![]()
ورد لي سؤال على البريد الخاص وليس من صلاحياتي الرد لأن مشاركاتي أقل من 500 مشاركة ولذلك أطرحه حتى نتشارك الإستفادة
كان نص السؤال سؤال نرجو الرد عليه مع التفسير Public Class Form1 طبعا مع التفسيرFunction Sum(ByVal First As Byte, ByVal second As Byte) As Byte Dim total As Short total = First + second Return total End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MsgBox(Sum(255, 1)) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim total As Short total = 255 + 1 MsgBox(total)) End Sub End Class عند الضغط على button2 ماذا يحدث عند الضغط على button1 ماذا يحدث |
#828
|
||||
|
||||
![]()
ممكن حضرتك الإنتقال للرابط التالى حيث تم إثارة الموضوع وبه العديد من المناقشات
مطلوب الحل فورا
__________________
يخطئ من يظن أن للذئاب ديناً
|
#829
|
|||
|
|||
![]()
1- يجوز الإعلان عن متغير أو غيره نوع بيانه يختلف عن نوع بيان الدالة ثم نجعله القيمة الراجعة (Value)
2- عندما تستقبله الدالة عند استدعائها يتم تحويله لنفس نوع بيان الدالة حيث أن الدالة Sum نوع بيانها Byte وتم استخدام المتغير Total المعلن في نطاق الدالة Sum بنوع بيان Short كقيمة راجعة 3- عند استدعاء الدالة Sum في نطاق معالج الحدث الخاص ب Button1 تم تخصيص قيمة للوسيط الأول والوسيط الثاني أكبر من مدى نوع بيان الدالة وهذا لا يجوز فيتسبب في خطأ Runtime منها نخلص عند استدعاء الدالة لابد من تخصيص قيم من نفس نوع بيان وسائط الدالة أو يمكن تحويلها لهذا النوع وأن تكون في مدى القيم المسموح بها الإعلان عن الدالة سليم لكن الاستدعاء لم يلتزم بمواصفات الدالة (مجازا) آخر تعديل بواسطة tmrmsr ، 24-05-2013 الساعة 10:12 AM سبب آخر: تصويب |
#830
|
||||
|
||||
![]()
الغريب أن نوع بيان المعاملات First و second يؤثر فى مكان حدوث الخطأ
فعندما يكون نوع بيان المعاملات First و second نفس نوع بيان الدالة وهو Byte يحدث الخطأ عند الأمر total = First + second و عندما يكون نوع بيان المعاملات First و second نفس نوع بيان القيمة الراجعة total وهو مثلاً Short يحدث الخطأ عند الأمر Return total
__________________
يخطئ من يظن أن للذئاب ديناً
|
#831
|
||||
|
||||
![]()
255 ليست أكبر من مدى الـ Byte
((MsgBox(Sum(255, 1
__________________
يخطئ من يظن أن للذئاب ديناً
|
#832
|
|||
|
|||
![]()
في زر Button 2
تم تخصيص قيمة من خلال ناتج تعبير 255+1 التي هي في حدود نطاق مدى نوع المتغير لذلك عرضت الرسالة ولم يحدث خطأ لكن في زر Button1 المتغير استقبل القيمة لأنها تناسبه لكن عند تحويلها لنوع بيان الدالة القيمة أصبحت خارج نطاق نوع بيان الدالة فحدث خطأ Overflow وشكرا |
#833
|
|||
|
|||
![]()
معذرة
ناتج الجمع وعند التحويل لنوع بيان الدالةbyte |
#834
|
||||
|
||||
![]()
الخطأ لم يكن فى الأمر Return total ولكنه حدث فى الأمر total = First + second
وكما ذكرت حضرتك فإن total نوعها Short سوف تستقبل ناتج الجمع دون مشاكل فكيف يظهر الخطأ فى total = First + second
__________________
يخطئ من يظن أن للذئاب ديناً
|
#835
|
||||||||
|
||||||||
![]()
ممكن حضرتك تنظر لتلك المناقشات
اقتباس:
اقتباس:
اقتباس:
اقتباس:
اقتباس:
اقتباس:
اقتباس:
اقتباس:
__________________
يخطئ من يظن أن للذئاب ديناً
|
#836
|
|||
|
|||
![]()
الأمر يحتاج لبحث واطلاع امهلني بعض من الوقت
|
#837
|
||||
|
||||
![]() اقتباس:
هو ده الكلام المظبوط والاستنتاج الصحيح يا مستر حسن
__________________
يارب ارفع عنَّا وعن مصر الفتن ما ظهر منها وما بطن واحفظ بلاد المسلمين من كل شر وسوء يا أرحم الراحمين
|
#838
|
|||
|
|||
![]() اقتباس:
بسبب عندما يتم جمع قيمة المتغير First الذي نوعه Byte والمتغير Second الذي نوع Byte ناتج الجمع يتم تمثيله أيضا في شكل Byte وبما أن ناتج الجمع أكبر من الحد المسموع يحدث خطأ Runtime لو القيمة في الحد المسموح يتم تحويل الناتج الذي نوعه Byte إلى Short ليخزن في المتغير Total ثم يتم تحويل المتغير Total إلى Byte ويرجع للدالة وحلا لهذا الوضع قم بعمل تحويل صريح total =CShort( First) +CShort ( second) ستجد الخطأ يظهر في سطر Return Total |
#839
|
||||
|
||||
![]()
لقد قمت بتطبيق ما قلته فى كود برمجة عادى وكانت النتيجة مشابهة
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ولكن ما علاقة ناتج الجمع 256 بالـ Byte Dim total As Short Dim first, Second As Byte first = 255 Second = 1 total = first + Second MsgBox(total) End Sub هل هذا له علاقة بكيفية معالجة البيانات داخل المعالج .؟ وإذا كان الأمر كذلك فهل هذه المعالجة لها إمتداد فى الذاكرة ؟ وهل عملية الإستدعاء من الذاكرة قبل المعالجة لها تأثير فى عملية التخزين؟ نريد توضيح لأن الأمر مبهم
__________________
يخطئ من يظن أن للذئاب ديناً
|
#840
|
||||
|
||||
![]()
وممكن توضح بنفس الكيفية ما الذى يحث عند تنفيذ الكود التالى
function sum(byval first as byte, byval second as short) as byte dim total as short total = first + second return total end function private sub button1_click(byval sender as system.object, byval e as system.eventargs) handles button1.click msgbox(sum(255, 1)) end sub
__________________
يخطئ من يظن أن للذئاب ديناً
|
العلامات المرجعية |
الكلمات الدلالية (Tags) |
أبوزياد, اتفة الفصل الرابع وورد, شرح الترم الثاني فيديو |
أدوات الموضوع | ابحث في الموضوع |
انواع عرض الموضوع | |
|
|