الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اشرحوا لي loop

مغلق
بدأه مايميزني لقب في 4 نوفمبر 2006 · 17 رد · 1,301 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الله يعافيكم الكويز وقته مابقى عليه الاوقت قليل يعني بكره الامتحان وانا ماادبر شي ++cلان ااستاذ الله يسامحه مايشرح زين ولا يعطينا امثله وبعد فاجئنا ان الاختبار بكره يعني الحين ابي شرح loopيعني for وwhileوالامثله البرامج عليها

الله يجزاكم الجنه الللي داخل في موضوعي يعلمني تروني انا انتظركم ومنتظره الشرح

ؤشكرا

#3

مشكور يااخوي بس ودي شرح بالعربي

اللي يعرف يرد

#4

وينكم ردوا يالموجدين الله يجزاكم الجنه

#5

طيب بص انا للاسف مش بقدر اشرح كده الموضوع عموما لاني مش بعرف ابدا ازاي او كده

ياريت لو عندك نقطه معينه انت مش فاهمها تقولها وانا ان شاء الله اشرحها

.

.

#6

السلام عليكم

ال loop أنواع يا أخي العزيز وانا سوف أشرح لك نوع واحد وهو بسيط وفعال جداً

#include<iostream.h>

main()

{

1- for (int i=0 ; i <= 10 ; i++)

2- cout<<" "<<i;

return 0;

}

الشرح كالتالي

السطر رقم واحد تم تعريف متغير من النوع رقم وجعلنا قيمته الابتدائية تساوي 0

تساوي 10 لكي يتم الطباعة من الصفر الى العشرة (i) تم جعلنا ال

وجعلنا قيمة الأاي تزيد في كل دورة بواحد

أما السطر التاني فهو يقوم بطباعة قيمة الااي

والله الموفق

#7

بس يا سيدى

جمل التكرار عامه

ليه فكره عامه

  1. فى رقم للبدايه
  2. وفى رقم لنهايه التكرار
  3. وفى رقم لخطواط التكرار
  4. وبعدين فى جسم التكرار
  5. وبعدين امر التكرار

يعنى مثلا شوف الصيغه دى وهى مش بلغه برمجه بس هى للتوضيح

for c=1 to 10  step 2 
msgbox "god"
loop

تم تعديل هذه المشاركة بواسطة asdsuez في 5 نوفمبر 2006 في 11:22

ASDSUEZ

#8

الشرح الاخير كويس وانا ممكن اكمل عليه

بالنسبة لل algorithm المضاف في الرد السابق فهو يشرح ما ورد قبله

كالأتي

1- رقم البداية : هو 1 ويظهر ذلك في c=1

2- رقم لنهاية التكرار : هو 10 ويظهر في to 10

3- رقم لخطوات التكرار : وهو الرقم الذي ننتقل به من رقم البداية إلي رقم نهاية التكرار وهو في المثال بمقدار واحد ويظهر ذلك في c++

4- جسم التكرار هنا اعتقد انه هيئة ال loop for

5- امر التكرار وهو اظهار رساله تحتوي علي كلمة god ويظهر ذلك في msgbox "god"

ومن ذلك نستطيع ان نتوقع نتيجة هذا ال algorithm اذا تم تحويله إلي كود كالأتي

for(int c=1;c<10;c++)
	 cout<<"god";

عدد مرات التكرار هو من 1 إلي 10 دون وجود رقم 10 معنا لان الشرط هو c<10 اي ان رقم عشره ليس في عدد مرات التكرار ومن هذا نجد ان عدد مرات التكرار هو 9 مرات اي ان الناتج سيكون كلمة god مطبوعه 9 مرات علي الشاشه

اود ان اضيف ان رقم نهاية التكرار هو ما يسمي بشرط التوقف اي انه حين الوصول إليه يتوقف ال loop

ارجو ان اكون قد اضفت شيئا لمعلوماتك والله الموفق

لو في اي اسأله في الموضوع بإذن الله نكون موجودين

.

.

#9

مشكورين كلكم

تعبتكم معاي

#10

نتمني نكون وصلنا حاجه وفهمت الموضوع

شكرااااااااااااااااا

#11

يعني يااخوان اللي رادين مثلا هذا البرنامج مكتوب

بfor

#include <iostream.h>

void main ()

{

int fact;

int i;

int num;

i=1;

fact= 1;

cin >>num ;

for (i=1;i<=num;i++)

cout<<fact*i;

cout <<fact;

}

لمااحوله للwhile

بعد cinاكتب

while (i<=num)

}

++i

cout=fact *i

{

cout<<fact;

{

يعني صح علي كذا التحويل ولا لا ؟؟؟؟؟؟؟؟؟؟؟

#12

لا لا نفذي عملية ال cout قبل عملية i++

لان اسلوب ال for loop ينفذ كالأتي :

اولا يقوم بعمل creation للمتغير البداية الذي يمثل المتغير i في مثالك ومن ثم يري ان كان شرط النهاية الذي يمثله i<= num في مثالك وان كان سليما يدخل لينفذ العمليات المطلوبه اولا ثم ينفذ عملية ال increment التي هي في مثالك i++

لذا فإن تحويل المثال إلي while يكون كالأتي

#include <iostream.h>
void main ()
{
int fact;
int i;
int num;
i=1;
fact= 1;
cin >>num;
for (i=1;i<=num;i++)

cout<<fact*i;

cout <<fact;
}
لمااحوله للwhile
بعد cinاكتب
while (i<=num)
{
cout=fact *i

cout<<fact;
i++;
}

تم تعديل هذه المشاركة بواسطة mohammed_elqupany في 9 نوفمبر 2006 في 12:41

#13

السلام عليكم

معليش انا خجلان منكم كثير بس يااخ mohammed_elqupanyودي توضح الاخطاء اللي وقعت فيها وتصحيحك لها

اكرر شكري لكم للمره المليون

#14

أولا علشان تعرفي أخطاء برنامج لازم تعرف الاول ما المطلوب من البرنامج وما هو الناتج الفعلي له

وهذا هو البرنامج

#include <iostream.h>
void main ()
{
int fact;
int i;
int num;
i=1;
fact= 1;
cin >>num;
for (i=1;i<=num;i++)

cout<<fact*i;

cout <<fact;
}

يتضح من هذا الكود انك تستقبل من اليوزر قيمة المتغير num ومن ثم تقوم بعمل loop بعدد مرات هذا المتغير

وفي هذا ال loop تقومين بإخراج حاصل ضرب المتغيرين fact و i وأيضا قيمة المتغير fact وحده والتي ستظل ثابته ظوال البرنامج لانها لم تتغير بأي حال من الأحوال .

وعلي هذا سيكون ناتج البرنامج كالأتي اذا قمت بإدخال رقم 3 مثلا كقيمة للمتغير num اي ان ال loop سيكون كالأتي for(i=1;i<=3;i++) i

ويكون الناتج المطبوع علي الشاشه هو الأتي

112131

اعتقد ذلك فأنا انفذ البرنامج في ذهني وليس علي ال compilare

والسؤال الآن لماذا كان هذا الناتج ؟ والجواب هو

في البداية أدخلت انا قيمة 3 كقيمة للمتغير num وبهذا فأنا طلبت من ال loop أن يستمر لثلاث دورات لأن قيمة البداية هي واحد وشرط النهاية أن يتخطي الرقم 3 ولهذا فسوف يتكرر ثلاث مرات

والأن اذا دخلنا لجسم ال loop او العمليات التي ينفذها فأنت تطبع علي الشاشه حاصل ضرب المتغيرين fact & i من خلال هذا الأمر cout<<fact*i;

وأيضا تقوم بطبع قيمة المتغير fact الذي هو قيمته تساوي واحد ولا تتغير بعد ذلك طوال البرنامج لذا فأن الناتج يكون كالأتي

أولا قيمة المتغير fact كما قلنا تساوي واحد وأيضا قيمة المتغير i تساوي واحد قبل اي زيادة لذا فأن اول قيمة ستطبع علي الشاشه هي حاصل ضرب واحد في واحد

1

ثم يطبع قيمة المتغير fact والناتج كالأتي

11

ثم ينفذ ال loop الأمر i++ لتكون قيمة المتغير i تساوي 2 ثم يختبر شرط التوقف وهو i<=num او i<=3 اي 2<=3 وهو شرط صحيح لذا سيقوم ال loop بتنفيذ المحتويات مره اخري وطباعة حاصل ضرب المتغير fact في المتغير i لتكون النتيجه 2 ليطبعها ثم يطبع قيمة المتغير fact واحد مره اخري

1121

ثم ينفذ المرة الثالثة بنفس الطريقة ونفس الاسلوب ليكون الناتج

112131

ثم ينفذ الأمر i++ لتكون قيمة المتغير i تساوي 4 وهذا لا يحقق الشرط لذا يتوقف ال loop وهكذا ينتهي البرنامج

للتحويل فإن جسم ال loop يبقي كما هو فقط نضيف عليه أمر زيادة المتغير i ليكون كالأتي

while (i<=num)
{
cout=fact *i

cout<<fact;
i++;
}

.

.

انا شرحت بالتفصيل اوي بس اتمني يكون وصل الموضوع

.

.

#15

مشكككككككككككككككككككككككككككككككككككككككككككككككككككككور

وعلى الرد السريع وعلى الشرح المتميز ولو من اليوم الى ماشاء الله اشكرك مااوفيك حقك

انت بس يكفي مبادرتك وعلى طول جاوبت علي

#16

لا داعي للشكر اخي العزيز

فقط اتمني تكون استفدت

.

.

#17

معليش يااخ البرنامج خطا في فقرا فيها الا وهي cout<<fact *i

والصح fact=fact*i

واكيد راح يتغير whوبالله وش الصح

يعني عطني تصحيح اللوب بعد تفير البرنامج

رد علي الليله

انا بانتظارك

#18

ok هكذا يكون الكود بعد التصحيح ان شاء الله

while(i<=num) 
fact=fact*i;
cout<<fact;
i++;
}

اعتقد كده صح

ان شاء الله

.

.

تم تعديل هذه المشاركة بواسطة mohammed_elqupany في 11 نوفمبر 2006 في 03:21

هذا الموضوع مغلق.

مواضيع مشابهة