الدعم الفنى وضمان الجودة _ شعارنا _ الطالب امانة والمعلم ضمير
منتديات إطسا التعليمية ترحب بكم
====================
عزيزي : أنت مسجل كزائر .
إذا كان لديك حساب أضغط ...
دخول
. وإذا أردت إنشاء حساب جديد أضغط ... تسجيل

الدعم الفنى وضمان الجودة _ شعارنا _ الطالب امانة والمعلم ضمير

منتديات عامة .... تقنيات....فنون ....الطالب والمعلم والمدارس ..... واقسام اخرى ..... الكمبيوتر والتطوير......اسلاميات
 
الرئيسيةالبوابةمكتبة الصورالتسجيلدخول

شاطر | 
 

 ++c الدرس الاول Lesson One ::|::|::

اذهب الى الأسفل 
كاتب الموضوعرسالة
Admin
Admin
avatar

ذكر عدد الرسائل : 1510
العمر : 63
الوظيفة : مدير ادارة
علم الدولة :
نقاط : 1506
تاريخ التسجيل : 21/05/2008

مُساهمةموضوع: ++c الدرس الاول Lesson One ::|::|::   الثلاثاء نوفمبر 10, 2009 6:22 pm

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]


[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]





الدرس الاول Lesson One


أولا :: [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]

ثانياً :: سنبدأ بــ طرفة لأن الدرس الأول سيكون الأكثر فيتامينات و قد يكون دسماً ... [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]

و هي غير داخله في الدرس أيضا [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]

نظر طفيلي الى قوم ذاهبين فلم يشك أنهم في دعوة ذاهبون الى وليمة ، فتبعهم ، فأذا هم شعراء قصدوا السلطان بمدائح لهم ...
فلما أنشد كل واحد شعره ولم يبق الا الطفيلي , وهو جالس ساكت ...
فقال له السلطان : أنشد شعرك ...
فقال : لست بشاعر ..
قال السلطان : فمن أنت؟؟
قال : أنا من الغاوين الذين قال الله فيهم : (والشعراء يتبعهم الغاوون) فضحك السلطان وأمر له بجائزة الشعر.


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


[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]

ستبدأ رحلتك - بمشيئة الله - لتصبح مبرمجاً محترفاً خبيراً , و في نهاية الدرس سوف تكون قادرا - بإذن الله - على تعريف و شرح :

|| السبب وراء تحول C++ إلى المقياس البارز في مجال تطوير البرامج.

------------------------------------------------------------------------------



نبذة تاريخية مختصرة عن لغة ++C
=========================

مرت لغات الكمبيوتر بتطور كبير وشامل منذ وقت إنشاء أولى أجهزة الكمبيوتر المستخدمة في حساب مسارات المقذوفات أثناء الحرب العالمية الثانية .
في ذلك الوقت ، تعال المبرمجون مع اكثر اوامر الكمبيوتر بدائية ، ألا وهي لغة الآلة machine language.

هذه الاوامر كان يتم تمثيلها بسلاسل طويلة من الاحاد والاصفار.وسريعا تم إختراع برامج تجميع assemblers لتحويل أوامر لغة الآلة إلى أوامر يمكن قرأتها وتذكرها ،مثل الأمر add،والأمرmov. في نفس الوقت تم نطوير لغات المستوى الأعلى ، مثل لغة بيسيكbasic ولغة كوبل cobol. أتاحت هذه اللغات للمبرمجين العمل مع أوامر مقاربة للكلمات والعبارات العادية ، مثل let i=100. كانت هذه الأوامر تترجم إلى لغة الآلة بواسطة برامج تفسير وترجمة.يهمل المفسر interpreterعلى ترجمة البرامج أثناء قراءته له، محولا أوامر البرنامج إلى إجراءات كل على حدة.

