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

بوابة الثانوية العامة المصرية (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


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

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