مشاهدة النسخة كاملة : تـــوضــــــــــيــــح الامر For ... Next ، برجاء المشاركة


أحـمد قرنى
07-04-2011, 07:30 PM
تتبع قيم المتغيرات التالية
X = 4.5
For I = 0 TO 7 Step3
X = X * 2
Next

تباينت الاراء حول قيم المتغير i ما بين أن المتغير i يأخذ القيم 0 و 3 و 6 .

,وأراء أخرى توضح ان قيم المتغير i هى 0 و 3 و 6 و 9 .


أرجو المشاركة بأراء حضراتكم مع توضيح وجهات النظر

أحـمد قرنى
07-04-2011, 07:34 PM
فى رأى المتواضع أن قيم المتغير i هى 0 و 3 و 6 و 9
ويجب أن يصل المتغير i للقيمة 9 حتى تكون أكبر من القيمة النهائية 7 وبالتالى ينتهى التكرار .

بس المشكلة لو أتت اختيارى كما جاءت فى امتحان القاهرةكالاتى
قيمة المتغير i هى ( 6 - 9 - 13 )
عايز اعرف ف الحالى السابقة تعتبر أى قيمة أصح بخصوص القيمة 6 أو 9

أرجو المشاركة بأرائكم

سيف سالم
07-04-2011, 09:46 PM
تتبع قيم المتغيرات التالية
X = 4.5
For I = 0 TO 7 Step3
X = X * 2
Next

تباينت الاراء حول قيم المتغير i ما بين أن المتغير i يأخذ القيم 0 و 3 و 6 .

,وأراء أخرى توضح ان قيم المتغير i هى 0 و 3 و 6 و 9 .


أرجو المشاركة بأراء حضراتكم مع توضيح وجهات النظر
dim x as byte
اليس قيمة x صفر عند تنفيذ الخطوة السابقة


dim x as byte
dim y as byte
اليس قيمة x ما زالت صفر عند تنفيذ الخطوة السابقة


dim x as byte
dim y as byte
for y=1 to 3
next
اليس قيمة x ما زالت صفر عند تنفيذ الخطوة السابقة



dim x as byte
dim y as byte
for y=1 to 3
next
msgbox(x)s
اليس قيمة x ما زالت صفر عند تنفيذ الخطوة السابقة

اذا كانت الاجابة صحيحة في جميع المراحل السابقة




X = 4.5
For I = 0 TO 7 Step3
X = X * 2
Next
فهل قيمة i عند تنفيذ هذه الخطوة
ستتغير لو تم اضافة هذة الخطوة
X = 4.5
For I = 0 TO 7 Step3
X = X * 2
Next
x=x+1
اذا كانت الاجابة لا تتغير
فهل ستتغير لو تم اضافة هذة الخطوة
X = 4.5
For I = 0 TO 7 Step3
X = X * 2
Next
x=x+1
msgbox(i)s

اذا كانت الاجابة لا تتغير

فأن i=9

أحـمد قرنى
07-04-2011, 11:30 PM
أستاذ سيف بعد إذن حضرتك انا عايز قيمة المتغير i فى المثال السابق بدون ذكر ال msgbox .

وبالنسبة لو أتت اختيارى لماذا لم اختار القيمة 6 وهى أيضاً أحد قيم المتغير i .

سيف سالم
08-04-2011, 08:49 AM
أستاذ سيف بعد إذن حضرتك انا عايز قيمة المتغير i فى المثال السابق بدون ذكر ال msgbox .

وبالنسبة لو أتت اختيارى لماذا لم اختار القيمة 6 وهى أيضاً أحد قيم المتغير i .
انا سألت سؤال اذا كانت اجابة سؤالي كما جاءت بمشاركتي
فانه يتم اختيار 9 وليس 6

أحـمد قرنى
08-04-2011, 10:07 AM
انا سألت سؤال اذا كانت اجابة سؤالي كما جاءت بمشاركتي
فانه يتم اختيار 9 وليس 6

أستاذ سيف معذرة ( ممكن تيسط لى الامور شوية ) :
أنا عارف ان لو أتت ال Msgbox بعد كلمة next هتكون قيمة i هى 9 .
بينما لو اتت ال msgbox قبل كلمة next هتكون قيم i هى 0 و 3 و 6 .

بس المشكلة أن فى جميع امتحاناة المحافظات السابقة ونماذج الوزارة بيأتى بالمثال بدون ذكر ال msgbox .
كلاالتى
x = 4
for i = 0 to 7 step3
x = x * 2
next

فى هذه الحالة قيم i داخل التكرار هى 0 و 3 و 6
بينما قيمة i خارج التكرار هى 9 , وهى القيمة التى يتوقف فيها العداد عن التكرار .