أما المترجم compiler فيعمل على ترجمة الأوامر إلى صيغة وسيطة.هذه الخطوة تسمى التجميع compiling ينتج عنها أحد الملفات الهدف ( object file ) . يقوم المترجم بعد ذلك بإستدعاء الرابط والذي يقوم بتحويل الملف الهدف إلى برنامج تنفيذي ( executable ) والذي يمكن تنفيذه بعد ذلك .

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

ومن المزايا الأخرى للعديد من اللغات المترجمة مثل C++ هي إمكانية توزيع للبرنامج التنفيذي على اشخاص لايملكون المترجم . أما مع اللغات المستخدمة للمفسر ، فلا بد من وجود هذا المفسر لتشغيل البرنامج.

بعض اللغات مثل فيجول بيسيك ، تسمي المفسر( interpreter ) بمكتبة وقت التشغيل ( runtime library ) . تسمى لغة جافا المفسر بالآلة الظاهرية VirtualMachine ( VM )، لكن في هذه الحالة يقوم الستعرض مثل فايرفوكس أو انترنت إكس بلورل بتوفير الآلة الظاهرية على مدار العديد من السنوات ، كان الهدف الرئيسي للمبرمجين تحتم الإحتفاظ بالبرنامج صغيرا، لأن الذاكرة كانت مكلفة ، وكان لابد أن يكون سريعا وكان المعالج مكلف أيضا وبعد أن أصبحت أجهزة الكمبيوتر أصغر حجما وأرخص وأسرع وأنخفضت أسعارها تغيرت هذه الأولويات في الوقت الحالي أصبحت تكلفة المبرمج تفوق بكثير تكلفة أغلب أجهزة الكمبيوتر المستخدمة داخل الشركات .


[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]


الــبــرامـــج
==============

تستخدم كلمة برنامج ( program ) للتعبير عن معنين الأول لوصف الأوامر المصدر ( source code ) التي يكتبها المبرمج، والثاني لوصف البرنامج التنفيذي( executable ) بأكمله. هذا الإستخدام قد ينتج عنه الكثير من الإرتباك لذلك سنحاول التفرقه بين الأوامر المصدر من ناحية ، والبرنامج التنفيذي من ناحية أخرى .
يمكن تعريف البرنامج انه مجموعة من الأوامر التي يكتبها المبرمج أو بأنه أحد الأجزاء التنفيذية من التطبيق. يمكن تحويل الأوامر المصدر الى برنامج تنفيذي بطريقتين الأولى : هي أن يقوم المفسر بتحويل الأوامر المصدر إلى أوامر يفهمها الكمبيوتر بحيث ينفذها على الفور. الطريقة الثانية: هي أن يقوم المترجم بتحويل الأوامر المصدر إلى برنامج ، والذي سيمكنك تشغيلة في وقت لاحق . وبالرغم من سهولة إستخدام المفسر فإن أغلب عمليات البرمجة الجاده تستخدم المترجم لأنه يتم تشغيلها أسرع.


[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]


حــــل المـشـكــلات
==============

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

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

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


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

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

============
تـعـدد الأوجــه : : : |
============
تدعم لغة سي++ فكرة قيام كائنات مختلفة بالعمل المناسب من خلال مايسمى بتعدد أوجه الإجراء وتعدد أوجه الطبقه، يشير مصطلح تعدد الأوجه ( polymorphism ) الى اسم واحد يأخذ العديد من الأوجه ، وينقسم المصطلح الى كلمتين، حيث تعني كلمة( poly ) الكثرة، وكلمة( morph ) الشكل او الصيغة .

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]


مراحل تطور لغة السي++
==================

أثناء الستينات بينما كانت الحواسيب فى مرحلة مبكرة من التطوير ظهرت العديد من لغات البرمجة من بينهم لغة ALGOL 60 و التى طورت كبديل للغة FORTRAN لكنها أخذت منها بعض مبادئ البرمجة الإنشائية (structured programming) و التى فيما بعد سوف تؤثر فى معظم اللغات الإجرائية (procedural languages) مثل لغة CPL و خليفتها (مثل C++). أيضا أثرت لغةALGOL 68 بشكل مباشر فى أنواع البيانات (data types) فى لغة C. و بالرغم من هذا كانت لغة ALGOL لغة غير محددة (non-specific language) و فكرتها الغامضة جعلتها غير عملية لإيجاد حلول لمعظم المهام التجارية.

