header
header
12-1





رد
 
LinkBack أدوات الموضوع إبحث في الموضوع تقييم الموضوع
  #1 (permalink)  
قديم 16th June 2004, 06:25 AM
..HoKo.. ..HoKo.. غير متواجد حالياً
.
 
تاريخ التسجيل: Apr 2004
الجنس : غير محدد
المشاركات: 1,635


~~ ++From C To C ~~


[align=center]
بسم الله الرحمن الرحيم ...[/align]


الموضوع هذا قصدت فيه الطالبات و الطلاب اللي يدرسون السي ..
بالأصح طالبات 151 عال ما ادري بالضبط ايش عند الاولاد



** ملاحظه .. في "l" نهاية كل سطر من الكود dummy طبعا بس عشان ما يقلب لليمين **

[line]



1- من اين جاءت التسمية ... C++ ؟
جميعكم يعرف ال ++ increament operator .. تزيد واحد على المتغير ..
من هذا المنطلق تم تسمية السي بلس بلس .. لأنها تجمع بين ما هو في السي بالاضافة لخصائص أخرى ..


2- ما هي الفروقات بين كتابة الكود في ال C و C++ ؟؟؟؟

لا يوجد فرق كبير في ال syntax بينهما ... فطريقه كتابة ال structures لازالت كما هي في السي
و اقصد بها ..
* conrol structures >>> if
* repetition structures >>> while
و لكن هناك فروقات بسيطة جدا .. ممكن تلخيصها كالتالي :

* في تعريف المتغيرات في السي .. يجب ان يكون في بداية ال block و الا يعتبر syntax error
بينما في السي بلس تستطيع/ن تعريف المتغيرات في أي مكان ..

مثل ..
for(int i=0 ; i<10 ; i++); l
نستطيع كتابة هذا الكود في السي بلس من دون اي مشاكل بينما لا نستطيع ذلك في السي
>>>> خاصيه حلوة

* في السي بلس بلس .. يوجد بعض ال keywords نستخدمها فيها دون السي
مثل ..

new >>> تستخدم لحجز مكان في الذاكرة للمؤشرات .. بدل malloc , calloc
delete >>> تستخدم لحذف او تحرير الذاكرة المستخدمة من قبل المؤشر ... بدل free
class >>> (( هذي لها سالفه طويله )) ... نستطيع القول أنها مشابهه ل struct
operator >>> تستخدم لخاصية معينة موجود في السي بلس .. و هي operator overloading .. و سيلي شرحها ان امكن
namespace >>> من خصائص السي بلس بلس ايضا ..
using >>> من اسمها يمكن فهما .. اذا كنت ترغب باستخدام شي معين ينتمي ل namespace معينه فيجب وضع هذه الكلمة في بداية البرنامج ..
مثل .. using namespace std >>> اخبر الكومبايلر اني سوف استخدم محتويات ال namespace اللي اسمها std ..
و من الممكن التخصيص أكثر ...
مثل .. using std::cout هنا خصصت فقط cout و ليس جميع محتويات ال std ..

:: >>>> تدل على ال scope يعني هذا موجود داخل هذا .. ..
مثل .. std::cout .... يعني cout موجوده داخل .. او من ضمن std

هذي مجرد أمثله .. فقط .. و يوجد الكثير من الفروقات ربما أكون غفلت عنها


3- نسمع كثير عن ال OOP ... يا ترى ايش هي ؟؟

اختصار object orianted programing ... ترجمتها .. البرمجه كائنية المنحنى ..
اسمها كذا يقول انها شي غريب !! ,,, في الواقع هي شي حلو و يسهل للمبرمج اشياء كثير
نجي لشرح المعنى .. في الـ OOP نرى كل شي كأنه object .. طيب يعني ايش object !!

>>>>> متى أقول عن الشي هذا انه object ؟؟

* اذا كان له اسم ،، اذا كلن له خصائص ،، و اذا كان يتفاعل مع غيره او من الممكن انه يتنفذ عليه عمليات ..
مثال (اعجبني هذا المثال ) .. ال TV اوبجكت ,, ايضا Remote control لوبجكت .. ليه ؟
التلفزيون له اسم .. و له ايضا خصائص (القناة ، الصوت،الالوان) .. و من الممكن ان يتفاعل مع غيره ( مثل الريموت يرسل اشارة للتلفزيون .. فيغير شي من خصائصة .. كالصوت مثلا)
هذا كان مجرد مثال ... لا تخافون ما رح يجيكم تلفزيونات و لا ريموتات