مما سبق لماذا يتم ذكر القيمة 9 وهى خارج التكرار وأيضاً القيمة النهائية عندى أقصاها 7 .
,ولماذا لم يتم اختيار القيمة 6 لو أتت اختيارى وخاصة أنها ايضاً من قيم i .

ابو كيرلس
08-04-2011, 12:01 PM
المعروف من تعريف مكونات الأمر For...........next
ومن خلال ال Looping المعروض الأتى
Counter هو i
Start هو 0
End هو 7
Step هى اختيارية وفى حالتنا هذه هى 3 اى ان فى كل مرة يزود 3
فيصبح التكرار كالتالى ( 0 , 3 , 6 ) ويتوقف بعدها لان نهاية التكرار هى 7 فلو وصل الى 9 يعطى خطاً

كذلك تسأل ما علاقة المتغير i والمتغير X لو هناك علاقة لكانت كالتالى
Dim x as inetger
For x = 0 to 7 step 3
x=x*2
next
لاحظ الأمثلة التالية

•لتغيير قيم العداد للحصول على الترتيب التالي:
19,18,17,16,15,14
فإن العداد يقل بمقدار 1 ، ويبدأ من 19 وينتهي عند 14 :
For I = 19 To 14 Step -1
•لتغيير قيم العداد للحصول على الترتيب التالي:
19,17,15,13
فإن العداد يقل بمقدار 2 ، ويبدأ من 19 وينتهي عند 13 :
For I = 19 To 13 Step -2
سؤال امتحان محافظى العام السابق التمرين التالى
اذا كانت for x = 5 to 10 فأن عدد مرات التكرار هى ....... والأجابة هى 6 لان التكرار كان كالتالى ( 5 , 6 , 7 , 8 , 9 , 10 )

سيف سالم
08-04-2011, 09:04 PM
أستاذ سيف معذرة ( ممكن تيسط لى الامور شوية ) :
أنا عارف ان لو أتت ال Msgbox بعد كلمة next هتكون قيمة i هى 9 .
بينما لو اتت ال msgbox قبل كلمة next هتكون قيم i هى 0 و 3 و 6 .

بس المشكلة أن فى جميع امتحاناة المحافظات السابقة ونماذج الوزارة بيأتى بالمثال بدون ذكر ال msgbox .
كلاالتى
x = 4
for i = 0 to 7 step3
x = x * 2
next

فى هذه الحالة قيم i داخل التكرار هى 0 و 3 و 6
بينما قيمة i خارج التكرار هى 9 , وهى القيمة التى يتوقف فيها العداد عن التكرار .

مما سبق لماذا يتم ذكر القيمة 9 وهى خارج التكرار وأيضاً القيمة النهائية عندى أقصاها 7 .
,ولماذا لم يتم اختيار القيمة 6 لو أتت اختيارى وخاصة أنها ايضاً من قيم i .

x = 4
ماذا يحدث بعد تنفيذ الخطوة السابقة
اليس قيمة المتغير x في الذاكرة 4


for i = 0 to 7 step3
ماذا يحدث بعد تنفيذ الخطوة السابقة
اليس قيمة المتغير i في الذاكرة 0


x = x * 2
ماذا يحدث بعد تنفيذ الخطوة السابقة
اليس قيمة المتغير x في الذاكرة 8
next
ماذا يحدث بعد تنفيذ الخطوة السابقة
اليس يعود البرنامج الى الخطوة التالية
for i = 0 to 7 step3
مع زيادة i قيمة 3 فتكون قيمة i في الذاكرة 3
فيقوم البرنامج بتفيذ
x = x * 2
ويكون قيمة x هي 16
ثم
next
ماذا يحدث بعد تنفيذ الخطوة السابقة
اليس يعود البرنامج الى الخطوة التالية
for i = 0 to 7 step3
مع زيادة i قيمة 3 فتكون قيمة i في الذاكرة 6
فيقوم البرنامج بتفيذ
x = x * 2
ويكون قيمة x هي 32
ثم
next
ماذا يحدث بعد تنفيذ الخطوة السابقة
مما لا شك فيه البرنامج لن يتوقف هنا
الن يعود البرنامج الى الخطوة التالية
for i = 0 to 7 step3
مع زيادة i قيمة 3 فتكون قيمة i في الذاكرة 9
فيذهب البرنامج الى خارج loop فلا يجد شئ فيتوقف

أحـمد قرنى
08-04-2011, 09:30 PM
x = 4
ماذا يحدث بعد تنفيذ الخطوة السابقة
اليس قيمة المتغير x في الذاكرة 4


for i = 0 to 7 step3
ماذا يحدث بعد تنفيذ الخطوة السابقة
اليس قيمة المتغير i في الذاكرة 0


x = x * 2
ماذا يحدث بعد تنفيذ الخطوة السابقة
اليس قيمة المتغير x في الذاكرة 8
next
ماذا يحدث بعد تنفيذ الخطوة السابقة
اليس يعود البرنامج الى الخطوة التالية
for i = 0 to 7 step3
مع زيادة i قيمة 3 فتكون قيمة i في الذاكرة 3
فيقوم البرنامج بتفيذ
x = x * 2
ويكون قيمة x هي 16
ثم
next
ماذا يحدث بعد تنفيذ الخطوة السابقة
اليس يعود البرنامج الى الخطوة التالية
for i = 0 to 7 step3
مع زيادة i قيمة 3 فتكون قيمة i في الذاكرة 6
فيقوم البرنامج بتفيذ
x = x * 2
ويكون قيمة x هي 32
ثم
next
ماذا يحدث بعد تنفيذ الخطوة السابقة
مما لا شك فيه البرنامج لن يتوقف هنا
الن يعود البرنامج الى الخطوة التالية
for i = 0 to 7 step3
مع زيادة i قيمة 3 فتكون قيمة i في الذاكرة 9
فيذهب البرنامج الى خارج loop فلا يجد شئ فيتوقف





خالص امتنانى وشكرى لحضرتك
وجزاك الله كل الخير

أحـمد قرنى
08-04-2011, 09:35 PM
أستاذ سيف رجاء خاص من حضرتك
عمل الموضوع الخاص بأنت تسأل وجميع الاسئلة تجيب ، مع رجائنا التام أن حضرتك تطلع عليه بصفة يومية حتى يكون مرجع للجميع . لان عندى الكثير من الاسئلة اللى عايز أطرحها وأتمنى أن يستفيد منها الجميع .
بدلاً من أن يقوم كل زميل بعمل موضوع معين لسؤال خاص به .

سيف سالم
08-04-2011, 09:52 PM
أستاذ سيف رجاء خاص من حضرتك
عمل الموضوع الخاص بأنت تسأل وجميع الاسئلة تجيب ، مع رجائنا التام أن حضرتك تطلع عليه بصفة يومية حتى يكون مرجع للجميع . لان عندى الكثير من الاسئلة اللى عايز أطرحها وأتمنى أن يستفيد منها الجميع .
بدلاً من أن يقوم كل زميل بعمل موضوع معين لسؤال خاص به .

ان شاء الله
منه لله اخصائي الاعدادي

زياد_عاطف
09-04-2011, 08:37 AM
تتبع قيم المتغيرات التالية
X = 4.5
For I = 0 TO 7 Step3
X = X * 2
Next

تباينت الاراء حول قيم المتغير i ما بين أن المتغير i يأخذ القيم 0 و 3 و 6 .

,وأراء أخرى توضح ان قيم المتغير i هى 0 و 3 و 6 و 9 .


أرجو المشاركة بأراء حضراتكم مع توضيح وجهات النظر
=====+++عند بداية تنفيذ المر For ...Next تخزن القيمة الإبتدائية للعداد فى العداد I فتصبح قيمته 0 = و طالما انها أقل من او تساوى القيمة النهائية للعداد (7) يتم تنفيذ الأوامر بين For..Next ، أى انه يتم التكرار الأول و هو تنفيذ الأمر X=X*2 أى أن X=4.5*2=9
=====++ بعد نهاية تنفيذ الأوامر يصل البرنامج ل Next فيتم زيادة قيمة العداد الآن (0) بقيمة الزيادة التى بعد Step ) ) و هى (3) فتصبح قيمة العداد الجديدة 0+3=3 ** و طالما أن قيمة العداد (3) أقل من او تساوى القيمة النهائية للعداد (7) يتم تكرار تنفيذ الأوامر و هو التكرار الثانى .أى انه يتم التكرار الثانى و هو تنفيذ الأمر X=X*2 أى أن X=9*2=18
=====+++بعد نهاية تنفيذ الأوامر يصل البرنامج ل Next فيتم زيادة قيمة العداد الآن (3) بقيمة الزيادة التى بعد ( Step) و هى (3) فتصبح قيمة العداد الجديدة 3+3=6** و طالما أن قيمة العداد (6) أقل من او تساوى القيمة النهائية للعداد (7) يتم تكرار تنفيذ الأوامر و هو التكرار الثالث .أى انه يتم التكرار الثالث و هو الأمر X=X*2 أى أن X=18*2=36
=====+++بعد نهاية تنفيذ الأوامر يصل البرنامج ل Next فيتم زيادة قيمة العداد الآن (6) بقيمة الزيادة التى بعد ( Step) و هى (3) فتصبح قيمة العداد الجديدة 3+6=9** و هنا قيمة العداد أصبحت أكبر من القيمة النهائية للعداد (7) فلن يتم التكرار= و يتم الإنتقال لتنفيذ الأوامر التى تلى كلمة Next التى تمثل نهاية التكرار .
قبل التكرار قيمة X = 4.5
أثناء التكرار
## التكرار الأول قيمة I تساوى 0 قيمة المتغير X= 9
## التكرار الثانى قيمة I تساوى 3 قيمة المتغير X= 18
## التكرار الثالث قيمة I تساوى 6 قيمة المتغير X= 36
بعد التكرار
قيمة المتغير X تظل كما هى حسب آخر أمر تخصيص =36
قيمة العداد I = آخر قيمة بعد آخر تكرار + قيمة الزيادة بعد Step و هى 6+3=9
مع أطيب الأمنيات
عاطف حسان

ابو كيرلس
09-04-2011, 10:28 AM
شرف كبير جدا لما يتولى الرد على الأسئلة مستر كبير زى استاذنا مستر سيف سالم

الأستاذة / أم أمل
09-04-2011, 11:25 AM
انا اضم صوتى لصوت اخوانى عاوزين مرجع لينا فى المادة يجيب على اسئلتنا

جزاك الله خيرا مستر سيف سالم

abdo_Awad
09-04-2011, 06:01 PM
dim a as integer
a= 0 to 7 step 3
msgbox (a
next
فى هذه الحالة سيعرض الكمبيوتر 0 & 3 & 6
اما فى حالة
dim a as integer
a= 0 to 7 step 3

next
msgbox (a
سيعرض الكمبيوتر رقم 9 فقط
فى كتاب المدرسى لم يحدد مكان msgbox i هو قبل next ولابعد next

ناروتو الشبح
09-04-2011, 06:18 PM
الذى واقف عليه هو حد يفهمنى

الامر For ... Next ، برجاء المشاركة

بالتفصيل مش عارف احل مسأله واحده

ابو كادر
09-04-2011, 09:55 PM
اجابة الاستاذ سالم صحيحة 100% وخالص تحياتي له

abdo_Awad
10-04-2011, 06:39 AM
اى حلين الاتيين يكون صحيح
الحل الاول
http://www13.0zz0.com/2011/04/10/04/352145121.gif


الحل الثانى
http://www7.0zz0.com/2011/04/10/04/672477745.gif

السيد شعبان
10-04-2011, 11:04 AM
قيمة المتغير i
i= 0 , 3 , 6 , 9
لأن في كل مرة عندما نصل إلي Next يبدأ في زيادة العداد i بمقدار 3 ثم يقارنة بالقيمة النهائية فعند القيمة 6 يتمتنفيذ مجموعة أوامرالتكرار ثم نصل إلي Next فيبدأ بزيادة قيمة i مرة أخرى فتصبح 9 ثم يقارنها بقيمة النهاية فيتوقف التكرار فتكون القيمة 9 تم تخزينها في I والله اعلم

mrk206
13-04-2011, 01:25 PM
اى حلين الاتيين يكون صحيح
الحل الاول
http://www13.0zz0.com/2011/04/10/04/352145121.gif


الحل الثانى
http://www7.0zz0.com/2011/04/10/04/672477745.gif

اجابة صحيحة

mrk206
13-04-2011, 01:26 PM
ايضا اجابة صحيحة الاستاذ زياد_عاطف (http://www.thanwya.com/vb/member.php?u=123085)

zyaad14
14-04-2011, 10:46 AM
من الاخر
عمليا : قيمة المتغير الذى يأتى بعد for هى تساوى أخر قيمة نتمكن من الوصول اليها + قيمة الزيادة التى تأتى بعد step
فى المثال السابق تكون أخر قيمة هى 6 و الزيادة هى 3
اذا القيمة النهائية لهذا المتغير = 6+3 = 9
فى أى برنامج تتعامل معه بالنسبة لـ for نفذ القانون السابق ذكره سوف تحصل على النتيجة المطلوبة
هذا القانون مطبق عمليا العديد من المرات و معترف به من قبل المبرمجين
أخوكم أبوزياد

El-Tantawy
15-04-2011, 09:48 AM
Many Thanks
:)

سيف سالم
04-05-2011, 11:50 PM
بارك الله لكم

محمد فؤادى
05-05-2011, 09:09 AM
الاجابة وهى (0و 3 و 6 و 9 )

لان حلقة التكرار تتوقف فى حالة إذا كان (i)فى البداية أكبر من (i) فى النهاية

وأذا كانت قيمة(i)أقل من أو تساوى قيمة النهاية يستمر التكرار

shasah
05-05-2011, 08:51 PM
لوسمحت استاذ سيف
علشات اربط بين المتعيرات واقيم الحرفية انا شايفة انه معامل التخصيص
بينما القيم الحرفية وبعضها عن طريق &