بوابة الثانوية العامة المصرية

بوابة الثانوية العامة المصرية (https://www.thanwya.com/vb/index.php)
-   أرشيف المنتدى (https://www.thanwya.com/vb/forumdisplay.php?f=513)
-   -   عاجل للأستاذ أحمد قرنى (https://www.thanwya.com/vb/showthread.php?t=518858)

hosam abdelaziz 13-05-2013 10:39 AM

عاجل للأستاذ أحمد قرنى
 
ما هى قيمة r بعد تنفيذ الكود :

dim r as integer = 1
do while r <= 1
r = r - 2
loop
(msgbox(r
لماذا الإجابة overflow

waleedamin 13-05-2013 11:02 AM

الشرط بتاعك نتيجته True
عشان كده هتنفذ المعادله r=r-2 يعنى r=1-2 هتطلع -1
ونوع integer --< r يعنى لازم تكون موجبه وصحيحه
عشان كده
over flow

سيف سالم 13-05-2013 11:41 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة hosam abdelaziz (المشاركة 5269732)
ما هى قيمة r بعد تنفيذ الكود :

dim r as integer = 1
do while r <= 1
r = r - 2
loop
(msgbox(r
لماذا الإجابة overflow

اقتباس:

المشاركة الأصلية كتبت بواسطة waleedamin (المشاركة 5269765)
الشرط بتاعك نتيجته True
عشان كده هتنفذ المعادله r=r-2 يعنى r=1-2 هتطلع -1
ونوع integer --< r يعنى لازم تكون موجبه وصحيحه
عشان كده
over flow

لان القيمة ستكون سالب مالا نهاية
والنوع integer يقع بين سالب وموجب 2 مليار

ماهر احمد اسماعيل 14-05-2013 06:42 PM

الشرط بتاعك نتيجته True
عشان كده هتنفذ المعادله r=r-2 يعنى r=1-2 هتطلع -1
ونوع integer --< r يعنى لازم تكون موجبه وصحيحه
عشان كده
over flow

سيف سالم 14-05-2013 07:33 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة ماهر احمد اسماعيل (المشاركة 5272407)
الشرط بتاعك نتيجته True
عشان كده هتنفذ المعادله r=r-2 يعنى r=1-2 هتطلع -1
ونوع integer --< r يعنى لازم تكون موجبه وصحيحه
عشان كده
over flow

النوع integer يسمح بتخزين السالب مفيش فيه مشكلة
يعنى لو عدلنا السؤال كدا
dim r as integer = 1
do while r = 1
r = r - 2
loop
(msgbox(r
ستكون الاجابة -1 وليست overflow

نسر مصر 14-05-2013 09:02 PM

يرجع السبب الى نوع الحلقة فمثلا الحلقة التزايدية يجب ان يكون خطوة التزايد موجبة أما الحلقة التناقصية يجب ان تكون سالبة

ابو محمد 2 14-05-2013 09:53 PM

الناتج overflow بسب القيمة في أول مره سوف تكون -1 ثم -3 ثم -5 ...... وهكذا حتي يصل الى اقصى مدى الى النوع integer وهو 2147483648- ولن يتوقف التكرار بسب ان الشرط مازال true ولكن تم تجاوز الحد الأقصى لمدى النوع integer وبالتالي تظهر رسالة overflow
مع العلم بأن مدى النوع integer ( من -2147483648 الى +2147483647 )
مثل كتابة قيمة 300 في متغير من النوع byte تظهر رسالة overflow

akoymmf 14-05-2013 10:56 PM

بسم الله الرحمن الرحيم
البيان من النوع Integer يسمح بتخزين القيم الموجبو السالبة على المدى المخصص له
لكن السبب هنا من يظهر خارج المدى بسبب ان بداية التكرار القيمهr = واحد ويتوقف عندما تصبح القيمة r اكبر من واحد وها لن يحدث وذلك اننا ننقص 2 كل مرة فيدخل فى تكرار لانهائى حتى يخرج من مدى توع البيان المعلن
ولتجربة ضع مربع الرسالة داخل التكرار

Dim m As Integer
m = 1
Do While m <= 1
m = m - 2
( MsgBox(m)
Loop

عمر العزونى 16-05-2013 11:13 AM

لا يا اخوانى المدرسين الأعزاء السبب ليس كما تظنون .. جربوا هذا الكود Dim r As Integer = 1
Do While r <= 1
r = r - 2
(MsgBox(r
Loop
ستجدود الشرط true إلى ما لا نهاية والنواتج ( -1،-3،-5،-7،-9،-11،.............ليس له نهاية ... فعندما تطلب منه الناتج بعد انتهاء الحلقة التكرارية فلابد أن لا يستطيع إيجاد ناتج فتظهر رسالة الخطأ " أعلى من المستوى"OverFlow أ/ هشام الصياد.. صفط تراب

hany2014 16-05-2013 12:15 PM

هل يمكن استدعاء الاجراء قبل الاعلان عنه كما فى صفحة 85

hassanalhawy 16-05-2013 12:28 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة hany2014 (المشاركة 5275784)
هل يمكن استدعاء الاجراء قبل الاعلان عنه كما فى صفحة 85

نعم يمكن . ولكن فى أول الأمر سوف ينبهك البرنامج إلى وجود خطأ من عدم وجود الإجراء الذى تم استدعاءه ، وبعد الإعلان عنه يزول هذا الخطأ

hassanalhawy 16-05-2013 12:29 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة سيف سالم (المشاركة 5269803)
لان القيمة ستكون سالب مالا نهاية
والنوع integer يقع بين سالب وموجب 2 مليار

كلام صحيح
بارك الله فيك أستاذ / سيف

magdy3030 16-05-2013 01:21 PM

هل يتم طباعة كتب الكمبيوتر في المرحلة الاعدادية في العام القادم وما وضع المادة في العام القادم برجاء الرد لمن يعلم اي حاجة

magdy3030 16-05-2013 01:25 PM

سؤال هام جداً
 
هل يتم طباعة كتب الكمبيوتر في المرحلة الاعدادية في العام القادم وما وضع المادة في العام القادم برجاء الرد لمن يعلم اي حاجة

hany2014 16-05-2013 09:26 PM

حد ممكن يفهمنى حل السؤال الثالث رقم 1 فى نموزج اختبار رقم 1
حدد قيمه كل متغير بعد تنفيذ الكود

المتغير
القيمة
C
11
K
7
N
11
Dim N, K, C As Integer
C = 10For N = 1 To 10 Step 5 K = K + N
Next

IF N >= C Then
C = C + 1
End IF


جميع الأوقات بتوقيت GMT +2. الساعة الآن 11:59 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.