Eng: OmAr TaLaHmA-------- كـمـبـيـوتـرات و لـوحـات إلـكـتـرونـيـة

بسم الله الرحمن الرحيم --- اهلا وسهلا بكم في منتدى الكمبيوترات واللوحات الالكترونية ونرجو ان تنال اعجابكم وان تكونوا من الاعضاء الدائمين عندنا وان تستفيدوا منا وتفيدونا من خبراتكم .......وندعو الله ان يجعل من هذا الملتقى كنز للمعرفة والفائدة ..... وبارك الله فيكم

    تعلم لغة ++C

    شاطر

    Admin
    Admin

    عدد المساهمات : 276
    تاريخ التسجيل : 08/10/2009
    العمر : 25
    الموقع : الخليل

    تعلم لغة ++C

    مُساهمة من طرف Admin في الإثنين نوفمبر 02, 2009 4:46 am

    بسم الله الرحمن الرحيم ..


    الحمد لله رب العالمين والصلاة والسلام على أشرف الأنبياء والمرسلين .. نبينا محمدٍ صلى الله عليه وسلم .. ثم أما بعد ..

    بعد نقاشات ومحاورات ومداولات   ..
    سيتم بإذن الله تقديم دورة في أساسيات البرمجة بواسطة لغة C++ السي بلس بلس ..
    وستوضع الدورة على هيئة دروس ..

    ما أريد قوله قبل بداية الدورة.. :
    • أن هذه دورة تعليمية .. سأتعمد شرحها بالإسلوب العامي ، وسأبتعد عن الأسلوب الرسمي ..
    بمعنى أن من يقول : أنا لا أعرف أي شيء وليس عندي خلفية عن البرمجة .. سيتعلم فعلاً بإذن الله أساسيات البرمجة إذا كانت لديه فعلاً رغبة بالتعلم ..
    • باب الأسئلة مفتوح على مصرعيه خلال الدورة ..
    أي أنه إذا تعسر عليك فهم أي نقطة في الدرس .. أنا على استعداد على إعادة شرحها وتوضيحها أكثر وأكثر .. ولكن يجب أن تكون لدينا إرادة وتصميم على التعلم ..
    • قد تُفاجأ بعد نهاية الدورة أنك لم تحصل على شيء !! أو أن ما تعلمته = لا شيء ، هذا بظنك ، ولكنك ستكون بإذن الله قد امتلكت أساسيات لغة البرمجة اللتي تؤهلك لمراحل أخرى ..
    وحتى لو أردت تعلم لغة أخرى غير لغة السي بلس بلس .. فستسهل عليك الدورة فهم الفكرة العامة للبرمجة .
    • قاعدة : البرمجة = تشغيل مخ
    لا يظن أحد أن البرمجة عبارة عن أوامر نحفظها ثم ننسخها ثم نلصقها .. كلا .. البرمجة لعبة عقول ..
    • عملية التعلم أكيد تحتاج إلى صبر !!!
    ـــــــــــــــــــ

    أنا عارف إن أنا طولت عليكم ..  بس دية نقاط أساسية حبيت أنبه عليها ..

    قبل بداية الدرس الأول .. أضع بين أيديكم تمهيد مبسط أرى ضرورة قراءته ..

    تمهيد ..

    لغات البرمجة .. ببساطة عبارة عن لغة يفهمها الطرفان ( الحاسب & المستخدم )
    هناك عدة لغات برمجة .. بعضها أقدم بكثير من C++ ، مثل لغة البيسك ، وبعضها أكثر تطوراً مثل السي شارب والفيجوال بيسك والسي بلس بلس دوت نت ( C++.Net ) ...
    ولكل لغة مميزاتها وقدراتها وإمكانياتها
    من البديهي أن يسأل أحدهم : إذا لماذا لا نتعلم اللغات الحديثة ؟

    سؤال ممتاز .. إجابته نقطتان :
    الأولى : إن أنا ما أفهم كثير في اللغات المتطورة  !!
    الثانية : وهي الأهم .. تعتمد معظم اللغات الحديثة على جرافيك أو واجهة رسومية .. بحيث لا يقوم المبرمج بكتابة أكواد البرمجة إلا بنسبة قليلة جداً .. وبالتالي فهو غير ناجح برمجياً .. لأن تطوير وتنقيح البرامج كلها تعتمد على كتابة الأكواد .

    وبإذن الله إذا وجدنا تفاعل وحب التعلم لدى الأعضاء سنفعل مثل تلك المواضيع

    ما سنأخذه في هذه الدورة سيتم تنفيذه في بيئة الدوس ، وليس بواجهة رسومية ، ولذلك سيصعب استخدام اللغة العربية أثناء عمل البرامج .

    وجزاكم الله خيراً ..

    أخوكم ..
    مسلم معاون 


    [grade="00008B FF6347 008000 4B0082"]====== الدرس الأول ======[/grade]


    في البداية قد يتسائل البعض عن البرنامج اللذي سنقوم بكتابة وتنفيذ البرامج فيه ..
    وهو برنامج
    Microsoft Visual C++
    وهو يأتي دائما مع حزمةMicrosoft Visual studio
    صعب تحميله من النت لكبر حجمه .. ولكنه منتشر بكثرة وخاصةً عند طلبة علوم الحاسب

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




    كيفية فتح صفحة جديدة ..

    من قائمة File نختار New ثم ننفذ كما في الصورة التالية




    لاحظ : اخترنا C++ source file ..

    بذلك أصبحت صفحتنا جاهزة لبدأ كتابة البرنامج ..

    هيا بنا إذا نبدأ بتعلم لغة البرمجة ..
    GO

    حسناً .. نتناول الآن هيكل البرنامج .. أو كيف يتكون البرنامج ..

    هيكل أي برنامج

    * نفتح الملفات اللتي سنحتاج أدواتها خلال كتابة البرنامج # include < ??? . h >
    حيث علامات الإستفهام عبارة عن إسم الملف ، وسنتعرض خلال دورتنا إلى عدة ملفات وأدوات كل ملف .

    * بعد ذلك نكتب العبارة void main ( void )

    * بعد ذلك نضع قوس بداية أسطر البرنامج { …
    حيث يجب أن تكون أسطر البرنامج داخل الأقواس .

    * ثم بعد ذلك نكتب أوامر وأسطر البرنامج اللتي نريد تنفيذها ، مع ضرورة وضع علامة ; الفاصلة المنقوطة بعد أي سطر نكتبه إلا بعض الحالات الشاذة .. واللتي سوف نتعرض لبعضها إن شاء الله .

    * وأخيراً نغلق قوس البرنامج …… }

    * نفعل بناء للبرنامج كي يبحث عن الأخطاء في برنامجنا إذا وجدت ، ويخبرنا بها لنقوم بتصليحها .

    وبذلك قمنا بعمل برنامج !! فعلاً .. هذه هي طريقة كتابة برنامج بواسطة لغة السي بلس بلس .

    ما رأيك .. هل الأمر صعب ؟

    إذا لم تفهم الجزء السابق .. فأعد قرائته وحاول فهمه وأنا جاهز إذا فيه أسئلة ..

    أما إذا فهمته ..
    فهيا بنا لنتعمق قليلاً ..

    هيا لنبرمج 

    ــ المتغيرات والتعريف بها ..


    بفرض أننا أردنا عمل برنامج يقوم بحساب مساحة المستطيل ..
    قانون حساب مساحة المستطيل : 2 × ( الطول + العرض )
    إذا البرنامج سيطلب من المستخدم إنه يدخل مرة قيمة الطول ، وبعدين قيمة العرض وبعيدن يحسبهم ويخرج الناتج .
    عند عمل هذا البرنامج علي أن أحجز مكان في ذاكرة الكمبيوتر حتى يتمكن المستخدم من إدخال قيمتي الطول والعرض ..
    هنا جائت الحاجة إلى المتغيرات والتعريف بها ..

    عند عمل هذا البرنامج سأسمي الطول بالمتغير x والعرض بالمتغير y .. وبذلك أوجدنا المتغيرين ..
    ولكن البرنامج لن يفهم المتغيرين إلا إذا أعلنا عنها في بداية البرنامج ..

    كيف نعلن عن المتغير ؟
    بإستخدام أحد تلك المصطلحات :
    int : وتستخدم لقيم صحيحة – غير كسرية – مثل x = 5
    float : وتستخدم لقيم كسرية ذات خانات قليلة مثل x= 5.08
    double : وتستخدم لقيم كسرية ذات خانات كثيرة مثل x = 5.973685376
    char : وتستخدم للكاركتر ..- وسنأخذ الكاركتر في الدروس القادمة إن شاء الله - .

    لاحظ : من الممكن استخدام float في المكان اللذي نستخدم فيه int وذلك لأنه واضح أن float بإمكانها أخذ قيم أكبر .

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


    كود:
    int x , y ;



    ومن الممكن كتابته بتلك الطريقة :
    كود:
    int x ;
    int y ;



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

    دعونا نعود لبرنامج المستطيل ..
    ماذا لو كان طول ضلع المستطيل 5,25 خمسة وربع سم .. والعرض 7 سم .
    لن تكون نتيجة البرنامج دقيقة ، وذلك لأننا أعلنا عن المتغير x والذي يمثل قيمة الطول أعلنا عنه بـ int وكما قلنا أن int تستخدمم لقيم صحيحة ، وليس قيم عشرية .
    لذلك حينها سنستخدم المصطلح float لكي تكون النتيجة دقيقة .

    أتمنى أن يكون كل شيئ حتى الآن واضحاً .. إذا وُ جد أي شيء غير واضح .. أنا جاهز للأسئلة .

    ملاحظة : المصطلحات اللتي ذكرتها هنا ليس كل المصطلحات الموجودة في لغة السي بلس بلس ، ولكن ذكرت ما سنحتاجه في دورتنا .



    ـــــــ ======= ــــــ

    أدوات الإدخال والإخراج ..

    cout << ……


    تنطق سي آوِت ، وتستخدم في الإخراج .. بمعنى أصح .. أي شيء سيظهر أمامك على الشاشة أثناء تنفيذ البرنامج .. سنستخدم فيه cout<<


    لاحظ :

    كود:
    X= 5 ;
    cout << X ;



    السطر الأول .. يقوم البرنامج بوضع قيمة 5 في المكان المفتوح في الذاكرة والمسمى X .
    السطر الثاني .. يقوم البرنامج بطباعة قيمة الـ X واللتي تساوي 5 .

    حسنا ً .. ماذا لو أردنا طباعة عبارة على الشاشة ..

    نفترض تلك العبارة هي " Pleas do not forgt ALLAH "
    " لا تنسى الله "
    سنطبعها بالشكل التالي :

    كود:
    cout << " Pleas do not forgt ALLAH " ;

    لاحظ : عندما نريد أن نطبع أي عبارة يجب وضعها بين علامات التنصيص " ...... "

    ربما يسألني البعض لماذا لم نضع علامات التنصيص عندما قمنا بطباعة قيمة X في المثال بالأعلى ؟!
    والجواب : أننا لم نكن نريد من البرنامج طباعة حرف X وإنما أردنا طباعة محتوى X أو قيمتها .. وعند ذلك لا نضع علامات التنصيص .

    لو عدنا إلى مثال المستطيل .. من الممكن أن يكون آخر سطر في البرنامج بالشكل التالي :

    كود:
    cout << " The resuls is " ;
    cout << x + y ;



    وحيث أن الـ x و y هما قيمتي الطول والعرض .. عندما ينفذ البرنامج السطرين الأخيرين سيكون شكل الشاشة كالتالي :

    كود PHP:
    The resuls is 24.5



    لاحظ أيضاً .. السطرين السابقين ..

    كود:
    cout << " The resuls is " ;
    cout << x + y ;



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

    كود:
    cout << " The resuls is " << x + y ;

    ومن الخطأ الشائع الذي يقع فيه كثير من المبرمجين المبتدئين ، وأنا كنت أقع فيه .. نضع فاصلة , بدلاً من العلامة << ..
    فمثلاً .. لو أردنا طباعة قيمة المتغيرات التالية x , y and z

    البعض يكتبها هكذا ..

    كود:
    cout << x , y , z ;

    وهذا خطأ فادح ..

    فمن المفروض كتابته هكذا ..

    كود:
    cout << x << y << z ;

    لمحة : يستخدم الأمر end l أو الشكل التالي " \n " لكي ينزل البرنامج سطر للأسفل .. يعني كأنك تضغط مفتاح انتر Enter ..

    مثال : افترض x = 3 y = 4 نريد طباعة قيمة اكس في سطر وقيمة y في سطر .. على النحو التالي :

    كود:
    cout << x << end l << y ;

    عندها سيكون شكل الشاشة بعد تنفيذ البرنامج
    كود PHP:
    3
    4


    ونفس السطر السابق .. يمكن كتابته على الشكل التالي :
    كود:
    cout << x << " \n " << y ;

    بدلاً من end l وضعنا الرمز "\n"
    .


    أتمنى أن يكون كل شيء حتى الآن واضح .

    بذلك نكون قد تعرفنا جيداً على أداة الإخراج
    cout << …


    ولكن ..

    دعونا أيضاً نعود إلى برنامجنا السابق بطل درسنا هذا .. برنامج حساب مساحة المستطيل ..
    ذكرنا .. أن هذا البرنامج من المفترض أن يطلب من المستخدم إدخال قيمتي الطول والعرض ..

    هنا .. حان الوقت لنتعرف على أداة الإدخال ..

    cin >> …..


    وتنطق " سي إن " .

    إن عمل cin >> لا أثر له على الشاشة ولكنه يعطي الإذن للمستخدم بإدخال قيم في المتغيرات اللتي أعلنا عنها في بداية البرنامج .. أي أن البرنامج يتوقف وينتظر أن يدخل المستخدم القيمة المطلوبة .

    فمثلاً .. في برنامج حساب مساحة المستطيل واللذي يتطلب إدخال قيم الطول والعرض .. نلاحظ السطرين التاليين :

    كود:
    cin >> x ;

    هذا السطر سيعطي الإذن بإدخال قيمة الطول .

    كود:
    cin >> y ;

    وهذا السطر سيعطي الإذن بإدخال قيمة العرض .

    ونفس ما ذكر في الـ cout << ينطبق على السي إن .. أي أنه من الممكن كتابة السطرين السابقاً في سطر واحد على الشكل التالي :

    كود:
    cin >> x >> y ;

    وهذا كل ما يتعلق بأدوات الإدخال والإخراج .. ولكن بقية نقطة هامة جداًَ جداً جداً ..

    ذكرنا في بداية الدرس النقطة التالية :
    ــــــــــــــــــــــــــــــــــــــــ ــــــــــــــــــــــــــــــــــــــــ ــ
    إذا هيكل أي برنامج

    * نفتح الملفات اللتي سنحتاج أدواتها خلال كتابة البرنامج # include < ??? . h >
    حيث علامات الإستفهام عبارة عن إسم الملف ، وسنتعرض خلال دورتنا إلى عدة ملفات وأدوات كل ملف .
    ــــــــــــــــــــــــــــــــــــــــ ــــــــــــــــــــــــــــــــــــــــ ـ

    إن أداتي cin>> و cout<< موجودة داخل ملف اسمه iostream ، إذا أي برنامج يجب فيه فتح هذا الملف في البداية .

    حسناً .. قمنا في هذا الدرس بتناول عدة نقاط أهما المتغيرات وكيفية الإعلان عنها وأدوات الإدخال والإخراج ..
    لاحظوا .. أننا قمنا بعمل برنامج أثناء شرح الدرس ..

    نعم قمنا بعمل برنامج يحسب مساحة المستطيل .. ولكنه كان مجزئ حسب النقاط اللتي شرحناها .. الآن نقوم بكتابة البرنامج كاملاً كتطبيق عملي على هذا الدرس ..

    كود:
    # include <iostream.h>
    void main ( void )

    {
    float x , y ;
    cout << " Please enter the first number ? \n " ;

    cin >> x ;

    cout << " Pleas enter the scond number ? \n " ;

    cin >> y ;

    cout << " \n The resuls is " << ( 2 * ( x + y ) ) << endl ;

    }


    وبذلك انتهينا من كتابة البرنامج نقوم بعمل بناء للبرنامج بالضغط على F 7

    سيخرج لنا مدى صحة البرنامج .. وهل به أخطاء أم لا .. كما في الصورة ..



    ثم .. نقوم بتنفيذ البرنامج بالضغط على Ctrl + F 5

    هذه صورة البرنامج بعد التنفيذ





    ..

    أتمنى تكونوا استمتعتم بالدرس ..
    وانتظروا الدرس الثاني .. بس لما أشوف تفاعل أول شيء من الأعضاء 

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

    لا بجد .. ده واجب بسيط .. لو فهمت الدرس كويس .. طبق ونفذ الواجب ده وابعته لي على الخاص .. وإذا واجهتك فيه مشاكل برضه ابعت لي على الخاص ..
    وللمرة العشرين .. لو فيه أي اسئلة .. محدش يكسف .. الدورة دي في الأول والآخر منكم وليكوا .. أتمنى إنكوا تنجحوها ..

    الواجب :

    اكتب برنامج بلغة السي بلس بلس يطلب من المستخدم إدخال 4 أعداد ثم يقوم بإخراج ناتج جمعهم في سطر ، وناتج طرحهم في سطر آخر .

    أظن واجب مفيش أسهل منه  ..

    يلا .. نشوفكم على خير ..

    تحياتي لكم ..

    ========= نهاية الدرس الأول =========

      الوقت/التاريخ الآن هو الأربعاء ديسمبر 07, 2016 9:20 am