منتديات افترافيكت

عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي



 
الرئيسيةس .و .جالتسجيلدخولتسجيل دخول الاعضاء

شاطر | 
 

 دروس كاملة للمبتدئين في أساسيات ++c

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

رقم العضوية : 1
الدولة : اليمن
الدولة :

sms sms : مرحبا بالاعضاء والزوار الكرام

الجنس الجنس : ذكر عدد المساهمات : 548
نقاط : 2788
تاريخ التسجيل : 22/09/2009
العمر : 28

مُساهمةموضوع: دروس كاملة للمبتدئين في أساسيات ++c   الثلاثاء يناير 05, 2010 1:40 am

---------- ---------- ----- الدرس الأول ----- ---------- ----------

:: بنية و مكونات اللغة ::

1 – المعرّفات ( Identifier ) :
هي عبارة عن أسماء تعرفها و تضعها في برنامجك و قد تكون :
- متغيرات ( Variable ) .
- ثوابت ( Constant ) .
- أسماء لتوابع .
- أسماء كائنات ( Calsses ) .

و لكن هناك شروط لتسمية هذه الأشياء و هي كالتالي :
أ – أن يبدأ الاسم بحرف أبجدي أو ( _ ) و أن لا يبدأ برقم .
ب – أن لا توجد فراغات بين الاسم .
ج – أن يكون طوله كحد أقصى 64 حرف .
د – أن لا يحتوي على رموز أو كلمات خاصة باللغة مثل ( const , float ) و أعتقد أن عدد هذه الكلمات 26 .
هـ - يفضل استخدام أسماء تدل على وظيفة هذا الاسم .

2 – المتغيرات ( Variable ) :

هي أسماء تحجز لمواقع في الذاكرة .. تحمل قيمة يمكن أن تتغير أثناء عمل البرنامج . مثلاً / إذا عرفنا متغير A و أعطيناه قيمة في بداية البرنامج و لتكن 5 .. فإننا نستطيع تغيير هذه القيمة إلى 10 مثلاً في أي مكان من البرنامج .

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


أمثلة على المتغيرات /


كود:
int a;
float b5;
bool fine;
قاعدة 2 / لتعريف متغير .. نضع نوع المتغير أولاً ثم اسمه ثم الفاصلة المنقوطة ( انظر الفقرة رقم 4 لمعرفة الأنواع ) و من الممكن إعطاء قيمة ابتدائية أيضاً .. مثال :



كود:
int a = 5;قاعدة 3 / يمكن تعريف عدة متغيرات معاً من نفس النوع بحيث تفصل بين كل متغير و أخر فاصلة .. مثال :

كود:

كود:
int a,b,c;3 – الثوابت ( Constant ) :

نفس المتغيرات و لكن قيمتها لا تتغير طوال فترة عمل برنامجك .. و نضع كلمة const لتعريفها قبل نوع هذا الثابت .. و يجب أن تضع قيمة عند تعريف الثابت عن طريق علامة يساوي ( = ) .

أمثلة على الثوابت /
كود:

كود:
const int a = 5;
const float b = 5.5;
حيث أن a و b ثوابت .

4 – الأنواع ( Types ) :

هي عبارة عن المجال الذي سوف تأخذه القيم .. و كل نوع له مساحة معينة في الذاكرة .

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

و هي كالتالي /

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

أنواع رقمية ( صحيحة ) :
- int : لتخزين قيم عددية يصل أقصى عدد يمكن أن تحمله إلى 2.148.000.000 .
- long int : نفس int و لكن يأخذ قيم أكبر .
- unsigned int : نفس int و لكنه لا يأخذ قيم سالبة و لكن يأخذ قيم موجبة أكبر تصل إلى 4.300.000.000 .
و ممكن أن نضع أيضاً الكلمة unsigned قبل النوع long int ليصبح عدد صحيح طويل موجب .

أنواع رقمية ( حقيقية ) :

- float : لتخزين أعداد حقيقية ذات فواصل عشرية .
أمثلة على أعداد حقيقة / 2.5 .. 6.3 .. 9.0 .. و إذا لم يكن هناك عدد عشري فنضع صفر ليدل على أن العدد هو عدد حقيقي .
- double : نفس float و لكن يأخذ قيم أكبر .

أنواع منطقية :
- bool : و هو النوع الوحيد من أجل هذه القيم و يحمل قيمتين هما : true أو false .. و هذا النوع يفيدنا كثيراً في أوامر الشرط و من أجل عمليات الإختبار ( سنرى أمثلة توضح ذلك ) .

