دورة في ال C++
banner
2009-03-26 , 03:18 مساءً
castrol’s Avatar
castrol

عضو

المشاركات:281
التسجيل:Jan 2008
castrol
انا طالب في كلية علوم الحاسب بس (في السنه التحضيريه) من زمان اي اتعلم البرمجة
واذا ما فيه اشكاليه ابي اكون احد طلاب هذه الدورة
وما تقصر يا ابو حاتم وعساك على القوة
2009-03-26 , 03:18 مساءً
2009-03-26 , 04:51 مساءً
نسيم العجاج’s Avatar
نسيم العجاج

مشارك

المشاركات:360
التسجيل:Apr 2005
نسيم العجاج
وانا معكم بالدوره
2009-03-26 , 04:51 مساءً
2009-03-26 , 11:24 مساءً
المحترف007’s Avatar
المحترف007

نشيط

المشاركات:647
التسجيل:Aug 2006
المحترف007
معكم ان شاء الله والله يسر لنا ويسهل يارب ..


لكم سلامي ..
2009-03-26 , 11:24 مساءً
2009-03-27 , 11:25 صباحاً
abogrhen’s Avatar
abogrhen

مبدع

المشاركات:3347
التسجيل:Oct 2006
abogrhen
اخوي انا معك ان شاء الله
2009-03-27 , 11:25 صباحاً
2009-03-27 , 01:45 مساءً
TheTrader’s Avatar
TheTrader

&& سبحان الله العظيم &&

المشاركات:9417
التسجيل:Apr 2008
TheTrader
مشكورين على تفاعلكم إخواني ..

البداية تكون من المشاركة التالية ومع أول محاضرة إن شاء الله ..
2009-03-27 , 01:45 مساءً
2009-03-27 , 02:24 مساءً
TheTrader’s Avatar
TheTrader

&& سبحان الله العظيم &&

المشاركات:9417
التسجيل:Apr 2008
TheTrader
المحاضرة الأولى :

تطور لغات البرمجة وتدرجها من ساعة نشأتها إلى الآن ..

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

لذلك كانت لغات البرمجة صعبة في ذلك الوقت وقليل من الناس هم من يستطيعون البرمجة .. فحفظك لهذه التعليمات يتطلب جهدا طويلا جدا وذاكرة جبارة !! ، تخيل أنك تكتب تعليمة (إذا كانت الناتج صفر فاجعل إكس عبارة عن الرمز * ) يجب أن تكتبها بالشكل التالي 00100010101001001001100100000011101001

وهذا العصر بالبرمجة سمي بعصر لغات الآلة ومن أمثلة هذه اللغات هي لغة الأسيمبلي (Assembly ) ولغة الماشين لانغويج (Machine language)

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

1- كان التعديل على البرنامج بعد إنشاءه في غاية الصعوبة وذلك بسبب صعوبة قرآءة البرنامج بعد كتابته :) .

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

3- بسبب صعوبة البرمجة كانت كتابة البرامج بطيئة جدا ..

....

بعد تطور البرمجة وظهور القسم الآخر وهو .. البرمجة المتقدمة أصبحت البرمجيات عبارة عن الخوارزمية التالية :

1- تقوم أنت بكتابة التعليمات باللغة الإنجليزية مثال : (if (x==0) then print(right) else print(no)

2- يقوم المترجم بأخذ هذه التعليمات وإعطاءك مكان الخطأ إن وجد ..

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

4- يقوم الكمبيوتر بتطبيق البرنامج

:)

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

المهم بعد المقدمة :d

بإختصار حبايبي البرمجة هي عبارة عن (مخمخة على المظبوط ) بمعنى إنت ما تفكر إنك رح تبرمج بالC++ بعدين تروح بتبرمج بالjava تروح تتعلم من أول وجديد ..

لا أبدا كلها نفس الشي .. المشكلة في البرمجة إخواني هي مشكلة مخمخة لا غير وتفكير نقي جدا ..

تعليم البرمجة يكون على خطوتين :

1- الخطوة الأولى : تقوم بتعلم اللغة على مترجم يشبه الدوز .
2- الخطوة الثانية : تقوم بتطبيق هذه اللغة على واجهات مرئية وتصميم برامج عامة كالتي تراها في الكمبيوتر ..

طبعا التعلم يكون في الخطوة رقم واحد ..

-----

الفقرة الاخيرة في هذا الرد .. هي روابط تحميل اللغة التي سنعمل عليها سوية ..

دقائق وتكون الروابط هنا :)
2009-03-27 , 02:24 مساءً
2009-03-27 , 02:57 مساءً
TheTrader’s Avatar
TheTrader

&& سبحان الله العظيم &&

المشاركات:9417
التسجيل:Apr 2008
TheTrader
قمت بوضع رابط خاص بال C++ لكني عدلته وأزلته ..

السبب أني سوف أقوم بالغد إن شاء الله بوضع رابط للفيجوال ستديو .. ومنها نستطيع أن نطبق سواء للC++ أو لواجهاته الصورية ..

نراكم في الغد إن شاء الله ومع أول برامجكم ..

بالتوفيق ..
2009-03-27 , 02:57 مساءً
2009-03-27 , 04:07 مساءً
TheTrader’s Avatar
TheTrader

&& سبحان الله العظيم &&

المشاركات:9417
التسجيل:Apr 2008
TheTrader
رابط الفيجوال C++ كما تفضل به بعض الإخوان في الموضوع الآخر :

http://www.microsoft.com/express/vc/
2009-03-27 , 04:07 مساءً
2009-03-27 , 04:20 مساءً
vwv98’s Avatar
vwv98

نشيط

المشاركات:606
التسجيل:Jun 2004
vwv98
وسجلني معك واعتبرني من الان احد طلاب عندك
2009-03-27 , 04:20 مساءً
2009-03-27 , 04:40 مساءً
المزقرت’s Avatar
المزقرت

إداري سابق

المشاركات:8490
التسجيل:Apr 2006
المزقرت
اخوي هذا هو البرنامج

by wxDev-C++

حجمة 40 mb


http://jaist.dl.sourceforge.net/sourceforge/wxd...
2009-03-27 , 04:40 مساءً
2009-03-27 , 06:14 مساءً
the big dam’s Avatar
the big dam

مبدع

المشاركات:2901
التسجيل:May 2007
the big dam
تم قراءة المحاضرة الأولى وتحميل البرنامج والتثبيت وانتظر بشغف المحاضرة الثانية
2009-03-27 , 06:14 مساءً
2009-03-27 , 11:11 مساءً
المحترف007’s Avatar
المحترف007

نشيط

المشاركات:647
التسجيل:Aug 2006
المحترف007
تمت القراءة بتمعن وجاري التحميل ... واقترح ان يكون موضوع مستقل للمحاضرات فقط وموضوع للناقاشات لتكون المواضيع والمحاضرات في صفحة حتى يتسنى لنا القراءه لتفادي ردود الاعضاء واللخبطه اللي بتحدث ..


لكم سلامي ..
2009-03-27 , 11:11 مساءً
2009-03-28 , 08:51 صباحاً
iA7med’s Avatar
iA7med

عضو جديد

المشاركات:2
التسجيل:Mar 2009
iA7med
ممكن C++ للماك ؟؟
ماعندي ويندوز :53:
2009-03-28 , 08:51 صباحاً
2009-03-28 , 01:33 مساءً
و’s Avatar
و

فعال

المشاركات:1139
التسجيل:Jan 2007
و
متابع
2009-03-28 , 01:33 مساءً
2009-03-28 , 03:58 مساءً
Ether’s Avatar
Ether

فعال

المشاركات:1644
التسجيل:Sep 2008
Ether
سجلوني معاكم ...
2009-03-28 , 03:58 مساءً
2009-03-28 , 04:46 مساءً
Chuck Bass’s Avatar
Chuck Bass

عضو

المشاركات:58
التسجيل:Mar 2009
Chuck Bass
متابع معااكم ... والمحاضره الأولى مشوقه

تسلم يداك اخي
2009-03-28 , 04:46 مساءً
2009-03-28 , 07:44 مساءً
TheTrader’s Avatar
TheTrader

&& سبحان الله العظيم &&

المشاركات:9417
التسجيل:Apr 2008
TheTrader
تم وضع رابط لموضوع المناقشات والإستفسارات في الموضوع :
http://adslgate.com/dsl/sho...


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

بارك الله فيكم إخواني وإلى الأمام ..

أخوكم : أبو حاتم
2009-03-28 , 07:44 مساءً
2009-03-28 , 08:48 مساءً
TheTrader’s Avatar
TheTrader

&& سبحان الله العظيم &&

المشاركات:9417
التسجيل:Apr 2008
TheTrader
رح ندرس اليوم شكل البرنامج الرئيسي وبعض المصطلحات الهامة .. وننتقل بعد ذلك في المحاضرة الثالثة إن شاء الله إلى التطبيق في اللغة بشكل مباشر ( في الكومبايلر )

----&& المحاضرة الثانية &&----

البرامج التي نكتبها بشكل كامل تكون عبارة عن أفكار خوارزمية ..

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

والخوارزمية في البرمجة هي تماما كخوارزمية كتابة ملف وورد أو خوارزمية عمل شاي ... إلخ ..

يجب أن تفكر وتكتب خوارزمية أي برنامج تريد عمله .. تتخيل شكله ، ماذا سيحتاج وماذا ستقوم بإدخال له ؟ ، ماذا سوف يعطيك في النهاية (الهدف من البرنامج)

ملاحظة : يمكن أن تقوم بكتابة أي برنامج بآلاف الطرق ، فليس هناك طريقة محددة يجب أن تمشي بها .. قم بالإستيعاب وإنطلق بتفكيرك في البرمجة مباشرة ..

إذن على سبيل المثال نفذ التمرين التالي :
أكتب خوارزمية نقوم بها بإيجاد معدل طالب جامعي له 5 مواد في سنته ..

فكر معي يا غالي

فكر :d

بالبداية نحتاج طبعا ال 5 مواد اللي عند الشخص .. يعني أكيد إحنا ما رح نحسب المعدل الخاص بهذا الطالب بدون ما تكون عندنا المواد الخاصة به !! ، يعني الترتيب هنا مهم ..

نحتاج بالبداية (المعطيات) المواد الخاصة بهذا الطالب ..
العملية : نقوم بإدخال المواد إلى الكمبيوتر (نحن اللي ندخل المواد وليس تكون في البرنامج تلقائيا) بمعنى أننا سوف ندخل من لوحة المفاتيح المادة رقم واحد ثم رقم 2 و... إلى رقم 5 .

يقوم الكمبيوتر بجمع العلامات كلها ..
يقوم الكمبيوتر بقسمة الناتج على عدد المواد (في حال كان عدد المواد غير ال5 ، أو كان مدخل مثلا)
يقوم الكمبيوتر بطباعة الناتج ..

هذه هي خوارزمية الحل ..

هذه البيانات لا تشوفوها سخيفة إخواني .. هذه هي أهم النقاط وأهم شي بالبرمجة كلها (التفكير الخوارزمي) ..

طيب في حال كان عدد المواد مجهول ، كيف رح تكون الخوارزمية ؟

يعني إحنا رح نسوي برنامج بيستخدمه أكثر من شخص ، شخص عنده 5 مواد وشخص عنده 10 .. إلخ

الخوارزمية هي على النحو الآني

نقوم بإدخال إلى البرنامج عدد المواد في البداية ..

يقوم الكمبيوتر بحجز أماكن لهذه المواد ..

نقوم بإدخال المواد إلى الكمبيوتر (نحن اللي بندخل)

يقوم الكمبيوتر بجمع هذه المواد ..

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

يطبع الكمبيوتر الناتج ..

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

عشان تعرفو كيف بتفكرو بالخوارزميات .. رح أعطيكم كل الأدوات الممكن إستخدامها ..

1- المتحولات :

يمكن بأن نستخدم المتحولات التالية :

1- المتحول الصحيح (يقبل الأعداد الصحيحة مثل 1 و 2 و 12135 إلخ .. ) لكنه لا يقبل 1.5 مثلا .. أي أنه يقبل الأعداد الصحيحة فقط .

يسمى المتحول الصحيح ب integer ويرمز له ب int

2- المتحول ****ري : هو متحول يقبل الأعداد (1.5 و جذر(3) و أي عدد به فواصل )
ملاحظة : طبعا بما أن المتحول يقبل الأعداد ****رية فهو بالتأكيد يقبل الأعداد الصحيحة (مجموعة الأعداد الحقيقية تقبل أي عدد صحيح .. )

يعني لو أنت أدخلت للمتحول ****ري رقم 1 مثلا فهو يخزنه على أنه 1.0

يسمى المتحول ****ري : float ويرمز له ب float أيضا ..

3- المتحول الحرفي : هو متحول يقبل حرف واحد فقط .. أي مثلا حرف a أو A أو + أو / أو أي رمز على الكيبورد .. ( حرف واحد فقط ) ، وتستطيع وضع أرقام به لكنه يعتبرها حروف مثل "1"

يرمز له ب char

4-المتحول السلسلي : هو عبارة عن سلسلة من المتحول char (يعني كلمة أو جملة) وتستطيع أن تضع به أي عبارة مثل ("hi" أو "i'm Mr.Radwan" أو أية كلمات تريدها ..

يرمز له ب string

5- المتحول المنطقي : وهو متحول يقبل فقط حالتين : إما true أو false ..
أو بعبارة أخرى : إما 0 أو 1 .. (الصفر للفولز ، وال1 للترو )
نستخدمه في المقارنات وفي تجربة الصيغ ( كله بيوضح بعدين )

يسمى ب boolean وفي اللغة يسمى bool

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

هناك متحولات أخرى ( مؤشرات ) لن نتطرق لها .. وهناك متحولات أخرى (مصفوفات ) سنتطرق لها في الوقت المناسب لها ..

كيفية التعريف عن المتحولات ..

س : كيف نعرف عن متحول ما في ال C++

ج : نستطيع التعريف عن المتحول بالشكل التالي :

نوع المتحول إسم المتحول

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

مثلا :

int x ;

float num ;

char soso ;

string myname_inADSLGATE ;

bool test ;

وهكذا ..

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

ملاحظة : في حال كان المتحول من نوع char أو string يجب وضع الحروف بين علامات تنصيص " "

ملاحظة 2 : كل تعليمة من تعليمات ال C++ يجب أن تنتهي بفاصلة منقوطة (مكان حرف الكاف ) ( ; )

مثال تكملة لما سبق :

x = 55 ;

num = 2.54 ;

soso ="a" ;

myname_inADSLGATE = "alsafa7soso";

test = false ;

وهكذا تكون عملية الإسناد ..

نستطيع الإسناد مرة أخرى إلى أي متحول ، ويأخذ هذا المتحول القيمة الجديدة وينسى القيمة القديمة ..

أيضا أعزائي في ال C++ لدي حلقات تكرارية عديدة سوف ندرسها في المستقبل كل في وقته ..

دمتم في رعاية الله والسلام عليكم ورحمة الله وبركاته ...
:27::27::27::27::27::27:

2009-03-28 , 08:48 مساءً
2009-03-30 , 10:05 صباحاً
abuthabit’s Avatar
abuthabit
مشرف عام

ADSLGATE FOUNDER

المشاركات:9042
التسجيل:Jul 2004
abuthabit
يعطيك العافية وشرح مبسط ورائع

الله لا يهينك سجلني معك حتى نهاية الكورس :)
2009-03-30 , 10:05 صباحاً
2009-03-30 , 11:50 صباحاً
Ether’s Avatar
Ether

فعال

المشاركات:1644
التسجيل:Sep 2008
Ether
شرح اكثر من رائع ..

من شدة اهتمامي بالموضوع حملت برنامج Microsoft Visual C++ 2008 Express Edition من موقع مايكرو سوفت ..
لكن المشكلة انه نسخة تجريبية لمدة 30 يوم ...
2009-03-30 , 11:50 صباحاً