نجي الحين للفرق الجوهري بين السي و السي بلس بلس ..
السي .. structurd programimg .. يعني البرنامج يكون مقسم لدوال و ستركتشرات ..
اما السي بلس بلس ... OOP ... يعني بنفكر في كل شي على اساس انه object ... و احنا عرفنا ايش هو الاوبجت ..

>>>>> ندخل شوي في الـ OOP ...

خصائصها ..
* encapculation
* inhiretence
* polymprphism

>>> لووول .. ايش ذا الخرابيط !!

نمسك وحده وحده ...

الاولى ... معناها ان يكون الشي محتفظ بمعلوماته و طرق التعامل معها سوا .. كأنه يحط الداتا و الفنكشنس سوا و يعزلهم عن المحيط الخارجي ..
>>> برضوا ما فهمتوا ... معليش
مثلا ... عندي سترينق (اسم).. كيف يكون هالاسم مآخذ هالخاصيه ... طبعا باعتبره اوبجكت .. و الخصائص حقته هي .. اني ممكن اغيره .. او اطبعه .. أو امسحه !!
الجواب .. ان يكون تعرف السترينق نفسه ... مع الدوال اللي تسمح بتغييره موجودين سوا في نفي المكان .. و المكان هذا هو اللي نسميه class

* الثانيه .. و الثالثه .. شوي ادفانسد ... ان شاء الله اوضحهم اذا قدرت بعدين ..

>>>>> كيف افكر بطريقة الـ OOP ؟؟؟

مثلا .. في السي .. قالك أبغا كاونتر يحسب شي معين ..
بكل بساطة باعرف
int count i
و بمجرد اني اقول count++ بيزيد الكاونتر ..

طيب في السي بلس بلس كيف ؟؟
باعتبر زي ما قلت ان الكاونتر .. اوبجكت .. طيب خلونا نطبق خصائص الاوبجكت على الكاونتر ..
* الاسم .... counter
* الخصائص ... الفيمة اللتي يحملها
* العمليات ... ممكن يزيد الكاونتر و ممكن ينقص ! .. في نفس الوقت ما يصير يكون بالسالب !
>>> ان شاء الله مفهوم

الحين كيف اكون ال object counter ؟؟؟؟
الحين عشان اعرف اوبجكت ، كأني أقول باعرف variable في السي ..
كنا نقول اول int i ... الحين لا .. بنقول counter i
لاحظوا ان count مماثله لـ int ..

طيب count هذي كيف طلعت ؟؟

بالطريقه التاليه ..

class count{ l
int cnt; l

public: l

increament(); l
decreament(); l
};

بكذا اكون انا بنفسي عرفت كلاس (تايب) .. و سميته كاونت .. بحيث اني استخدمه في عملية العد !
>>> هذا مجرد مثال بسيط و العمليه غير معقدة ..

مثال ...

في السي ...

int i; l
i++; l
i--; l

في السي بلس بلس ...

count i; l
i.increament(); l
i.decreament(); l

طبعا شكل السي هو الاسهل .. و لكن هذا المثال فقط للتوضيح ..


[line]


ان شاء الله تكونوا استفدتوا .. و اللي عنده اضافات أو تصحيح "جل من لا يسهو" ما يبخل علينا
و شكرا ..

اضغط هنا لرؤية التوقيع
[align=center]

[[ اللهم أنت ربي لا إله إلا أنت خلقتني وأنا عبدك
وأنا على عهدك ووعدك ما استطعت أعوذ بك من
شر ما صنعت أبوء لك بنعمتك علي وأبوء لك بذنبي
فاغفر لي فإنه لا يغفر الذنوب إلا أنت
]]


....


[/align]
رد مع اقتباس
  #2 (permalink)  
قديم 16th June 2004, 06:35 AM
الصورة الرمزية Digital Mind
Digital Mind Digital Mind غير متواجد حالياً
عضـو موقوف
 
تاريخ التسجيل: Apr 2004
الجنس : غير محدد
المشاركات: 493

معلومات العضو الأكاديمية

[align=center]/* موضوع اكثر من رائع .. ولي عودهـ له */ ..

/* الاولاد عال 112 + عال 113 */ ..
[/align]

رد مع اقتباس
  #3 (permalink)  
قديم 16th June 2004, 12:49 PM
الصورة الرمزية Digital Mind
Digital Mind Digital Mind غير متواجد حالياً
عضـو موقوف
 