فى 1963 ظهرت لغة (CPL (Combined Programming language)) مع فكرة أن تكون أكثر تحديدا من لغة ALGOL و FORTRAN فى هذا الوقت من أجل المهام البرمجية القاسية و مع ذلك جعلها نفس التحديد هذا لغة ضخمة و من ثم صعبة التعلم و التنفيذ.

فى 1967 طور مارتن ريتشاردس (Martin Richards) لغة (BCPL (Basic Combined Programming Language)) و التى أفادت تبسيط لغة CPL لكنها احتفظت بالملامح الأكثر أهمية التى قدمتها اللغة مع أنها كانت أيضا غامضة و إلى حد ما لغة ضخمة.

فى عام 1970 انغمس كين تومبسون (Ken Thompson) فى تطوير نظام UNIX بمختبرات بيل(Bell Labs) و انشأ لغة B. كانت باب من لغة BCPL من أجل جهاز محدد (DEC PDP-7) و نظام محدد (UNIX) و تم تكيفها لزوقه و حاجاته الخاصة. و النتيجة النهائية كانت أيضا تبسيطا أكبر للغة CPL مع أنها متعلقة على النظام. لديها تحديدات كبيرة مثل أنها لم تكن تترجم إلى كود قابل للتنفيذ(executable code) و لكن إلى كود منظوم (threaded-code) و الذى ينتج كود ابطأ أثناء التنفيذ و لذلك كان غير ملائم لتطوير نظام تشغيل و لهذا منذ عام 1971 بدأ دينيس ريتشى (Denis Ritchie) من فريق مختبرات بييل (Bell Labs) تطوير مترجم (compiler) B و الذى فيما بين أشياء أخرى كان قادرا على انتاج كود قابل للتنفيذ بشكل مباشر. هذه اللغة B الجديدة أخيرا سميت C و قدمت بإضافة بعض المبادئ الجديدة الى اللغة مثل أنواع البيانات (char).

فى 1973 قد طور دينيس ريتشى (Denis Ritchie) أساس لغة C. تضمين الأنواع (types) و معالجتها (handling) بالإضافة الى تحسين المصفوفات (arrays) و المؤشرات (pointers) مع قابلية النقل (portability) المشروحة لاحقا دون أن تصبح لغة مستوى عالى (high-level language) منحت الى توسع لغة C. و قد اشتهرت مع الكتاب "The C Programming Language" لبريان كيرنيغان (Brian Kernighan) و دينيس ريتشى (Denis Ritchie)المشهور بالكتاب الأبيض (White Book) و الذى نفع كـde facto standard حتى نشر الـformal ANSI standard (ANSI X3J11 committee) فى 1989.

فى 1980 بدأ بجارنى ستروستروب (Bjarne Stroustrup) من مختبرات بييل (Bell Labs)تطوير لغة C++ و التى اكتسبت هذا الإسم رسميا فى نهاية 1983 عندما تم نشر أول كتيب (manual) لها. فى أكتوبر 1985 ظهرت أول اصدارة تجارية من اللغة كذلك أول طبعة من كتاب The C++ Programming Language" لبجارنى ستروستروب (Bjarne Stroustrup).

أثناء الثمانينات تم تهذيب لغة C++ حتى أن أصبحت لغة بشخصيتها الخاصة. كل هذا بخسائر قليلة جدا فى التوافق مع الكود فى لغة C و دون التخلى عن مميزاتها الأكثر أهمية. حقيقة ان الـANSI standard للغة C المنشور فى 1989 نال جزأ جيدا من اسهام لغة C++ فى البرمجة الإنشائية (structured programming).

من 1990 و فيما بعد بدأت لجنة الـANSI X3J16 تطوير معيار محدد للغة C++. فى الفترة المنقضية و حتى نشر المعيار فى 1998 شهدت لغة C++ انتشارا فى استخدامها و اليوم هى اللغة المفضلة لتطوير تطبيقات احترافية على جميع المنصات (platforms).

لقد تطورت لغة C++ و هناك اصدارة جديدة من المعيار هى c++ 09 تحت التطوير من أجل نشرها قبل نهاية 2009 بمميزات جديدة متعددة.


[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]


لغة C++ وجافا
===========

تتسيد لغة C++ الآن مجال تطوير البرامج التجارية . في السنوات الأخيرة ، بدأت لغة جافا (Java) في تحدي هذه السيطرة ، لكن عادت الأمور الى طبيعتها، وبدأ العديد من المبرمجين الذين تحولوا من سي++ الى جافا في العودة مرة أخرى ، على أية حال تتشابه اللغتان في الكثير من النواحي ،لدرجة
ان تعلم احداهما سيعني تعلم 90%من الأخرى.

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]


مقياس ( ANSI )
============

قامت جمعية المقاييس المعتمدة ( Accredited Standards Committee ) ، والتي تعمل تحت إشراف المعهد القومي الأمريكي للمقاييس (يعرف
إختصارابـ(ANSI) ) بإنشاء مقياس عالمي للغة سي++.
يعرف مقياس لغة سي ++ كذلك بالمقياس ( ISO ) , اختصار لـ ( International Standards Organization ) , و مقياس ( NCITS ) ,
و مقياس ( X3 ) . ستلتزم هذه الدورة بالإشارة إلى مقياس ( ANSI/ISO ) نظرا لكونه المصطلح الأكثر إستخداما.


[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
***ملحوظهـ:***-----------------------------------------------------------------------------------
كلمة( ANSI )مكونة من الحروف الأولى للكلمات ( American National Standards Institute )، وتنطق آنسي.
----------------------------------------------------------------------------------------------------

ومقياس( ANSI )هو محاولة لظمان إماكنية نقل أوامر سي++ . على سبيل المثال الأوامر المتوافقة مع مقياس( ANSI )، والتي ستقوم بكتابتها داخل المترجم التي تقدمه ميكروسوفت، ستتم ترجمتها بدون أخطاء عند إستخدام أي مترجم آخر . علاوة على ذلك ، نظرا لأن الأوامر الواردة بهذه الدورة
متوافقه مع ( ANSI )، فسوف تتم ترجمتها بدون أخطاء على جهاز ماكنتوش ، او ويندوز.

بالنسبة لمعظم دارسي لغة سي++ ، سيظل مقياس( ANSI ) خافيا عليهم ، لقد إحتفظ هذا المقياس إستقراره لفترة من الوقت، وتعمل كافة الشركات الكبرى على دعمه ، لقد بذلنا قصارى جهدنا لضمان أن كافة الأوامر الواردة هنا متوافقة مع مقياس( ANSI ).

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]







هذا كل شئ في الدرس الأول [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]


أتمنى أن يحوز على رضاكم [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]


و نتمنى أن نكون قد وُفقنا , أما ما أصبته فمن الله , و ما أخطأت فمن نفسي و الشيطان [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]



و صلي اللهم على سيد الخلق و أطهرهم محمد حبيبي [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة] - صلى الله عليه و سلم - و على آله و صحبه و التابعين و من اهتدى بهداه [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]


سبحانك اللهم و بحمدك أشهد ألا إله إلا أنت , أستغفرك و أتوب إليك



و إلى أن نلقاكم - إن شاء الله - في الدروس القادمه ...


أخوكم و محبكم

منقووووووووووووووول
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://etsa-edu4.yoo7.com
 
++c الدرس الاول Lesson One ::|::|::
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
الدعم الفنى وضمان الجودة _ شعارنا _ الطالب امانة والمعلم ضمير :: تقنيات :: تعلم البرمجــــــــه-
انتقل الى: