||
 
 

 

 

 


العودة   منتدى الإدارة العامة للتعليم بمنطقة القصيم ( بنين - بنات ) > المنتديات العامة > المنتدى العام
الاســـــــم
رمز الدخول

المنتدى العام كل مايتعلق بالتعليم من مواضيع ومقترحات وتجارب عامة .

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
قديم 09-09-2018, 01:23 PM رقم المشاركة : 1
معلومات العضو
ذكريات باقية
تربوي جديد
إحصائية العضو






ذكريات باقية غير متصل


الفرق بين لغتي C , c++

لغة C هي لغة تصنف كـ لغه متوسطة المستوى وفي بعض الاحيان متدنية المستوى لانها قريبا جدا من المعالج و الذاكره و سريعه جداً وهذه احد مميزات اللغات متدنية المستوى عن اللغات عالية المستوى , صممت لغة C في الاصل لتستخدم للتطوير والعمل على نظام يونكس , سميت بلغة C لان جزئاً كبيراً منها مقتبس من لغة B و ظهرت لغة C في اوائل السبعينيات على يد كل من كن تومسون , برايان كرنيغان و دينيس ريتشي.

لغة C ++ بدأ تطويرها كـ لغة من لغة C على يد بيارن ستروستروب في 1979 اي بعد ظهور لغة C ب حوالي 9 اعوام وسميت ب C++ من باب الدعاية لكي تكون هي الجزء الثاني من لغة C , لاقت لغة C++ شيوعاً كبيراً و استخدمت في بناء انظمة التشغيل و التعامل مع البنية الصلبة للحاسوب (المكونات الماديه).

بعد ان قرأت نبذه عن كل من اللغتين دعونا ندخل في لب الموضوع

هناك العديد من اللغات بنية من لغة C او يعتبرها البعض قريباً جداً منها مثل C++ , C# ,JAVA وغيرها .

ان الفرق بين لغة C و لغة C++ بحسب نظري

اولاً : في الحجز الديناميكي , في لغة C نستخدم الدوال malloc and free , اما في C++ نستخدم new and delete .

ثانياً : في تعريف المتغيرات , في C كنا نعرف المتغيرات في بداية البرنامج , اما في

C++ نقوم بتعريف المتغيرات متى مااحتجنا لها في اي مكان بالبرنامج .

ثالثاً : عند التصريح عن المتغيرات من نوع struct او enum , كنا نعيد كتابة الكلمة فيC قبل تعريف المتغيرات
مثل
struct STRUCT_NAME a,b;


أما فى ال++C نكتفي ب
STRUCT_NAME a,b;

رابعاً : اوامر الادخال والاخراج ,في C printf & scanf في C++ cout & cin
خامساً : دوال التعامل مع الملفات
سادساً : سطور التعليقات في C كنا نستخدم \**\ اما في C++ فنستخدم \\



سابعاً : لغة C++ اسهل من حيث الاوامر مثل اوامر الحجز الديناميكي مثلا في C type *ptr = (type)malloc(sizeof(type)); لاكن في C ++ type *ptr =new type;


ثامناً: وهو بنظري اهم فرق بين اللغتي ال Classes

إضافة لذلك, فاللغتان لغتان مختلفتان, و الشبه بينهما يرجع لأسباب تاريخية, و السبب الرئيسي هو تأثر لغة ++C بلغة C, كما تأثرت عشرات اللغات المستخدمة حالياً في عالم البرمجة و التطوير, لكن ما يميز لغة ++C هو أنها لم تكتفي باتباع نهج لغة C في الـ Syntax و لكنها أكملت مسيرة و مفهوم لغة C, هناك فروق عديدة, فمن ناحية لغة ++C تعتبر ذات أنواع قوية يتم التحقق من العمليات فيما بينها وقت الترجمة كمعظم اللغات الأخرى كـ Java بينما لغة C هي لغة حرة, أي أنها تسمح بكل شيء, و ما يكتبه المبرمج هو ما يحصل بعبارة أخرى, إضافة إلى ذلك, فإن لغة C هي لغة Procedural أو لغة إجرائية, و هذا النوع هو السهل الممتنع في عالم البرمجة, بينما لغة ++C لا تتبع منهجاً معيناً و لكنها توفر للمبرمج أدوات عدة مناهج يمكن اتباعها, فمثلاً يمكنك اتباع طريقة الـ C و هذا ما يحصل مع المبرمجين الجدد في العادة, إضافة إلى ذلك فإنها توفر البرمجة الكائنية, و الـ Generic Programming و كل منهج له أدواته و عدته في ++C و اختر ما يحلو لك, لغة ++C ليست لغة كائنية المنحى OOP و لكنها توفر امكانية تطبيق هذا المنهج,
إضافة إلى ذلك و هو الأهم, ما الهدف الذي أنشأت لأجله اللغتان ؟


مثلاً لغة Java هي لغة موجهة في الغالب للـ Portable Applications و لذلك تشتهر في عالم الشبكات و تطبيقات هواتف الاندريد كما أعتقد,
لغة C تعتبر لغة برمجة عامة جداً أي أنها ليست موجهة نحو تطبيق معين في عالم البرمجة و لكنها لغة Very General و في منتصف الطريق بين اللغات عالية المستوى و اللغات منخفضة المستوى,
لغة ++C ليست عامة جداً كما هو الحال في لغة C, و لكنا صممت لحل مدى واسع من المسائل البرمجية, بالطبع هناك غمار لا تخوضها ++C و تستخدم C في برمجتها في الغالب,

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

ومثل ما تكلمت في اول التدوينة , لغة C بطبعها لغة متوسطة المستوى (أو فى بعض الاحيان تصنف لغة منخفضة المستوي ), و بالتالي فهي قريبة من المعالج و الذاكرة و سريعة جداً,
و لكن في لغة ++C زيادة الأداء يكون بطرق أكثر أماناً و تعطي تلك الطرق كفاءة تفوق كفاءة C في أحيان عدة,


كـ Inlining و الـ MetaProgramming و الـ Templates و اللذان يعتبران أدوات الـ Generic Programming في لغة ++C,
لن يسعني طبعا الحديث عن هذه الميزات كلها , أعتقد أن Google كفيل بذلك,


عموماً الناحية الوحيدة, التي ينتقدها مناصرو C هي الكائنات في لغة ++C, بالطبع لا تنسى أن برامج عملاقة كتبت بـ ++C كـ Office و غيره, و باستخدام البرمجة الكائنية على ما أعتقد.
الآن لماذا يحدث هذا البطئ المنشود عند استخدام OOP في لغة ++C هذا يمكن أن يكون مقالاً بحاله .









  رد مع اقتباس

قديم 25-09-2018, 10:32 PM رقم المشاركة : 2
معلومات العضو
سندس على
تربوية
إحصائية العضو






سندس على غير متصل


شكرااااااااااااااااااااااااااااااااااااااااااااااا اااااااااااااااااااااااااااااااااااا







  رد مع اقتباس

إضافة رد

مواقع النشر (المفضلة)

أدوات الموضوع
انواع عرض الموضوع

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

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع


الساعة الآن 01:50 PM


الإدارة العامة للتعليم بمنطقة القصيم  ِ(بريدة) ِ
Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
عدد الزوّار