عرض مشاركة واحدة
  #15  
قديم 26-12-2008, 06:33 PM
الصورة الرمزية msamido
msamido msamido غير متواجد حالياً
عضو متألق
 
تاريخ التسجيل: Jul 2005
العمر: 39
المشاركات: 2,701
معدل تقييم المستوى: 0
msamido is an unknown quantity at this point
افتراضي

السلام عليكم ورحمة الله وبركاته
أنا عارف إنى إتأخرت كتير والناس ملت من الإنتظار بس بجد معلش ظروف شغلى مش مديانى أى وقت أكتب فيه الدرس الجديد ... عموما النهاردة نرجع بإذن الله بدرس جديد ويلا نبدأ
بسم الله
أخر كلامنا المرة اللى فاتت كان عن حاجه لذيذة كده وبنت حلال إسمها الـ loops واتكلمنا عن أحد أنواعها اللى هو while loop وقلنا إيه فايدته وشغال إزاى وقلنا كمان إن فى كمان نوعين مهمين جدا من الـ loops هنتكلم فيهم النهادرة بإذن الله ونبدأ بأولهم do while loop وده اللى استخدمته همس فى حل سؤال سابق ..
إحنا قولنا عن while loop إنه بيختبر شرط معين وبيشوف طول الشرط ما هو متحقق هو هيفضل شغال لغاية الشرط ما تكون نتيجته false والفرق بقى بينه ويبن do while loop إن do while loop بيقول نفذ الكود ده وبعدين شوف الشرط لو متحقق ارجع نفذ الكود تانى لغاية ما الشرط يكون مش متحقق ... حد فاهم حاجه ؟؟؟
طيب خلينا نشوف الأخ ده شغال ازاى ونقول مثال ونوضح أكتر
ده شكل الـ، do while loop
كود:
do{
// some code
}while(condition);
يعنى do معناها ده بداية الكود اللى عايزين ننفذه أكتر من مرة بناءا على الشرط اللى موجود فى النهاية وبعدين يبدأ ينفذ الكود اللى جوه ويوصل عند while يشوق الـ condition بتاعتها لو true يرجع ينفذ الكود تانى لو false يبقى خلاص ويكمل باقى البرنامج وده معناه إن الكود اللى جوه do while هيتنفذ مرة واحدة على الأقل حتى لو كان الـ condition نتيجته false من الأول خالص على عكس while loop لو الشرط فى البداية مش متحقق يبقى مش هينفذ الكود اللى جواه خالص ... يارب يكون حد فهم حاجه ؟
وخدوا بالكم من الـ semicolon اللى فى الآخر بعد الـ while(condition) بتتنسى علطول
نشوف مثال بردوه توضيحى
كود:
#include <iostream>
#include<conio.h>
int main()
{
  int x;
  x = 0;
  do {
    // "Hello, world!" is printed at least one time
    //  even though the condition is false
    cout<<"Hello, world!\n";
  } while ( x != 0 );
getch();
حد يقوللى نتيجة الكود ده إيه ؟؟؟
أنا هقولكم أنا
فى البداية بنعرف variable اسمه x وبنديله قيمة صفر وبعدين بنبدأ do while loop وبنطبع على الشاشة hello world وبعدين نشوف الشرط بتاع التكرار x!=0 أو x لا تساوى صفر هل الكلام ده صح لا طبعا نتيجة الشرط ده false لان x فعلا بتساوى صفر يبقى مش هيرجع ينفذ الكود ده تانى وكده ينهى البرنامج طيب فين التكرار بقى ؟
محصلش هنا أى تكرار لأن نتيجة الشرط كانت false لكن الكود اتنفذ مرة واحده على الأقل لكن لو استخدمنا while loop مع نفس المثال الكود مش هتينفذ خالص لأنه بيعتمد على الشرط فى البداية يعنى البرنامج بيشوف الـ condition الاول لو نتيجته false مش هينفذ الكود خالص .... تمام كده
راجعوا المثال اللى عملته همس قبل كده ولو مفيش حاجه فيه واضحه اسألوا بس إن شاء الله يكون واضح

وكده يكون انتهى الـ do while loop وييجى دور نوع أخر من أنواع loops وهو for loop ....

طيب نبدأ نقول بقى معنى الأخ for loop ايه بس خلونا الأول نقول شكله إيه
كود:
for ( variable initialization; condition; variable update ) {
  Code to execute while the condition is true
}

بيبدأ الـ loop بكلمة for وبنفتح قوس وبنعرف variable ونديله قيمة ابتدائية ولازم يكون له قيمة ابتدائية وبعدين semicolon اللى هى دى ( وبعدين نقول الشرط اللى طول ما هو متحقق يتنفذ الـ loop وبردوه بعده semicolon وبعدين على نفس الـ variable اللى اديناله قيمة ابتدائية فى الأول نقول الـ varaible ده هيتغير ازاى وعلى اساس التغير ده قيمة الشرط هتتغير سواء من true إلى false أو العكس وعلى اساسه هيتحدد يكرر تنفيذ الكود ولالأ وبعدين نفتح قوس { ونكتب الكود اللى عايزينه يتغير وبعدين نقفل القوس تانى} وتبقى دى نهاية الـ loop
طبعا مش واضح أوى الكلام صح ؟؟؟
طيب خلينا نقول مثال ونوضح عليه الكلام ده
هنقول مثال بسيط بنستخدمه دايما فى توضيح فكرة الـ loop ونقول بنستخدم الـ for loop علشان نستعمله ازاى وهناخد نفس المثال اللى خدناه من شوية وهو لو عايزين نكتب كلمة hello world عشر مرات على الشاشة نعمله ازاى ؟؟؟
طبعا عرفنا إزاى نعمله باستخدام while & do while loops وهنقول دلوقتى نعمله ازاى باستخدام for loop

كود:
for(int x=1; x<=10; x++)
{
cout<<x<<" - Hello World \n";
}

أنا مكتبتش البدايات بتاعة الكود ونهايته علشان طبعا انتوا عارفين شكلها ايه انا بس ركزت على الـ for loop
وخلينا نمشى معاه فى البداية قلنا for وفتحنا قوس من ده ( وبعدين عرفنا variable اسمه x واديناله قيمة ابتدائية اللى هى 1 و semicolon وبعدين قولناله الشرط اللى هو لو x <=10 إكس اقل من أو تساوى عشرة يعنى طول ما الشرط ده متحقق ادخل الكود ونفذ وبعدين قولناله ++x ودى معناها زود قيمة x بواحد وبعدين كتبنا جوه الأقواس اطبع على الشاشه قيمة x وجنبها كلمة hello world وانزل سطر جديد وقفلنا القوس
أنا ركزت أوى فى شكل الكتابه وشرحته واحده واحده علشان محدش يتلخبط فيه
نيجى بقى نقول البرنامج هيمشى فى الـ loop ده ازاى
الل هيحصل إن البرنامج هيعرف الـ variable x ويديلة القيمة الإبتدائية بتاعته واحد وبعدين يشوف الشرط لو نتيجته true يدخل ينفذ الكود لو false هيوقف ومش هينفذ الكود اللى جوه طبعا نتيجة الـشرط true لأن الواحد أقل من العشرة يبقى هيدخل ينفذ الكود وهو إنه يطبع على الشاشه 1- Hello World وينزل سطر جديد وبعدين هيروح ينفذ الـ variable update يعنى هيروح عل الجزء بتاع ++x ويزود x بواحد يعنى تبقى قيمة x اتنين ويروح يشوف الشرط تانى طبعا الإتنين اقل من العشرة يبقى النتيجة true يبقى هينفذ الكود تانى ويطبع 2- Hello World وينزل سطر جديد ويرجع للـ variable update ويزود x بواحد يعنى تبقى تلاته ويشوف الشرط وينفذ الكود وهكذا لغاية ما تبقى قيمة x بـ 11 وبكده تكون قيمة الشرط بـ false يوقف تنفيذ الكود ويخلص الـ loop ويشوف اللى بعده .......... واضح كده ؟؟؟
معلش أنا معنديش ++C هنا علشان كده مش عارف اوريكوا النتايج بس طبقوا انتوا بقى وورونى

بالنسبة للـ homework بصراحه مش قادر أفكر فى حاجه دلوقتى ده quiz صغير وسهل من على النت حلوه

كود:
1. What is the final value of x when the code int x; for(x=0; x<10; x++) {} is run?
A. 10
B. 9
C. 0
D. 1
2. When does the code block following while(x<100) execute?
A. When x is less than one hundred
B. When x is greater than one hundred
C. When x is equal to one hundred
D. While it wishes
3. Which is not a loop structure?
A. for
B. do while
C. while
D. repeat until
4. How many times is a do while loop guaranteed to loop?
A. 0
B. Infinitely
C. 1
D. Variable

وبكده ينتهى درسنا الـ loops يارب تكون واضحه وسهله ويارب اكون وفقت فى شرحها ولو فى أى اسئلة أو تعليقات منتظرها بإذن الله
شكرا ومتأسف مرة تانية على التأخير
.
.
__________________