تاريخ التسجيل: Apr 2004
الجنس : غير محدد
المشاركات: 493

معلومات العضو الأكاديمية

[align=center]اهليين هو كورز ..
بالاول انا ما درست الا السي بلس بلس .. ..
ولكن شرحك وكلامك المبسط شيء جميل ..
بالفعل ايجازك روعه ..
انا ارشحك انك تصيرين معيدهـ .. ..
او تصدرين كتاب زي ديتيل ..
من جد كلام تشكرين عليه ..
وانا في انتظار تكملت الشرح ..
تحياتي لكي ..
[/align]

رد مع اقتباس
  #4 (permalink)  
قديم 16th June 2004, 04:59 PM
الصورة الرمزية Dell
Dell Dell غير متواجد حالياً
information system
 
تاريخ التسجيل: Apr 2004
الجنس : ذكر
المشاركات: 313

معلومات العضو الأكاديمية

ياسلام عليك هو كيرز ...

صراحه شرحك اكثر من رائع ,.,

وموضوع جميل يستحق القراءه ... وبفكر يمكن اثبته <<<< وده بنطرد

وبالنسبه لي انا مادرست الا سي ...

لكن درست في الجافا كل الي تكلمتي عنه في السي بلس بلس ...

احس فيه بينها تشابه كبير ....

وبالنسبه لل inhiretence اذا جيتي تشرحينها ... استخدمي طريقه has a و is a <<<< مسوي بيعلمك ...



لكن السؤال الي يطرح نفسه ... عندنا في الجامعه الغوا لغه سي وحطوا بدالها سي بلس بلس ...

يعني ياترى هل تعلم سي بلس بلس .. يغنيننا عن تعلم سي ... ؟

انا اتوقع لو يخلون 112 و 113 سي ... وبما اننا ندرس جافا اكيد بناخذ المواضيع الي تكلمتي عنها في السي واللي موجوده في الجافا .

ومشكوره على الموضوع الاكثر من رااااائع ....

اضغط هنا لرؤية التوقيع
[align=center][/align]

مشرف على منتدى الحاسب سابقا ...
يوم كنت طالب ... الله يالدنيا ايام الدراسه
:P

والله يذكر المشرف (مادري المشرفه)اللي كان (مادري اللي كانت) متحملني (مادري متحملتني) ... بالخير
رد مع اقتباس
  #5 (permalink)  
قديم 17th June 2004, 06:54 AM
..HoKo.. ..HoKo.. غير متواجد حالياً
.
 
تاريخ التسجيل: Apr 2004
الجنس : غير محدد
المشاركات: 1,635




السلام عليكم ..

ديجي مان ...

ياليت اكون فعلا استحق كلامك
و مشكور للتوضيح بشأن مقرر الاولاد .. ان شاء الله أقدر أكمل .. و أرحب بأي اضافات
>>>> على ترشيحك ليتك تمسك "عميد" قسمنا db5
أقدر لك مرورك الرائع اخوي ..



ديل ...

اقتباس وبفكر يمكن اثبته <<<< وده بنطرد

لووووول .. شكرا و الله
>> لو مو موضوعي كان ثبته

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

أنا في رأيي المتواضع (جدا) ..
ان المفروض دراسة السي أول .. مهما كان هي لغة جدا مهمة .. و اكثر أنظمة التشغيل تعتمد عليها
و من ثم دراسة السي بلس بلس .. لأنها بالطبع لغة قويه
و بالنسبة للجافا .. فهي لغة عملية جدا و friendly .. و ماشية .. لكن من عيوبها انها بطيئة
فنادرا ما نلاقي فايروسات تكتب بالجافا
>>> واحنا ايش دخلنا بالفايروسات انتي الثانيه

اقتباس وبالنسبه لل inhiretence اذا جيتي تشرحينها ... استخدمي طريقه has a و is a <<<< مسوي بيعلمك ...

اي و الله علمني .. يمكن اكون عارفه الموضوع بس ما فهمت قصدك


اقتباس يعني ياترى هل تعلم سي بلس بلس .. يغنيننا عن تعلم سي ... ؟

هذا فعلا سؤال مهم ..
انا أقدر السي بصراحة على انها قديمة و مو مستخدمة بكثرة ، لكن لا غنى عنها
- مع اني ملت للسي بلس في الاخير -
اللي ممكن يصير هو ان البداية تكون بالسي .. و من بعدها يكون اما سي بلس او جافا ..
لأن الفرق كبير بين اللغتين -سي و سي بلس- .. اسلوب البرمجه مختلف بينهم ..


مشكور أخوي ..



ممكن مراجعة المواضيع التالية ...

* ][ البرمجة كائنية المنحى Oop ][ . للكاتب ... Digital Mind
* << C++ Vs C >> . للكاتب ... Ray_Of_Hope

اضغط هنا لرؤية التوقيع
[align=center]

[[ اللهم أنت ربي لا إله إلا أنت خلقتني وأنا عبدك
وأنا على عهدك ووعدك ما استطعت أعوذ بك من
شر ما صنعت أبوء لك بنعمتك علي وأبوء لك بذنبي
فاغفر لي فإنه لا يغفر الذنوب إلا أنت
]]


....


[/align]
رد مع اقتباس
  #6 (permalink)  
قديم 17th June 2004, 07:59 AM
ســــديــــم ســــديــــم غير متواجد حالياً
^IT^
 
تاريخ التسجيل: Jun 2004
الجنس :
المشاركات: 61

معلومات العضو الأكاديمية

[align=center]يعطيك الف مليووووون عافية أختي !! who_cares !!

صراحة شي يرفع الراس ان يكون عندنا في الكلية [light=FFFFCC]عقـــلية [/light]رائعة زيــــــك .. :

== بالنسبة لـ C و ++C

أنا رايي من رأي أختي هو كيرس << مب تعصب ترا

بس فعلاً دراسة السي أشوف أنها ضرورية جداً جداً جداً .. بعدين تدرس السي بلس

في جامعة الأمام .. قسم الحاسب .. كان نازل لهم ... السي بلس .. في المستوى الثاني

اعتقد (( مش مهم bd7 )) .. واستاذتهم كانت توها جاية للجامعة .. درستهم محاضرتين

وبعدين سألتهم .. أنتم اخذتوا السي .. قالوا لأ .. راحت للعميد .. وقالت ما يصير ..

وكلاااااام طويل .. بالأخير عدلو الخطة واعطتهم سي ..

كملي .. هو كيرس .. fv6 .. الموضوع .. ممتع للغاية ..

تحياتي .. للجميع ..

ســــديــــم ...


[/align]

رد مع اقتباس
  #7 (permalink)  
قديم 17th June 2004, 11:31 AM
..HoKo.. ..HoKo.. غير متواجد حالياً
.
 
تاريخ التسجيل: Apr 2004
الجنس : غير محدد
المشاركات: 1,635


[align=center]الله يعافيك سديم احرجتيني بلطفك و ذوقك اختي ..

مشكووورة و الله مرورك عزيز علي ...

الامام اتوقع دراستهم تحليل نظم !! و الله اعلم .. انا لما خلصت توجيهي
كنت محتارة بينهم و بين ksu .. على ان قسمهم كان لسا مفتوح
بس ما الله كتب اني اروح هناك .. و الحمد لله

التكمله في الطريق ان شاء الله ..

[/align]

اضغط هنا لرؤية التوقيع
[align=center]

[[ اللهم أنت ربي لا إله إلا أنت خلقتني وأنا عبدك
وأنا على عهدك ووعدك ما استطعت أعوذ بك من
شر ما صنعت أبوء لك بنعمتك علي وأبوء لك بذنبي
فاغفر لي فإنه لا يغفر الذنوب إلا أنت
]]


....


[/align]
رد مع اقتباس
  #8 (permalink)  
قديم 18th June 2004, 10:14 PM
Administrator
زائر
 
الجنس :
المشاركات: n/a


مساء الخيرات جميعا ،،
موضوع شيق جداً .. ويستاهل فعلا النقاش .. لأنه من أهم مواضيع النقاش بين المبرمجين ..
الأخت\الأخ Who_Cares ما قصر(ت) ، قال(ت) كلام كثير مهم ومنطقي .. ولي تعليق اذا تسمح لي ..

من بداية ظهور لغة C كواحدة من أقوى لغات البرمجة سواء على مستوى التطبيقات أو مستوى النظم ، ثم تبعها تطور اللغة و ولادة C++ من C ولكن حملت الولادة تغير كبير في الخريطة الوراثية للغة ، مرت نسبة كبيرة من مبرمجي C بصعوبة بالغة في الإنتقال من C إلى C++ أو بالأصح بالإنتقال من التفكير على مستوى Structures إلى التفكير بمستوى أعمق بكثير وهو مستوى Classes (الأصناف) وما تقدمه من قدرات خارقة للمبرمج في التحكم في جميع التفاصيل والتسهيل واضفاء القوة واعادة الاستخدام لأجزاء التطبيق.
الصعوبة ليست في صعوبة تعلم جمل الأوامر أو طريقة التعامل مع مقدرات اللغة ، بقدر ما هي صعوبة في توجيه التفكير نحو الكائنات.
وش استفدنا من Classes أو وش اللي أعطتنا اياه وما أعطتنا اياه Structures ؟
أعطتنا خدمة كبييرة تسمى Reusability واللي تخلي البرمجة أقل مشاكل وأقل ملل (للمبرمج) وأكثر فائدة بكثير لأنك تعيد استخدام الأنواع والأصناف المعرفة سابقا كثيراً وفي أجزاء متفرقة من التطبيق ، بمعني تتخلص من التكرارات المملة والعقيمة ، بنفس الوقت أضفت قوة أمنية للتطبيقات وأصبح التحكم بصلاحيات الوصول أسهل كثيراً من السابق.
بقي شي واحد ودي اتكلم عنه انه استخدام الأصناف وحدها ما يعني البرمجة باسلوب OOP .. لأنه فيه فرق بين المصطلحين OBP و OOP.
Object-Based Programming وهذا يعني استخدام الأصناف فقط بدون Inheritance وبدون polymprphism.
Object-Oriented Programming وتعني استخدام الأصناف بالإضافة إلى Inheritance وبدون polymprphism ( خصائص البرمجة الكائنية)

الكثير يشوفون أنه من مآخذ لغة C++ أنها تسمح لك باستخدام الطريقة التقليدية بالبرمجة أو استخدام البرمجة الكائنية وهذا هو مهرب المبرمجين الجدد على مفهوم البرمجة الكائنية .. ولكن عاجلا أو آجلا رح يعترف المبرمجين التقليديين بعقم هذا التوجه وسيضطرون للتغيير وإلا .. الإندثار
على عكس C++ بعض اللغات لا تسمح إلا باسلوب محدد وهو البرمجة باستخدام الكائنات وهي لغات Pure Object-Oriented Languages مثل لغة (لسب) وعلشان كذا لما تجلس مع مبرمجي هذه اللغات أحيانا ما تفهم وش يقولون .. فمثلا ما يعرفون شي اسمه Functions .. ولكن تعرف باسم Messages لأنه لا يوجد شي اسمه Member أو Friend أو non-Member non-Friend .

ونأسف على الإطالة ..

رد مع اقتباس
  #9 (permalink)  
قديم 19th June 2004, 12:10 AM
ســــديــــم ســــديــــم غير متواجد حالياً
^IT^
 
تاريخ التسجيل: Jun 2004
الجنس :
المشاركات: 61

معلومات العضو الأكاديمية

مرحبا ..

سوري على اللقافة أختي هو كيرس ..

بس حبيت أقول لأخوي Administrator يعطيك العافية ...

لأني استفدت جداً من كلامه .. << حق العلم اللي استفدت منه ..

معلومات جديدة .. بالنسبة لي .. ممتعة للغاية ...

يا ريت كل الأخوات والأخوان خصوصاً .. اللي احترفوا شوي ..

يزيدونا خبرات .. << بتتصفق .. لأن الموضوع لبنات 151 .. و الأولاد اللي زيهم

هو كيرز .. وينك ...؟؟

طولت ..........؟؟

بااايو ..

رد مع اقتباس
  #10 (permalink)  
قديم 19th June 2004, 12:37 AM
Abc Abc غير متواجد حالياً
Registered User
 
تاريخ التسجيل: May 2004
الجنس :
المشاركات: 30


الســـــــــــلام عليــــــــــكم...

السلام عليكم ..للجميع...
أنا بصراحه مستعجله و لي رجعه باذن الله بس بغيت أقول....<<---متفشلــــــــــه جدا !!
اني أنا أخذت ال(c++)وخلصت بس والله في أشيـــاء كثيـــــــرة جدا ما عرفتها الا منك ...لذلك الله يجزاك الف خير ويوفقك دنيا واخره ..
وشكرا مره ثانيه..

اضغط هنا لرؤية التوقيع
**رددوا:سبحان الله وبحمده سبحان الله العظيم..عدد خلقه وزنة عرشه ورضا نفسه ومداد كلماته....
رد مع اقتباس