ملاحظة / هذه الأنواع هي أنواع جاهزة موجودة في اللغة و باستطاعتك وضع أنواع خاصة بك و ذلك عن طريق السجلات ( البنى struct ) و الكائنات .. انظر الفهرس .

5 – العمليات و المعاملات ( Operators ) :

- عمليات حسابية : ( * الضرب ) و ( - الطرح ) و ( / القسمة ) و (% باقي القسمة ) .


أمثلة /
كود:

كود:
n = a * b;
m = 9 – b;
h = 2.0 / f;
t = k % a;
ملاحظة / دائماً حاول استخدام هذه العمليات لأنواع متشابهة من المتغيرات تجنباً للأخطاء و انتبه إلى حجم الناتج و حدد نوعه على حسب هذا الناتج الذي تتوقعه .. و إذا كنت تريد تريد استخدام عملية باقي القسمة مثلاً لنوعين مختلفين فاستخدم التالي :
بفرض أن a عدد صحيح و b عدد حقيقي و c عدد حقيقي أيضاً .

كود:

كود:
c = (float)a % b;لقد وضعنا النوع float بين قوسين قبل المتغير a .. و بذلك سيتعامل المترجم ( Compilor ) مع هذا المتحول على أنه من النوع float و لكن بشكل قسري و مؤقت و لن يتغير نوع هذا المتغير إلى float و لكن كما قلت سينظر إليه في هذا السطر فقط على أنه float .

الأن سنأخذ بعض المعاملات المهمة فقط و هي كالتالي :

كود:

كود:
pow(x, y)
sin(x)
cos(x)
abs(x)
sqrt(x)
حبث أن الأول للأس .. و الثاني لجيب الزاوية .. و الثالث لجيب تمام الزاوية .. و الرابع للقيمة المطلقة و الخامس للجذر التربيعي .. بحيث أن x هي القيمة التي نريد حساب عملية عليها .. و بالنسبة إلى المعامل pow فإن x تمثل الأساس و y تمثل الأس .


أمثلة /
كود:

كود:
y = pow( 5 , 3 ); // 125
z = sqrt( b ); // b = 9 z = 3
h = abs(-6); // h = 6
ملاحظة 1 / هذه المعاملات تحتاج إلى ضم المكتبة الخاصة بها و هي المكتبة math.h سنتعلم في نهاية هذا الدرس كيفية إضافة المكتبات إلى مشروعك .
ملاحظة 2 / من أجل ( // ) و ما بعدها .. تستخدم هذه العلامة من أجل التعليقات التي تحب أن تضيفها .. و فائدتها تكمن فيما إذا صممت برنامج و بعد مدة حاولت الرجوع إلى هذا البرنامج و قراءته فستفيدك هذه التعليقات التي أضفتها في فهم البرنامج أو حتى ممكن أن تستفيد منها في فهم برامج غيرك بحيث يوضح المبرمج بواسطتها هدف معين يريد الوصول إليه من تعليمة أو أمر معين .. و بالطبع وضعها اختياري ( انظر فقرة القواعد العامة ) .
ملاحظة 3 / يجب إسناد هذه المعاملات إلى متغيرات ففي الأمثلة السابقة سيخزن الناتج في هذه المتغيرات .. حيث أن كتابتها على سطر لوحدها سيسبب خطأ .. و سنعرف لماذا يجب إسناد هذه المعاملات إلى متغيرات عند دراستنا للتوابع التي تعيد قيمة .

اختصارات على العمليات :
1 – ( ++C ) : تعني أضف واحد على المتغير C .. ( هل عرفت من أين أتت تسمية اللغة .. حيث قاموا باستخدام هذا الرمز ليوضحوا أن هذه اللغة هي لغة مطورة عن لغة C ) .. فمثلاً إذا كانت قيمة C تساوي 10 فتصبح 11 .. و هذا الرمز يقابل العملية التالية :

كود:

كود:
c = c + 1;2 – ( --D ) : تعني اطرح واحد من المتغير d .. و تقابل العملية التالية :

كود:

كود:
d = d – 1;3 – إضافة أي عملية قبل رمز ( = ) :

أمثلة /
كود:

كود:
y += 2; // y = y + 2
y -= 5; // y = y – 5
y *= 6; // y = y * 6
y /= 9; // y = y / 9
y %= 8; // y = y % 8و المثال الأخير يعني : قسّم قيمة y على 8 و ضع باقي القسمة في نفس المتغير y .. و هذا يعني أن قيمة y القديمة ستمسح و تخزن بدلاً منها قيمة باقي القسمة .
ملاحظات /
1- من الممكن أن تستخدم ما يلي : i++ أو ++i .. و الفرق سوف نأخذه في المثال العملي في نهاية هذا الدرس .
2- من الممكن أن تستخدم العملية c++ أو c-- في المتغيرات الحرفية char .. مثال :

كود:

كود:
char a = 'm';
a++;عندها تصبح a تحمل الحرف n و هكذا .. و هذا يعني الانتقال إلى الحرف التالي .

- عمليات منطقية : و تستخدم في الشرط و هي كالتالي :
( ! ) للنفي و ( == ) للمساواة و ( =! ) لعدم المساواة و ( > و < ) لأكبر من و لأصغر من .. و ( >= و <= ) لأكبر من أو يساوي و لأصغر من أو يساوي .. و ( && ) تعني ( و ) .. ( || ) تعني ( أو ) .
أمثلة /
كود:

كود:
If ( x==5 )
If ( y!= 10 )
If( x==5 && y >= 6 )
If( x < 60 || y==20 )
If( !(x=10) ) // equal of : if( x!=10 )قاعدة / الشرط لا ينتهي بفاصلة منقوطة .. و سنأخذ الشرط و التكرار في الدرس القادم إن شاء الله .

6 – الإسناد :
هو إعطاء قيمة لمتحول و بمعنى آخر هو تخزين قيمة معينة في موقع المتحول في الذاكرة .


أمثلة /


كود:

كود:
x = 10;
x = y; // x takes a value
x = (y+1) / b;قاعدة / دائماً المتحول الذي على اليسار هو الذي يأخذ القيمة من الأخر .


أخطاء برمجية /
كود:

كود:
a = b+2 = c;و لكن ممكن أن نضع :
كود:

كود:
int a,b;
int c = a = b = 4;حيث سيأخذ كل من a و b و c القيمة 4 .

7 – القراءة و الكتابة ( cout , cin ) :

هذه الأوامر تحتاج لإضافة مكتبتها الخاصة و هي iostream.h .. و تلفظ i لوحدها و تعني Inbut و O لوحدها و تعني Output و من ثم Stream .. بالمختصر تعني قنوات الدخل و الخرج .. انظر المثال التطبيقي لمعرفة كيفية استخدام هذه المكتبة و كيفية ضمها إلى مشروعك .

- cout : من أجل الإظهار على الشاشة و تلفظ c ثم out .. و تستخدم لكتابة قيم المتغيرات على الشاشة أو أي قيم معينة أخرى .. و هي كالتالي :
1 – قيم حرفية أو رقمية .. مثال :

كود:

كود:
cout << 7;
cout << "Hello";2 – قيم المتغيرات و المتحولات .. مثال :

كود:

كود:
cout << a;
cout << b;3 – عبارة حسابية .. مثال :

كود:

كود:
cout << (a+b) / 2;
cout << a-b;و لـ cout عدة قواعد :
1 – يجب استخدام التوجيه ( >> ) بعد كل عملية إخراج .. مثال :

كود:
cout << a << b << c;
2 – ممكن أن نستخدم الأمر endl و يعني ( End Line ) من أجل نزول سطر على الشاشة .. مثال :

كود:

كود:
cout << 5 << endl;3 – ممكن أن نستخدم الأوامر التالية : "n\" و "t\" .. حيث أن الرمز الأول يؤدي نفس عمل endl أما الثاني فيعمل على الإزاحة إلى اليمين بمقدار 7 أحرف ( على الشاشة ) .
4- من أجل الفهم .. انظر إلى اتجاه هذا التوجيه .. إذا كان اتجاهه يساراً ( إلى الخارج ) فهذا يعني أن القيم التي على اليمين سوف تخرج على الشاشة .. أما في cin فسنستخدم التوجيه ( << ) و اتجاهه إلى اليمين ( إلى الداخل ) و هذا يعني أننا سوف ندخل قيم على المتحولات الموجودة على اليمين .. إن شاء الله تكون الفكرة وضحت .

- cin : من أجل إعطاء المستخدم ( و ليس المبرمج ) قيم لمتحولات معينة عن طريق شاشة الإظهار .. و تستخدم للمتحولات المعرفة فقط .. و تلفظ c لوحدها ثم in .. مثال :

كود:

كود:
cin >> a;
cin >> b >> c;لنشرح المثال الثاني : سوف يتوقف البرنامج و يظهر وميض من أجل أن يدخل المستخدم قيمة .. و بفرض أن b و c متحولات عددية .. فإذا أدخلنا 4 ثم مسافة ثم 5 فستأخذ b القيمة 4 و c القيمة 5 .

ملاحظة / لا يمكن استخدام cin مع الثوابت .. لأنه كما قلنا أن الثوابت لا تتغير قيمتها أبداً طوال فترة عمل البرنامج .


:: قواعد عامة ::

قاعدة عامة 1 / أي سطر من الأوامر ( Code ) يجب أن ينتهي بفاصلة منقوطة ( ; حرف الكاف ) .. ما عدا بعض الأماكن ستعرفها في هذه الدروس ( أخذنا الشرط في هذا الدرس ) .. و هي تعني انتهاء سطر الأوامر .
قاعدة عامة 2 / نستخدم أقواس المجموعات ( } و { ) في عدة أماكن و هي كالتالي :
لتحديد بداية و نهاية كتلة معينة مثل التوابع و الكائنات و المرقمات ( enum ) .. و في if الشرطية إذا كنت تريد تنفيذ مجموعة من الأوامر عند تحقيق شرط معين .. و في إعطاء قيم ابتدائية للمصفوفات .. سنأخذ كل تلك الأمور .
قاعدة عامة 3 / الحاصرات الفردية ( ' حرف الطاء ) و المزدوجة ( " حرف الطاء أيضاً و لكن مع زر Shift ) .. هذه الحاصرات من أجل المتغيرات النصية ( الحرفية ) و ليست الرقمية فهناك فرق لذلك استخدم هذه الحاصرات دائماً و أبداً مع القيم الحرفية .. فإذا كنت تريد تخزين قيم حرفية (اسم مثلاً ) في مصفوفة ( سنأخذ هذا الموضوع لاحقاً ) و كان الاسم يحتوي على أكثر من حرف فاستخدم الحاصرات المزدوجة أما إذا كانت القيمة عبارة عن حرف واحد فاستخدم الحاصرات الفردية .. و بشكل عام يمكننا القول بأن هذه الحاصرات تستخدم في :
1 – إعطاء قيم حرفية ابتدائية أو عند إسناد هذه القيمة للمتغيرات الحرفية .. مثال :

كود:

كود:
char a = 'G';
char b;
b = 'H';حيث أننا أعطينا المتغير a قيمة ابتدائية ( أي عند التعريف ) و هو الحرف G .. و قمنا بإسناد القيمة H للمتغير b .
2 – لكتابة جمل على الشاشة باستخدام قنوات الدخل و الخرج iostream.h .. مثال :

كود:

كود:
cout << "Hello";أما لطباعة أرقام على الشاشة فنكتب الرقم بدون حاصرات :

كود:

كود:
cout << 4;قاعدة عامة4 / ( // ) من أجل التعليقات .. فأي جملة تضعها قبل هذه العلامة فلن يتم قراءتها من قبل المترجم بل سيتجاهلها .. و هناك علامة أخرى و هي ( */ ) للبداية و ( /* ) للنهاية ..مثال:

كود:

كود:
/* int a;
a =5;*/

// int a;قاعدة عامة 5 / لغة ++C تفرق بين الحرف الصغير و الكبير .. لذلك فالمتغير a يختلف عن المتغير A .. مع أنهما نفس الحرف و لكن الأول صغير و الثاني كبير .. و بالتالي هما متغيران مختلفان .. و على العموم حاول مبدئياً كتابة متغيراتك بالأحرف الصغيرة .

قاعدة عامة 6 / إن الكلمات الخاصة باللغة و عددها حوالي 26 كلمة و التي تظهر باللون الأزرق .. يجب أن تكون بالأحرف الصغيرة .. مثل / const , if , struct , class , #include , for , while , int , float , double و غيرها .

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

كود:

كود:
cout <<b/a << "Hello"
<< z << 'h' << 45;و لكن بشرط أن لا تفصل بين كلمات الأوامر و أسماء المتغيرات فمثلاً لو كان عندنا متغير student فلا يجوز أن تضع التالي :

كود:

كود:
int student;
stud ent = 5;قاعدة عامة 8 / تستطيع أن تجمع بين أكثر من سطر و تضعهم في سطر واحد .. بحيث يفصل بين كل سطر فاصلة منقوطة .. مثال :

كود:

كود:
cout << "Enter number 1 : "; cin >> a;قاعدة عامة 9 / هناك مسائل سوف تجد أكثر من طريقة لحلها .. لذلك استخدم الطريقة التي توفر أقل كمية من حجز المتغيرات في الذاكرة و أسرعها .
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://effects.yoo7.com
 
دروس كاملة للمبتدئين في أساسيات ++c
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات افترافيكت :: منتديات الكمبيوتر والانترنت :: ساحه تعليم لغات الكمبيوتر-
انتقل الى: