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

بوابة الثانوية العامة المصرية (https://www.thanwya.com/vb/index.php)
-   حاسب آلى 3ع ترم2 (https://www.thanwya.com/vb/forumdisplay.php?f=1965)
-   -   تـــوضــــــــــيــــح الامر For ... Next ، برجاء المشاركة (https://www.thanwya.com/vb/showthread.php?t=305322)

أحـمد قرنى 07-04-2011 07:30 PM

تـــوضــــــــــيــــح الامر For ... Next ، برجاء المشاركة
 
تتبع قيم المتغيرات التالية
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

اقتباس:

المشاركة الأصلية كتبت بواسطة أحـمد قرنى (المشاركة 3303546)
تتبع قيم المتغيرات التالية
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

اقتباس:

المشاركة الأصلية كتبت بواسطة أحـمد قرنى (المشاركة 3304486)
أستاذ سيف بعد إذن حضرتك انا عايز قيمة المتغير i فى المثال السابق بدون ذكر ال msgbox .

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

انا سألت سؤال اذا كانت اجابة سؤالي كما جاءت بمشاركتي
فانه يتم اختيار 9 وليس 6

أحـمد قرنى 08-04-2011 10:07 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة سيف سالم (المشاركة 3305168)
انا سألت سؤال اذا كانت اجابة سؤالي كما جاءت بمشاركتي
فانه يتم اختيار 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

اقتباس:

المشاركة الأصلية كتبت بواسطة أحـمد قرنى (المشاركة 3305270)
أستاذ سيف معذرة ( ممكن تيسط لى الامور شوية ) :
أنا عارف ان لو أتت ال 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

اقتباس:

المشاركة الأصلية كتبت بواسطة سيف سالم (المشاركة 3307098)
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

اقتباس:

المشاركة الأصلية كتبت بواسطة أحـمد قرنى (المشاركة 3307243)
أستاذ سيف رجاء خاص من حضرتك
عمل الموضوع الخاص بأنت تسأل وجميع الاسئلة تجيب ، مع رجائنا التام أن حضرتك تطلع عليه بصفة يومية حتى يكون مرجع للجميع . لان عندى الكثير من الاسئلة اللى عايز أطرحها وأتمنى أن يستفيد منها الجميع .
بدلاً من أن يقوم كل زميل بعمل موضوع معين لسؤال خاص به .

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

زياد_عاطف 09-04-2011 08:37 AM

رد - عاطف حسان
 
اقتباس:

المشاركة الأصلية كتبت بواسطة أحـمد قرنى (المشاركة 3303546)
تتبع قيم المتغيرات التالية
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

اقتباس:

المشاركة الأصلية كتبت بواسطة abdo_Awad (المشاركة 3311495)
اى حلين الاتيين يكون صحيح
الحل الاول
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

ايضا اجابة صحيحة الاستاذ زياد_عاطف

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

للإجابة عن قاعدة التكرار For......Next
 
الاجابة وهى (0و 3 و 6 و 9 )

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

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

shasah 05-05-2011 08:51 PM

لوسمحت استاذ سيف
علشات اربط بين المتعيرات واقيم الحرفية انا شايفة انه معامل التخصيص
بينما القيم الحرفية وبعضها عن طريق &


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

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