إعلانات نصية

تحميل لعبة gta v

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

أعلن هنا

صفحة 1 من 4 1234 الأخيرةالأخيرة
النتائج 1 إلى 8 من 25

الموضوع: الدرس الثاني في دورة ++C - اساسيات

  1. Ico01 الدرس الثاني في دورة ++C - اساسيات

    بسم الله الرحمن الرحيم
    السلام عليكم ورحمة الله وبركاته
    الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين


    بداية اود ان اعتذر عن تأخري في طرح الدرس لظروف خاصة وعامة , الخاصة اتركها لي اما العامة للأسف لم اجد التفاعل المطلوب او حتى اثبات الوجود , فارجوا من الاعضاء المسجلين ان يثبتوا وجودهم .


    المهم الآن نبدا الدرس الثاني في دورة البرمجة بلغة ++C ...
    واتمنى ان يكون هنالك اسئلة لكي تكتمل الصورة الصحيح الدرس مهم جدا والتركيز مطلوب , رغم انه بسيط لكن مستقبليا الاخطاء تقع خلال البرمجة تكون اخطاء باساسيات البرمجة ....

    وقبل البدء :
    1.البرنامج حين يبدأ بترجمته فانه يترجم من السطر الاعلى الى الاسفل , اي ان بداية البرنامج من الاعلى , معلومة بسيطة وسخيفة لكن ستفيدنا لاحقا...
    2. كل جملة برمجية في لغة ++C تنتهي بفاصلة منقوطة
    ';' تقريباً!!!



    اولا : الجمل وانواعها :

    • يقصد بالجمل هي مجموعة من الكلمات المرتبة بشكل متتالي و لها معنى وهنا بالبرمجة بالطبع , لكن هنالك اساسيات وقواعد لتصبح الجملة صحيحة , ولكل نوع طريقة والانواع الرئيسية هي :


    1. جمل التعليقات Comment Statements

      • هي جمل لا قيمة لها فعليا في تنفيذ البرنامج ولا تؤثر فيه و وانما دورها يقتصر بمساعدة المبرمج على القيم بالبرمجة بشكل مريح ومنظم وذلك اثناء كتابة البرنامج , وتساعده في اكتشاف الاخطاء وموضعه وخصوصا الاخطاء المنطقية (سنتعرض لانواع الاخطاء في الدرس القادم ان شاء الله) .. اضافة لاهمية وجودها في الكود الذي نكتبه اذا كان طويل جدا وايضا اذا كان العمل مشترك او ان البرنامج هو برمجية حرة Open Source , فتخيلوا انه البرنامج يكون 10000 سطر ويطلب من مبرمج آخر ان يكمله او يحسنه , اعتقد لو يكتب الكود من البداية اوفر له وقتا وجهدا من اعادة قراءة الكود من اول وفهم كل جملة ماذا تقوم وما ناتجها ولمى وضعت , وتنقسم بدورها جمل التعليقات الى نوعين :


      1. سطر مفرد Single Line
        • هي جمل التعليقات على هيئة سطر واحد وتنتهي هذه الجملة بمجرد ان تنزل سطر جديد اثناء كتابتك للكود , وطريقة كتابتها هو بكتابة "//" ثم اي شيء بعدها ,مع ملاحظة اننا بامكاننا وضعها إما في سطر جديد او بعد عبارة برمجية منتهية مثال:

          كود:
          // Hello this is My first Program
          // This program written by : Al-Mothafar 
          void main()
          {
                cout<<"Welcome to C++"<<endl;  // Print "Welcome to C++
          }

      2. اسطر متعددة MultiLines
        • وهي الاصح ان تسمى فقرات التعليق , هي مجموعة من الاسطر الممتابعة نعرفها ببداية ونهاية ولا يكفي فقط بداية والا سيعتبر كل التالي هي جملة تعليق , تبدأ بـ /* وتنتهي بـ */


          كود:
          /* Hello this is My first Program
          This program written by : Al-Mothafar */
          void main()
          {
                cout<<"Welcome to C++"<<endl; /* Print "Welcome to C++*/
          }


    2. جمل الادخال Input Stream
      • هي جمل وظيفتها تحويل البرنامج الى وضع الانتظار حتى تتم عملية الادخال من قبل المستخدم (المستخدم هنا سواء كان شخص او برنامج) , ما ان تتم عملية الادخال حتى تكون هذه الجملة قد انتهت وظيفتها وقامت بارجاع القيمة المدخلة الى البرنامج, يعود بعدها البرنامج الى وضع العمل , وهذه الجمل تنتهي بالفاصلة المنقوطة ';' , بالنسبة لاشارة الادخال Input Operator هي ">>" يتبعها اسم المتغير المراد تخزين القيمة فيه , مثال يوضح الامر :
        كود:
        cin >>x>>y>>z;
        ويمكننا الكتابة نفس العبارة بطريقة اخرى لاحظ:
        كود:
        cin >>x
                >>y
                >>z;

    3. جمل الاخراج Output Stream
      • هي جمل وظيفتها اظهار النتائج والمعلومات مثل cout و clog و cerr و printf , وحالها في كتابتها شبيهة بالادخال الا ان الاشارة الاخراج Output Operator معكوسة "<<"

        ملاحظة :
        طريقة printf مختلفة تماما


        كود:
        cout<< "x =" << x << "and y = " 
                << y <<endl;
        ولاحظوا ان هنا ان ما يحصر بين " " يُطبع كما هو ويستخدم لطباعة نص ولكن اذا اردنا طباعة قيم المتغيرات المخزنة داخلها فلا نضعها , لو فرضنا ان x متغير مخزن داخله الرقم 5 ففي الحالة هذه اذا كتبنا :

        كود:
        cout<< "x";
        يطبع x هكذا على الشاشة اما اذا كتبناها بالشكل التالي :

        كود:
        cout<< x;


        سيطبع على الشاشة 5 اي القيمة داخل x وان شاء الله الى الامام تكون الصورة اكتملت ...

    4. هنالك ايضا جمل برمجية وظيفتها القيام باغراض معينة نريدها في برنامجنا سنتعرض لها لاحقاً .



    ثانيا : المتغيرات :

    المتغيرات هي موقع في الذاكرة لها عنوان وهذا العنوان معرف بمسمى , تخزن القيمة بالذاكرة من خلال هذا المسمى اذ ان المسمى يؤشر على العنوان في الذاكرة , اي لو فرضنا ان المتغير x هو موقع في الذاكرة , حقيقة لا يوجد منطقة في الذاكرة اسمها x لكن يقوم النظام بحجز موقع في الذاكرة بحجم معين (حسب نوع x) يبدأ بالعنوان مثلا 0x00af5989 , وعند تخزين قيمة فانه يخزنها في هذا الموقع ... على العموم ما يهمنا الآن هو كيف نقوم بتعريف المتغيرات والطريقة الصحيحة لتعريفها , وما هي انواع المتغيرات اي الـ Data Type وما الفروق بينها وما احجامها على الذاكرة ...


    المدى Rangeالحجم Sizeتوضيح Description النوع Type
    من -128 الى 1271 بايتلتخزين حرف او رقم صغيرصحيحchar
    من 0 الى 2551 بايت لتخزين حرف او رقم صغيرصحيحunsigned char
    من -32768 الى 327672 بايتلتخزين رقم صحيح قصير بإشارتهshort int
    من 0 الى 655352 بايتلتخزين رقم صحيح قصير موجبunsigned short int
    من -2147483648 الى 21474836474 بايتلتخزين رقم صحيح مع مراعاة الاشارةint
    من 0 الى 42949672954 بايتلتخزين رقم صحيح موجب دائماunsigned int
    من -2147483648 الى 21474836474 بايتلتخزين رقم صحيح طويل مع مراعاة الاشارةlong int
    من 0 الى 42949672954 بايتلتخزين رقم صحيح طويل موجب دائماunsigned long int
    true او false1 بايتنعم/لا , يعني يحتفظ فقط بالقيم تكون true أو false bool
    3.4e +/- 38 (7 digits)4 بايترقم بفاصلة عشرية الى 7 منازلfloat
    1.7e +/- 308 (15 digits)8 بايترقم بفاصلة ضعف float اي 15 منزلةdouble
    1.7e +/- 308 (15 digits)8 بايترقم بفاصلة ضعف float اي 15 منزلةlong double
    1 wide character2 او 4 بايتللحروف الكبيرة wchar_T



    ملاحظة :

    المتغير long int يكتفى فقط التعريف عنه بـ long و المتغير short int يكتفى فقط بـ short وكلا الطريقتين صحيحتين ....


    مصدر مفيد للاستزادة :
    http://msdn.microsoft.com/en-us/library/s3f49ktz(VS.80).aspx

    والآن بعد ان تعرفنا على الانواع , كيف نُعرف متغيرات من هذه الانواع , قبل ان نأتي لهذا يجب علينا ان نعرف قواعد بسيطة لكتابة المتغيرات وهي :
    1. اسم المتغير مكون من مجموعة من الاحرف الانجليزية سواء كبيرة او صغيرة والارقام وايضا يسمح بإستخدام "_" اي السحطة السفلية .
    2.اسم اي متغير يجب ان يبدأ بحرف او بـ"_" ولا يسمح بالارقام او الرموز الخاصة
    3. اسم المتغير حساس لحالة الاحرف اي ان الحرف الكبير يختلف عن الصغير , مثلا x هو ليس نفسه X , وهذا خطأ كثير منا يقع وسيقع فيه اثناء البرمجة

    * الصيغة العامة لكتابة المتغيرات

    كود:
    data-type variable-name;


    اي نكتب اولا النوع ثم اسمه ثم فاصلة منقوطة ويمكننا تخزين قيم فيه مباشرة اثناء التعريف بشكل عام..


    امثلة
    كود:
    int x = 5;
    int x;
    double y;
    double y = 56.3;

    كما ويمكننا تعريف اكثر من متغير بنفس العبارة مثال:
    كود:
    int x , y , z ;

    لاحظوا الطريقة وهي الفصل بين المتغير والآخر بفاصلة
    ','
    وطريقة اخرى
    كود:
    int _X =4 ,y,z =8 ;


    ملاحظة ثالثة مهمة للغاية , لا يمكنك تعريف المتغير اكثر من مرة داخل نفس البلوك , ولا يمكنك استخدام نفس اسم المتغير لانواع مختلفة


    ملاحظة :
    يقصد بالبلوك هو ما يحصر بين } و { , مثال :
    كود:
    void main()
    {
        int y = 8 ;
        cout<< y ;
        {
            int y = 9;
            cout<< y ;
        }
        cout<< y ;
    }
    في هذا المثال الصحيح لاحظو انه يستخدم اسم المتغير اكثر من مرة لكن كل مرة في بلوك مختلف , سيطبع 8 ثم يطبع 9 ثم يطبع 8 , لاحظو كيف ترتيب البلوك ...


    مثال خاطئ :
    كود:
    int a ;
    char a;

    مثال صحيح
    كود:
    int a;
    char A;


    مثال خاطىء :
    كود:
    char i;
    float f;
    double d;
    char i;


    مثال صحيح :
    كود:
    int i;
    float f;
    double d;
    char c;




    ثالثا : التعامل مع المتغيرات:

    يتم التعامل مع المتغيرات من خلال تخزين القيم فيها او استدعاء قيمها , بعمليات حسابية او منطقية :

    1. العبارات الحسابية او الاصح ان تبقى بدون ترجمة Assignment Statements:

    وهي عبارات مهمتها القيام بمعالجة ما من خلال معادلة :
    مثلا :
    كود:
    x = z + y;
    والاشارات هي الجمع '+' و الطرح '-' والضرب '*' و القسمة '/' و المود (باقي القسمة) '%' ....



    تنبيه :
    لا توجد اشارة للقوة "الأس" في العمليات الحسابية ....
    ولا يسمح باستخدام الاختصار في ازالة اشارة الضرب مثلا خطأ ان تكتب 2y لتكتب بالشكل الصحيح : 2*y مهم للغاية الانتباه لهذه النقطة


    امثلة :
    كود:
    x = 5+2;
    x = 2/5;
    x = 4*8;
    x = 9-6;
    x = 5%2;
    ملاحظة :

    ربما كل العمليات معروفة ولكن اشارة المود % غريبة , ببساطة لو قلنا 5%2 , اي نقصد هنا باقي ناتج القسمة الناتجة عن قسمة 5 على 2 اي سيكون الناتج 1 ...


    ويمكننا الاستعاضة عن الارقام باسماء المتغيرات بحيث يكون هذا المتغير يخزن قيمة , قد لا تكون معروفة لدى المبرمج , اي يتم اخذها خلال البرنامج او من ناتج عملية حسابية اخرى , مثلا :
    كود:
    void main()
    {
        int area , x , y ;
        cin>> x >> y;
        area = x * y;
        cout<< "Area = " << area ;
    }
    ويمكن استخدام نفس المتغير في الحسابات , مثلا لو اردنا ان نزيد 5 على قيمة x , فإننا نكتب
    كود:
    x = x + 5;


    رابعا : الأولويات الحسابية :


    شيء مهم ان نعرف الاولويات وكيف نحددها في العمليات الحسابية , فهي ما اكبر سبب للأخطاء المنطقية , كيف ذلك ؟؟

    ماذا سيكون قيمة x اي ناتج المعادلة التالية :


    كود:
    x = 4/2 + 9;
    وماذا سيكون قيمة x اي ناتج المعادلة التالية :


    كود:
     x =  9 + 4/2;
    في الحالة الاولى والثانية نفس الجواب ....


    ربما تكون قصدت في المعادلة الثانية ان يتم جمع الرقمين 9 و 4 ثم القسمة على 2 , ذلك يتم بعد التعديل لتصبح بالشكل التالي :

    كود:
     x =  (9 + 4)/2;
    اذن هنالك اولويات نتعاملمعها وهي حسب الترتيب التالي من الاعلى اولوية الى الاقل ,

    الاقواس () ثم * و / و % ثم + و -
    يعني بصيغة اخرى الاولوية تكون لفك الاقواس بداية ثم الاولوية للعمليات الضرب * والقسمة / و المود % ويحملن نفس الاولوية ثم للاشارتين الجمع + و الطرح - ..

    وفي حال تساوي الاولويات يتم جمع الارقام من اليسار الى اليمين ..

    امثلة على تساوي الاولويات
    كود:
    x = 1 + 2 + 3;
    x = 4/2*6;
    x = 9%3 *1;
    لاحظوا هنا
    لو قلنا
    كود:
    x = 9%3 *1.5;
    فالناتج سيكون 0 ,
    بينما
    كود:
    x =  1.5 * 9%3;
    سيكون الناتج 1 ...

    اترك لكم التفسير .....


    ملاحظة :
    مبدئيا نقول ان هذه العبارة صحيحة
    كود:
    x =  1.5 * 9%3;
    لكن حقيقة هي خاطئة وتصحيحها يكون
    كود:
    x =  (int)(1.5 * 9)%3;
    السبب انه المود '%' لا يأخذ متغير من نوع float او double في احد طرفيه ...
    يجب ان يكون طرفيه من نوع int او long او short او char


    ...

    ملاحظة :

    بالنسبة لنواتج القسمة تهمل في المتغيرات من نوع long و int (المتغيرات التي تخزن ارقام صحيحة)
    بالنسبة للمتغيرات من نوع double و float , قد ناتج القسمة في حال قسمة رقمين صحيحين , توضيح :
    int/int = int
    double/int = double
    int/double = double
    double/double = double

    يعني في مثال للتوضيح اكثر :
    كود:
    double x = 5/2;
    double x = 5.0/2;
    double x = 5/2.0;
    double x = 5.0/2.0;
    في اول جملة وهي
    كود:
    double x = 5/2;
    يخزن في x القيمة 2 اي سيهمل الباقي , اما باقي التعريفات يتخزن القيمة 2.5 بشكل صحيح ولن تهمل المنازل العشرية


    رابعا : النصوص Literal :
    النصوص كـ String وكيف تعريفها سنأتي اليه لاحقا في مواضيع المصفوفات , لكن اقصد هنا النصوص التي نكتبها للطباعة المباشرة من خلال جمل الاخراج , مثلا
    كود:
    cout<<"My Name is : Al-Mothafar "<<endl;
    فيحق لك ان تكتب ما تشاء بين اشارتي الاقتباس " و " عدا المرموز \ و " و ' ...
    السبب ان الرمز \ يستخدم Escape character
    و " تستخدم في اقفال وبداية النص و ' تستخدم في طباعة الاحرف المفردة مثل
    cout<<'x'<<end; ..

    اما بالنسبة لما يسمى بـ Escape character فهي الرمز \ يتبع باحدى الحروف التي من شأنها عمل وظيفة ما او حدث ما وهي كالتالي :

    الرمز Escape Sequenceالحدث
    \aصوت صافرة من داخل الجهاز
    \bBackspace
    \fFormfeed
    \nسطر جديد
    \rالعودة لبداية السطر
    \ttab
    \\لطباعة \ الباك سلاش
    \'لطباعة '
    \"لطباعة "
    \xddلطباعة الرمز المقابل للرقم بالهيكسا (الرقم مكان dd )


    امثلة :
    كود:
    cout<<"Welcome \rto My program"<<endl;
    cout<<"Welcome \bto My program"<<endl;
    cout<<"Welcome \tto My program"<<endl;
    cout<<"Welcome \"to My program\" "<<endl;
    cout<<"Welcome \'to My program\' "<<endl;
    cout<<"Welcome \ato My program\""<<endl;
    cout<<"03 = \d03"<<endl;
    النواتج ستكون بالترتيب كالتالي:
    كود:
    to My program
    Welcometo My program
    Welcome      to My program
    Welcome to "My program"
    Welcome to 'My program'
    Welcome to My program
    03 = ♥
    وفي حال ان الحرف خطأ سيعطي تحذير ويطبع الحرف عادي ويتجاهل \ ...


    وبهذا نكون انتهينا من الدرس الثاني بحمد الله
    اتمنى ان يكون هنالك استفسارات واسئلة مبتكرة

    واريد منكم تفسير الناتج جراء العمليات الحسابية التالية


    كود:
    x = 9%3 *1.5;
    فالناتج سيكون 0 ,
    بينما
    كود:
    x =  1.5 * 9%3;
    سيكون الناتج 1 ...

    ما ناتج العمليات التالية والمخزنة في المتغير x

    كود:
    double x = 4/ 6 + (6+2*9*(9/8));
    double x = 9 % 6 / 5;
    double x = 9 - 9 - 6 * 9;
    int x = 9/2*9-(6*5/10);
    اريد منكم كشف الاخطاء في العبارات التالية:

    كود:
    double x , int y ;
    int x  , y 
    int 8x , y;
    double x = 9 ( 6 / 5 );
    cout<<"Welcome to C++<<endl;
    cout<<''Welcome to C++''<<endl;
    تحذير :
    يرجى رجاء حار ممن لديه خلفية مسبقة عدم تطبيق العبارات في اي مترجم او برنامج IDE ليعرف اين الخطأ , اريد فقط بالنظر , الله رقيب , اتمنى الصدق والجدية في هذا الموضوع, ولكن نظريا الكل يجيب , اتمنى ذلك


    وأتمنى لكم التوفيق


    اخوكم المحب لكم في الله
    المظفر بالله


    ملاحظة :
    اعتذر عن الخطأ التي نتج صراحة من قلة التركيز , بالنسبة لرابط الدرس الاول هو :

    http://www.geek4arab.com/vb/showthread.php?t=2811




    التعديل الأخير تم بواسطة المظفر بالله ; 12-06-2008 الساعة 05:24 PM سبب آخر: تصحيح املائي

  2. افتراضي

    هذا وان اصبت فمن الله وتوفيقه وان أخطأت فمن نفسي
    والله الموفق

    إلى كل مبتلى,,, إليك البلسم الشافي,,,خذ العبرة و جدد اليقين و تصبر يرعاك الله
    {الم (1) أَحَسِبَ النَّاسُ أَن يُتْرَكُوا أَن يَقُولُوا آمَنَّا وَهُمْ لَا يُفْتَنُونَ (2) وَلَقَدْ فَتَنَّا الَّذِينَ مِن قَبْلِهِمْ فَلَيَعْلَمَنَّ اللَّهُ الَّذِينَ صَدَقُوا وَلَيَعْلَمَنَّ الْكَاذِبِينَ (3)}

    يا صاحب الهم... اقترب لترتاح نفسك...

    مدونتي

    اعتذر للغياب وعدم المشاركة لظروف العمل, وعذرا لاي تقصير في حقكم او اي تاخر في الرد عليكم

  3. #3

    افتراضي

    والله انك بتقدم مجهود كبير يا مظفر

    جزاك الله كل خير

    والله يعطيك على قد نيتك ان شاء الله






    الجاثمون تحت ظل النبض يزركشون بحروفهم ما يجول في الخاطر فينهمر كتباشير الندى ....





    إذا كنت لا ترى إلا ما يظهره النور ولا تسمع إلا ما تعلنه الأصوات فأنت بالحقيقة لا ترى ولاتسمع

    من فيض حبي للرمثا وأهليها- أشتاقها شغفا مع أنني فيها
    لا يهنأ العيش إلا في مرابعها- ولا حياة بعيدا عن روابيها
    لله درك يا رمثا شامخة- يا طيب حاضرها يا طيب ماضيها

  4. افتراضي

    السلام عليكم ورحمة الله وبركاته
    ما اتنبهت لبداية الدرس إلا اليوم و إن شاء الله أنتبه و أقدر أتدارك

  5. افتراضي

    و الله بداية مفصلة، مشكور أخي المظفر بالله و ان شاء الله نستوعب الدرس
    و إن كانت هناك استفسارات سنوافيك بها في أقرب وقت

  6. افتراضي

    بارك الله بك أخي مظفر وجزاك الله خيراً
    http://bino99.maktoobblog.com/

  7. افتراضي

    يعني انا ما اجاوب؟؟؟
    والله اني اتذكرت اشياء كثيييييييييير اخذتها قبل 2 سنه
    الله يبارك فيك ويوفقك


    والدي...
    رغم الالم العظيم الذي اورثتني اياه برحيلك...
    لكنك كنت الاقوى بصبرك واحتسابك فقد بكينا وسكبنا الدموع مئات المرات وانت لم ارى بعينيك دمعة واحده....
    تحكي المك اوحتى ضعفك واستسلامك للمرض..
    كنت عظيما وستبقى عظيما...
    فقد تعلمت منك ان قوة الرجل تكمن بصبره وجلادته وتحمله للالم حتى في اصعب المواقف...
    حتى وان بكى قلبه فعينيه
    ترفض سكب تلك المياه المالحه... رحمك الله ياوالدي.....واسكنك فسيح جناته


  8. #8

    افتراضي

    الله يعطيك العافيه والله مجهود كبير جـــــــــــــــداً ,ان شاء الله تتوفق في بقيه الدروس

صفحة 1 من 4 1234 الأخيرةالأخيرة

المواضيع المتشابهه

  1. دورة الفوتوشوب الدرس الثاني
    بواسطة GeeK4aRaB في المنتدى دورة الفوتوشوب
    مشاركات: 1
    آخر مشاركة: 05-07-2015, 02:17 PM
  2. دورة XML الدرس الثاني
    بواسطة GeeK4aRaB في المنتدى دورات لغات البرمجة
    مشاركات: 0
    آخر مشاركة: 10-03-2009, 10:46 AM

الكلمات الدلالية لهذا الموضوع

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •