Advanced Search

المحرر موضوع: مقدمة في لغة البرمجة C++  (زيارة 29885 مرات)

0 الأعضاء و 2 ضيوف يشاهدون هذا الموضوع.

مارس 10, 2005, 06:51:20 صباحاً
زيارة 29885 مرات

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« في: مارس 10, 2005, 06:51:20 صباحاً »
بسم الله الرحمن الرحيم

اخواني الاعزاء .. هذه مقدمة في دروس لغة البرمجة C++  و التي تعد من أعظم لغات البرمجة للحواسيب الشخصية و المتوسطة على الاطلاق ان لم تكن اعظمها..

أرجو ملاحظة النقاط التالية:
* ستكون بعض الدروس متأخرة قليلا ( لا اضمن نشر الدروس بسرعة كبيرة ! )
* سأحاول استخدام اللغة الانجليزية في شرح معظم الدروس للتسهيل على من اراد الاستزادة
* سأحاول البداية من الصفر المطلق في الدروس ، فمن عنده خلفية ( يتحملنا شوي ) لحد ما نصل عند مستواه ، و ذلك لتحقيق الفائدة العامة
* سنبدأ بالتطبيق في المراحل الاولى على برنامج Visual C++ version 6 الموجود في حزمة البرامج MS Visual Studio 6 ولا داعي لشرح كيفية تنزيل البرنامج
* تتطلب الدروس معرفة أساسيات نظام التشغيل Windows للمستخدمين العاديين


الدروس تحتوي ( حتى اللحظة ) :

1. البرنامج ( اهميته و ماهيته )
2. مراحل انتاج البرنامج
3. تاريخ لغة البرمجة C++
4. المتغيرات
5. البرنامج الاول
6. الادخال و الاخراج و أولويات العميليات الحسابية
7. الجمل الانتقالية: if , switch
8. جمل الحلقات: goto و while و do-while و for
9. الجمل break و continue
10. المصفوفات ذات البعد الواحد
11. المصفوفات ذات الابعاد المتعددة
12. المؤشرات

و اللائحة ستطول مع الزمن ان شاء الله.



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

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

مارس 10, 2005, 07:10:37 صباحاً
رد #1

ساكن الأفق

  • عضو متقدم

  • ****

  • 899
    مشاركة

    • مشاهدة الملف الشخصي
مقدمة في لغة البرمجة C++
« رد #1 في: مارس 10, 2005, 07:10:37 صباحاً »
السلام عليكم ورحمة الله وبركاته...

سيروا ونحن من ورائكم..

شكرا لك أبو ريان، ووفقك الله... '<img'>


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

مارس 10, 2005, 01:58:40 مساءاً
رد #2

السفير

  • عضو خبير

  • *****

  • 7214
    مشاركة

    • مشاهدة الملف الشخصي
مقدمة في لغة البرمجة C++
« رد #2 في: مارس 10, 2005, 01:58:40 مساءاً »
السلام عليكم

خطوة رائعة أخي علاء , أسأل الله لك التوفيق .

بارك الله فيك

مارس 10, 2005, 07:54:58 مساءاً
رد #3

ابو يوسف

  • عضو خبير

  • *****

  • 10867
    مشاركة

  • مشرف اداري

    • مشاهدة الملف الشخصي
مقدمة في لغة البرمجة C++
« رد #3 في: مارس 10, 2005, 07:54:58 مساءاً »
السلام عليكم

اخي الكريم Vipera Palestina

بانتظار هذه الدروس القيمة والمفيدة بإذن الله تعالى

شكرا جزيلا لك

'<img'>

مارس 11, 2005, 07:57:25 مساءاً
رد #4

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #4 في: مارس 11, 2005, 07:57:25 مساءاً »
شكرا لكم اخواني على التشجيع..
نبدأ الدرس الاول..
البرنامج: هو مجموعة أوامر يكتبها المبرمج حسب خطوات منطقية متسلسلة لحل مشكلة معينة.
أذكّر.. البرنامج ما هو الا حل مشكلة معينة مهما عظم أو صغر..

بالنسبة لأهميته ..
ان نظرت الى الشاشة التي امامك و تفحصت جهازك القابع على الطاولة.. فأنت ترى معدات و أسلاك توصيل كبيرة الحجم أحيانا و صغيرة بحيث لا ترى بالعين المجردة أحيانا أخرى.
فكيف يستطيع الحاسوب المكون من هذه العناصر و الدوائر الكهربائية و الالكترونية المعقدة من حل مشاكل الانسان تارة و امتاعه تارة اخرى ؟
كل ذلك يحصل بمساعدة البرامج.فهي عبارة عن اشارات تدل الحاسوب لفعل أوامر معينة.

من أنواع البرامج:

1. نظم التشغيل (Operating Systems): و هي مجموعة هائلة من البرمجيات الصغيرة التي يحل كل منها مشكلة صغيرة جدا كجمع رقمين أو تحديث الالوان على الشاشة. و من أمثلتها المعروفة نظم Windows و نظام Linux و Unix و Apple Mac.

2. البرمجيات المساعدة (Utility Softwares): و هي برمجيات تساعد المستخدم على حل بعض المشاكل التي تواجه الجهاز و منها مضادات الفيروسات و أشباهها. من أمثلتها McAfee .

3. الألعاب الحاسوبية: و هي برمجيات تساعد المستخدم على الخروج من واقعه الحقيقي الى واقع آخر بهدف التسلية و المرح. " بالنسبة للأمثلة فلكل منا أمثلته المفضلة !  ':p'  "
الحياة مزيج جميل مستعص على الادراك البشري من القوة و الحب و الكره و الضعف و لا نمسها بشيء .. بل هي من يمسنا بكل شيء و طريقنا الوحيد لتغييرها هي تغيير أنفسنا من الداخل. و هو أصعب ما يمكن لي أن أتصور حدوثه.
كل شيء في هذه الحياة قد رسم بخط أسود... و إن لم نره !

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

مارس 11, 2005, 08:26:34 مساءاً
رد #5

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #5 في: مارس 11, 2005, 08:26:34 مساءاً »
الدرس الثالث: مراحل كتابة البرنامج:

ملاحظة: انتم دخلتم هسا في تخصصي!  ':p'  أهلا و سهلا!!!!
يمر البرنامج بخطوات عديدة قبل خروجه الى الحياة العملية.. و أي تقصير في أحدها سيؤدي بكل تأكيد الى فشل جزئي أو كلي أحيانا في أداء البرنامج.. و على الاقل سيكون البرنامج ضعيفا هش البناء.

أولا (تحديد المشكلة و جمع المعلومات): لكل مشكلة حل مهما كانت .. و لكل داء دواء يستطب به الا الحماقة اعيت من يداويها... " بيت شعر قديم ". عليك - عزيزي المبرمج - تحديد المشكلة قبل الدخول في تفاصيلها و إعطائها حجمها الصحيح الأكيد ( لا تزيد ولا تنقص ! ). مثال:
اذا تحتاج برنامج لتمثيل الحركة على اشارة مرور.. ممكن يكون المدى ( Domain ) البرنامج هو واحد فقط من الشوارع التي تصل الى الاشارة و ممكن يكون هو جميع الحي التي تقع الاشارة في منتصفه. احذر ! فعدم تحديد المدى الصحيح للبرنامج قد يقود الى لبس في الفهم للمشكلة أو اعطائها اكبر من حجمها مما يضيع عليك المال و الجهد. اذهب الى الاماكن التي تتوقع أن يباع برنامجك فيها و استفسر من الزبائن عن المتطلبات الرئيسة للبرنامج من وجهة نظرهم ، لا تعطهم أكثر مما يطلبون لأنهم لن يحتاجوه ولا تعطهم أقل لكي لا يتأخروا عليك في الدفع  '<img'>  .

ثانيا ( تحليل المشكلة ): حلل المشكلة الى مشاكل أبسط منها و الأبسط الى أبسط حتى تصل الى مشاكل ذرية " Atomic Subprblems " و للتمثيل:
فلكي نمثل حركة السير على الاشارة فنحن نحتاج الى عداد أو ساعة لتقسيم الحركة و معرفة أي جهة ستفتح و أيها ستغلق.. و ما الى ذلك.

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

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

مارس 11, 2005, 08:26:42 مساءاً
رد #6

ساكن الأفق

  • عضو متقدم

  • ****

  • 899
    مشاركة

    • مشاهدة الملف الشخصي
مقدمة في لغة البرمجة C++
« رد #6 في: مارس 11, 2005, 08:26:42 مساءاً »
السلام عليكم...

هل يمكننا السؤال في أثناء الدروس؟

وإذا كان ذلك ممكنا فأنا أتسائل كيف يمكن اعتبار لعبة ما برنامجا لحل مشكلة؟

شكرا لك... '<img'>


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

مارس 11, 2005, 09:06:16 مساءاً
رد #7

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #7 في: مارس 11, 2005, 09:06:16 مساءاً »
طبعا يمكن السؤال..
بالنسبة للسؤال: اعتبر نفسك طبيب نفسي .. بكون البرنامج حل لعقدة الخوف من الحشرات..
اعتبر نفسك مهندس تصميم داخلي أو شيء من هذا القبيل.. انت الان تحاكي بالواقع و تنتج ما يسمى Virtual Reality أو الواقع الافتراضي ..
اللعبة الان فكرة .. و تنتشر الالعاب الان و تنجح بسبب غموض أفكارها و نجاحها باجتذاب المستخدم.. فأنت ( المبرمج ) الان تلعب دور المعلم للأخلاق النبيلة أو الصبر أو أي شيء هو الهدف من اللعبة..

ارجو ان تكون الفكرة قد وصلت بالشكل الصحيح!
تحياتي '<img'>
الحياة مزيج جميل مستعص على الادراك البشري من القوة و الحب و الكره و الضعف و لا نمسها بشيء .. بل هي من يمسنا بكل شيء و طريقنا الوحيد لتغييرها هي تغيير أنفسنا من الداخل. و هو أصعب ما يمكن لي أن أتصور حدوثه.
كل شيء في هذه الحياة قد رسم بخط أسود... و إن لم نره !

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

مارس 12, 2005, 04:08:49 مساءاً
رد #8

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #8 في: مارس 12, 2005, 04:08:49 مساءاً »
ثالثا ( تصميم الحل ): وجدنا المشكلة و حللناها .. فلنبدأ بالحل.. في هذه الخطوة يجب عليك أن تبدأ بايجاد الحل المناسب و تصميمه بأقل ما يمكن من استغلال جهد الحاسب و سعته التخزينية ، مع مراعاة محاولة جعل البرنامج بأسرع ما يمكن (( من أراد الاستزادة فعليه الرجوع الى مراجع هندسة البرمجيات )) .

رابعا ( الاختبار ): في هذه المرحلة نقوم بعمليات اختبار للبرنامج جزئيا حتى نصل لاختبار لكامل محتويات البرنامج.

خامسا ( التسويق ): في هذه المرحلة نسوق البرنامج!!!!

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

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

مارس 12, 2005, 04:33:41 مساءاً
رد #9

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #9 في: مارس 12, 2005, 04:33:41 مساءاً »
تاريخ لغة البرمجة C++ ..
طبعا هذا الدرس اختياري ، ولا يجب عليك عزيزي القاريء الالمام التام به ، لذلك سأحاول الاختصار قدر الامكان.

بدأت هذه اللغة في معامل Bill Labs و هي المكان نفسه الذي اخترع فيه الترانزستور من قبل و هي - المعامل - ذات سمعة كبيرة في مجالات التكنولوجيا جميعا..

بالنسبة للغة نفسها فهي مشتقة من لغة سابقة لها اسمها BCLP و اسمها المختصر هو B ، و من ثم تطورت الى لغة C التي صممت بسبب الحاجة الى لغة لكتابة نظم التشغيل و خاصة Unix التابع لشركة Sun Microsystems .
و من بعد ظهور البرمجة الموجهة للكائنات تطورت اللغة لتعتمد Object oreiented programming فأصبحت تدعى C++ .
دخلت Microsoft على الخط..! فأنتجت تطويرا جديدا لهذه اللغة يعتمد البرمجة للنظامها المشهور Windows و أسمته Visual C++ . و ظهر منها 6 نسخ كان آخرها VC++ 6 في عام 1998 .
في منتصف التسعينيات أنتجت شركة Sun بعض التعديلات على اللغة الاصلية و أخرجت لغة Java كلغة ببرمجة مخصصة لتطبيقات الويب و داعمة لمباديء البرمجة الكينونية و تعمل على معظم انظمة التشغيل في العالم.
في عام 2000 أنتجت مايكروسوفت .NET framework و الذي كان - ولا يزال - صيحة هائلة في عالم البرمجة.
مع الاصدار الجديد ظهرت آخر النسخ المعدلة عن اللغة C++ و التي سميت بـ Maneged C++ ( MC++ )

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

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

مارس 12, 2005, 11:06:40 مساءاً
رد #10

amoona

  • عضو مساعد

  • **

  • 214
    مشاركة

    • مشاهدة الملف الشخصي
مقدمة في لغة البرمجة C++
« رد #10 في: مارس 12, 2005, 11:06:40 مساءاً »
متى بنوصل حق ال numbering system  و هالسوالف؟؟

مارس 13, 2005, 10:35:34 مساءاً
رد #11

ساكن الأفق

  • عضو متقدم

  • ****

  • 899
    مشاركة

    • مشاهدة الملف الشخصي
مقدمة في لغة البرمجة C++
« رد #11 في: مارس 13, 2005, 10:35:34 مساءاً »
السلام عليكم...

أنا أؤيد عدم العجلة أختي الكريمة...

لكنني لا أعتقد أن درس تاريخ اللغة يقدم أو يؤخر شيئا... ما رأيكم؟


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

مارس 14, 2005, 05:59:10 صباحاً
رد #12

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #12 في: مارس 14, 2005, 05:59:10 صباحاً »
اخواني الاعزاء.. بالنسبة للـ Numbering Systems فيمكنك الاطلاع عليها هنا
أما بالنسبة للتاريخ ، فأنا معكم في هذه النقطة و قد ذكرته لأن معظم المراجع تعطي هذه المقدمة في البداية!
الحياة مزيج جميل مستعص على الادراك البشري من القوة و الحب و الكره و الضعف و لا نمسها بشيء .. بل هي من يمسنا بكل شيء و طريقنا الوحيد لتغييرها هي تغيير أنفسنا من الداخل. و هو أصعب ما يمكن لي أن أتصور حدوثه.
كل شيء في هذه الحياة قد رسم بخط أسود... و إن لم نره !

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

مارس 14, 2005, 06:39:26 صباحاً
رد #13

Vipera Palestina

  • عضو خبير

  • *****

  • 1539
    مشاركة

  • مشرف قسم الحاسوب

    • مشاهدة الملف الشخصي
    • http://ala.aburayyan.com
مقدمة في لغة البرمجة C++
« رد #13 في: مارس 14, 2005, 06:39:26 صباحاً »
المتغيرات

# مجموعة من القواعد:
* المتغير: هو مكان في الذاكرة المؤقتة RAM يحجزه البرنامج لكي يخزن أو يسترجع المدخلات أو نتائج العمليات الحسابية.
* لغة C++ هي لغة حساسة لحالة الاحرف - على عكس Visual Basic - فمثلا: A غير a
* كل جملة من جمل اللغة C++ يجب أن تنتهي برمز الفاصلة المنقوطة.


لكي نحجز مكان في الذاكرة تكون العملية على وزن المثال التالي:
VarType varName = iniValue;
و لتفسير المثال السابق:
VarType : هو نوع المتغير ، هناك أنواع مختلفة من المتغيرات المبنية داخليا في اللغة فضلا أنه مع التقدم في اللغة يمكنك انشاء أنواع خاصة بك تلائم احتياجات برنامجك.
varName : اسم المتغير الذي يمكنك من مناداته و التعامل معه، لاحظ أنه لا يمكن أن يبدأ برقم و لا يمكن أن يكون لمتغيرين نفس الاسم و لا يمكن أن يكون اسم المتغير احدى الكلمات المحجوزة للغة أصلا.
= : علامة المساواة و هي هنا لتعطي المتغير الموجود على اليسار قيمة الموجود على اليمين.
iniValue : و هي القيمة الابتدائية للمتغير و يمكن أن تكون قيمة ( عدد مثلا ) أو متغير آخر من نفس النوع أو نوع آخر متوافق معه.
" لاحظ أن اعطاء المتغير قيمة ابتدائية هي أمر اختياري ، فيمكنك حجز متغير على الصيغة:
VarType varName; فقط! و لكن عندها يمكن أن يكون محتواه ( المتغير) هو قيمة غير معروفة  و غير مفهومة "

بعض أنواع المتغيرات الموجودة في اللغة أصلا:
int : Integer value with size 4 bytes
float : a number with a fraction part with size of 4 bytes
char : a character with size of 1 byte
double : a number with fraction part with size of 8 bytes

هذه الأنواع كافية لبداية فقط! هناك العديد من الأنواع التي يمكن التعامل بها في اللغة!

و في النهاية هذه بعض الاستخدامات و الأمثلة لهذه الأنواع:
* لحجز مكان يحتوي على رقم لا يزيد عن 4294967295 فعلينا استخدام النوع int
* لحجز مكان سيحوي عمليات حسابية دقيقة و كبيرة نوعا ما نستخدم double
* لحجز مكان يحوي كلمات أو أحرف .. char
* لحجز مكان سيحوي حسابات فاتورة الكهرباء .. float
 أنا حاضر لأي سؤال!!
الحياة مزيج جميل مستعص على الادراك البشري من القوة و الحب و الكره و الضعف و لا نمسها بشيء .. بل هي من يمسنا بكل شيء و طريقنا الوحيد لتغييرها هي تغيير أنفسنا من الداخل. و هو أصعب ما يمكن لي أن أتصور حدوثه.
كل شيء في هذه الحياة قد رسم بخط أسود... و إن لم نره !

ألا كل شيء ما خلا الله باطل و كل نعيم لا محالة زائل

مارس 15, 2005, 12:10:09 صباحاً
رد #14

Reemj

  • عضو مبتدى

  • *

  • 2
    مشاركة

    • مشاهدة الملف الشخصي
مقدمة في لغة البرمجة C++
« رد #14 في: مارس 15, 2005, 12:10:09 صباحاً »
كيف اكتب برنامج بلغة السي باستخدام ال files ووظيفة هذا البرنامج أن يقرأ من ملف وهذا الملف يحتوي على معلومات بال html  ومن ثم يطبعهم على ملف آخر
مثال:
                                                                  
                                   my first page
                                                          >
          

this is by using html   
                                                                                                
                                                                
والناتج كالتالي:
my first page
this is
my first page
by using html