السلام عليكم ورحمة الله وبركاته
أولاً أحب أن أشكر الأخ الفاضل طارق موسى على الملاحظات التي علق بها على الموضوع السابق وأعده وأعد الجميع إن شاء الله سوف أقوم بعمل سلسلة متنوعة من الدروس ومن ضمنها شرح لــ class
وإليكم هذه الهدية المتواضعة الثانية:
وهي عبارة عن شرح مبسط لمبادئ لغة ++C:
مقدمة عن لغة C++:
كانت أول بداية للغة السي في مختبرات شركة AT&T الأمريكية في عام 1972م وكانت البداية كمشروع تولى الإشراف عليه دينيس ريتشي ( Dennis Ritchie ). وهو يعتبر مخترع لغة السي باستخدام نظام التشغيل Unix. ولغة سي هي في الأصل لغة قديمة يطلق عليها اسم BCPL. و BCPL طورت بواسطة مارتن ريتشارد ( Martin Richards ) في كامبرج عام 1967م والتي بدورها كانت لغة B والتي اخترعت بواسطة كين تومسون. ولقد أدت لغة Bإلي تطوير لغة السي في السبعينات.
حيث قام دينيس ريتشي ( Dennis Ritchie ) وأخذ من لغة B أحسن تعليماتها ، وغير في كثير من قيودها ، وأضاف إليها تعليمات أخرى عديدة وجعل منها لغة برمجة وسماها لغة C.
وبالرغم من أن لغة C قد أنشأت لاستخدامها في برمجة النظم إلا أنه انتشر استخدامها كلغة ذات مستوى عالي في تنفيذ البرامج التطبيقية ، ومع ذلك فإن لغة C و C++ تستخدمان كلغة ذات مستوى متدنى وذلك نظراً على توفير المميزات التي توفرها اللغات في هذا المستوى كالقدرة على التعامل مع العناصر الثنائية bit مثلاً. وفي الوقت نفسه تستخدم لغة C و C++ كلغتين ذات مستوى عالي لقدرتهما على توفير الجمل التحكمية ( Control Statements ) والهياكل البنائية ( Data Structure ) والتي هي من مميزات اللغات ذات المستوى العالي.
ولقد تطورت لغة السي تطورات كبيرة واكتسبت شعبية و إقبالاً ولعل السبب الرئيسي هو شعبية وانتشار نظام التشغيل UINX ، وهو أهم نظام لتشغيل الحاسبات المتطورة. حيث أن هذا النظام كتب بلغة السي وهذا الأمر يعتبر مصدر قوة للغة السي بين سائر اللغات الأخرى.
وتعتبر لغة السي الآن من أشهر اللغات وأكثرها انتشاراً ولكن في الدول المتقدمة ، ولقد بدأ المبرمجون من كافة الاختصاصات يكتبون برامجهم بها ، وعلى سبيل المثال لا الحصر :
ظهر كتاب (برامج المايكرو كمبيوتر للمهندسين الكيميائين ) عام 1987م عن دار ماجرو هيل الأمريكية ،مكتوباً من ألفه إلي يائه بلغة السي ، ومعنى ذلك أنه يفترض أن على جميع المهندسين الكيميائين في أمريكيا يفهمون لغة السي ، ويتعاملون بها. أضف إلي ذلك أن معظم الشركات ، تطلب في إعلاناتها مبرمجين بلغة سي.
كانت معيارية لغة سي لعدة سنوات عبارة عن مصنف Compiler مزود على نظام التشغيل Unix . وبعد انتشار وشيوع الحاسب الشخصي تم إنشاء العديد من المصنفات للغة سي. ومما يجدر ذكره هنا أنه على الرغم من تعدد المصنفات كانت هناك توافقية عالية جداً بين أكثرها (INI) وهو برنامج كتب ليعمل على أحد المصنفات وإنه بلا شك سيعمل مع مصنفات أخرى. ومع ذلك لأنه لم يكن هناك أي معيار أو مقياس Standard معتمد. وكانت هناك بعض التناقضات بين المصنفات ، ولمعالجة هذه المشكلة أسست لجنة في صيف عام 1983م لإنشاء معيار ANSI:
و هي اختصار American National Standards Institute والتي تعني هيئة القياسات الأمريكية. وكان الدور الأساسي لهذه اللجنة هو تعريف لغة سي مرة واحدة وللأبد. وأخذت معالجة توحيد القياس للغة سي ما يقارب 6 سنوات وهذا أكثر مما كان متوقع. وفي نهاية عام 1989م ثبت أول معيار للغة سي وسمي ANSI C ، ولغة سي القياسية تسمح بأن يكون الاسم التعريفي مكوناً من إي عدد من الرموز حتى 31 رمز ، وكانت النسخ الأولى من هذا المقياس متوفرة في عام 1990م.
1-معنى لغة السي:
تعتبر لغة السي أحد اللغات ذات المستوى العالي ، وتعد أفضل لغة لكتابة برمجيات النظم التي تتحكم في المكونات المادية للحاسب مباشرة ، ومعظم نظم التشغيل مكتوبة بلغة السي مثل:
1-نظام Windows95/98.
2-نظام التشغيل UNIX.
2- مميزات لغة السي:
1-تعتبر لغة السي لغة سريعة :
وذلك لأنها تتحكم في المكونات المادية للحاسب مباشرة ، ولذلك تعد نسبياً أسرع تنفيذاً من اللغات الأخرى.
2-أنها لغة صالحة لأغراض متعددة ( تجارية - علمية - فنية - أدبية ).
3-للغة السي صورة قياسية معتمدة:
وذلك لأن تطوير لغة السي تم في شركة واحدة ( Bell ). ونلاحظ أن الفرق بين نمط و آخر من أنماط لغة السي هي فروق بسيطة جداً ، بينما نجد أن الفروق كبيرة وكثيرة بين أشكال وصور لغة مثل لغة البيسك ، لأن كل شركة صانعة لأجهزة الحاسبات تضع تعليمات خاصة ومختلفة للغة ، وتختلف عما تضعه الشركات الأخرى.
4-تعتبر لغة السي لغة غنية بالدوال:
وتوفر لغة السي للمبرمج عدداً كبيراً من دوال الإدخال والإخراج ، والدوال الرياضية والحسابية، وهو الأمر الذي يسهل عملية بناء البرامج بها.
3-عيوب لغة السي:
1-أنها تعتمد على أسلوب المترجم والذي يقوم بترجمة البرنامج بأكمله دفعة واحدة ثم يقوم بعرض قائمة من الأخطاء بعكس لغة البيسك التي تعتمد على أسلوب المفسر حيث يتم تفسير البرنامج سطر سطر مما يسهل على المستخدم تصحيح الأخطاء بكل سهولة ويسر.
2-هناك أخطاء لا يستطيع مترجم لغة السي أن يكتشفها.
-ملاحظة هامة: ان لغة C++ ليست هي لغة C مع التشابه الكبير لأوامر ودوال اللغتين
4-رموز لغة السي:
يبنى برنامج لغة السي من مجموعة من العناصر الآتية:
أ-حروف أبجدية إنجليزية مثل ( a ,b ,c ,…., z )
ب-الأرقام مثل ( 1 ,2 ,3 , …. , 9 )
ج-الرموز الخاصة مثل ( + ، - ، < ، > ، ! ، % ، $ ، <> ، / ، ، ( ) ، [ ] ، , ، # ، & ، * ، ^ )
5-كيفية تشغيل برنامج لغة C++:
-يوجد برنامج لغة السي على أحد الدليلين ( Borlandc أوTC )هناك أكثر من طريقة لتشغيل برنامج لغة C++ ومنها:
1- الطريقة الأولى ( إذا كان برنامج لغة السي موجود داخل الدليل Borlandc):
-من قائمة ابدأ نختار البرامج ومنها نختار موجه MS-DOS:
أ-أكتب السطر التالي:
C:>CDBORLANDC
و سوف يظهر لك الشكل التالي:
C:> BORLANDC>
ب- أكتب السطر التالي:
C:> BORLANDC>CD BIN
وسوف يظهر لك الشكل التالي:
C:> BORLANDC>BIN>
ج-أكتب السطر التالي:
C:> BORLANDC>BIN>BC
1- الطريقة الأولى ( إذا كان برنامج لغة السي موجود داخل الدليل TC):
-من قائمة ابدأ نختار البرامج ومنها نختار موجه MS-DOS:
أ-أكتب السطر التالي:
C:>CDTC
و سوف يظهر لك الشكل التالي:
C:> TC>
ب- أكتب السطر التالي:
C:> TC>CD BIN
وسوف يظهر لك الشكل التالي:
C:> TC>BIN>
ج-أكتب السطر التالي:
C:> TC>BIN>BC
2-الطريقة الثانية ( إذا كان برنامج لغة السي موجود داخل الدليل Borlandc):
1-من قائمة "أبدا" نختار أمر "تشغيل" فسيظهر لنا مربع حوار "تشغيل" ونقوم بكتابة السطر التالي في خانة "فتح":
C:> BORLANDC>BIN>BC
ثم نقوم بعد ذلك بالضغط على زر "موافق".
2-الطريقة الثانية ( إذا كان برنامج لغة السي موجود داخل الدليل TC):
1-من قائمة "أبدا" نختار أمر "تشغيل" فسيظهر لنا مربع حوار "تشغيل" ونقوم بكتابة السطر التالي في خانة "فتح":
C:> TC>BIN>BC
ثم نقوم بعد ذلك بالضغط على زر "موافق".
-الطريقة الثالثة:
1-من قائمة ابدأ نختار البرامج ومنها نختار مستكشف ويندوز .
2-نختار أما المجلد ( Borlandc أو Tc ) حسب الدليل الموجود عليه برنامج لغة السي بالجهاز.
3-ونختار منه المجلد الفرعي BIN ومنها نختار إما :
أ - رمز BC ( إذا كان الدليل الموجود عليه برنامج لغة السي هو Borlandc)
ب - رمز TC (إذا كان الدليل الموجود عليه برنامج لغة السي هو TC)
-ملاحظات هامة:
1-أسرع طريقة لمعرفة هل إذا كان الجهاز الذي تستخدمه عليه برنامج لغة السي أم لا:
هناك طرقتين أم عن طريق برنامج DOS أو عن طريق برنامج Windows:
1-عن طريق برنامج Dos:
نكتب الأمر التالي عند المحث C:
c:>dir Borlandc
أو
c:>dir TC
2-عن طريق برنامج Windows:
من قائمة ابدأ نختار بحث ومنها نختار ملفات أو مجلدات ونكتب في اسم الملف أما: Borlandc أو Tc.
ونختار بعد ذلك زر البحث الآن للبحث والتأكد من وجود برنامج لغة السي على الجهاز.
وبعد ذلك سوف تظهر لك شاشة زرقاء.وتحتوي هذه الشاشة على مجموعة من القوائم وعددها عشرة
قوائم وهي:
1-File-2-Edit-3-Search-4-Run-5-Compile-6-Debug
7-Project-8-Options-9-Window-10-Help.
وسوف تلاحظ في أسماء القوائم الموجودة في شاشة برنامج لغة C++، أن الحرف الأول من اسم أي قائمة يكون حرف كبير وملون بلون أحمر.(لماذا ؟)
لتعرف الإجابة بنفسك قم بعمل التطبيق التالي، وأنظر ماذا سيحدث عند القيام بكل من العمليات التالية:
1-أضغط على مفتاح ALT +F.
2-أضغط على مفتاح ALT +E.
3-أضغط على مفتاح ALT +H.
هل عرفت الآن لماذا يكون الحرف الأول من اسم أي قائمة حرف كبير وملون بلون أحمر؟
الجواب: لأنه عند الضغط على مفتاح ALT +F سوف تظهر لك قائمة ملف(File) وعند الضغط على مفتاح ALT +E سوف تظهر لك قائمة
تحرير(Edit) وهكذا ستجد أنه عند الضغط على مفتاح ALT +الحرف الأول من اسم القائمة سوف تفتح لك تلك القائمة.
ولنأخذ على سبيل المثال قائمة ملف(File) ستجد أنها تحتوي على ما يلي:
1- New 4-Save as 7-Print
2-Open 5-Save all 8-Dos shell
3-Save 6-Change dir. 9-Quit
ستلاحظ أن بعض الحروف الموجودة ضمن قائمة ملف ملونة بلون أحمر(لماذ1؟)
الجواب:لأنه عند فتح قائمة ملف(File) والضغط على أي حرف من الحروف الملونة باللون الأحمر سينفذ لك الأمر الذي اختارته،فمثلاً عند فتح قائمة ملف والضغط على زر حرف N على لوحة المفاتيح ستجد أنه سوف يظهر لك ملف جديد. وعند الضغط على زر الحرف Q على لوحة المفاتيح سوف تخرج من برنامج C++ فوراً. وقس على ذلك بالنسبة لباقي القوائم.
4-الصيغة العامة لبرنامج لغة C++:
دائماً عند كتابة برامج لغة C++ يجب كتابة الأسطر التالية:
#Include
#include
main( )
{
clrscr();
الأوامر و المصطلحات;
}
5- شرح مكونات الصيغة العامة لبرنامج لغة C++:
1-include#:(يحتوي على): ونقوم بكتابتها في بداية برامج C++ لكي نذكر أسماء الملفات (Header Files) التي سوف يحتاجها البرنامج.
include#: هو من أوامر لغة سي ++ ويسمى (المعالج المبدئي)
ملاحظة: يأتي برنامج لغة السي مزود بمجموعة من ملفات ( Header Files ) و هي تحتوي على مجموعة من مكتبات الأوامر التي نستخدمها في البرامج، مثل:
أ-iostream.h ب-stdio.h ج-conio.h
وستلاحظ في أسماء مكتبات الأوامر أنه عادة ما يأخذ القسم الثاني من أسماء الملفات ( Header Files ) الحرف h ( إشارة إلي header ).
2-: وهي أحد أنواع ملفات ( Header Files ) هي عبارة عن مكتبة الأوامر الخاصة بوحدة الإدخال ( cin ) و وحدة الإخراج ( cout ).
3-conio.h: وهي تعتبر مكتبة الأوامر الخاصة بالشاشة وتأتي معها الدالة Clrsdr والتي تعني مسح الشاشة.
3-main():وهي الدالة الرئيسية المكونة لجميع برامج لغة C++ وهي أهم دالة في البرنامج وأساس البرنامج. وتبدأ كل برامج لغة C++ التنفيذ بدءا من التابع main() ، ويجب أن يحتوي برنامج لغة C على تابع main() واحد فقط.
4- { : ويعني هذا الرمز بداية البرنامج.
5-clrscr : وهو أمر خاص لتنظيف الشاشة ويكون موجود داخل مكتبة conio.h والخاصة بأوامر الشاشة
6-الأوامر والمصطلحات: المقصود بها تعريف المتغيرات وإجراء جميع أنواع العمليات الحسابية والرياضية المختلفة.
-وتعتبر الفاصلة المنقوطة هي أصغر أمر أو تعليمة بلغي السي وتعني نهاية السطر أو الأمر.
7- } : ويعني هذا الرمز نهاية البرنامج.
6-أهم وحدات الإدخال والإخراج في برنامج لغة السي:
1-cin>>: وهي عبارة عن كلمة الإدخال في لغة C++ أو Input.
2-cout<<: وهي عبارة عن كلمة الإخراج في لغة C++ أو Output.
7-ملاحظات هامة يجب مراعاتها عند كتابة البرامج بلغة السي :
1-تأكد من كتابة الصيغة العامة للبرنامج بشكل صحيح.
2-في لغة C++ الأوامر بشكل عام تكتب بحروف صغيرة مثل:cin –cout وذلك لأن لغة C++ لغة حساسة بالنسبة للحروف، فمثلاً كلمة for من الكلمات المحجوزة في لغة C++ التي لا يمكن استخدامها في اسم المتغير ولكن كلمة FOR تختلف تماماً عن كلمة for في لغة C++، حيث يمكننا استخدام كلمة FOR في كتابة أسماء المتغيرات في لغة C++.
3-تذكر أنه لابد من وضع الفاصلة المنقوطة في نهاية أي دالة أو تعليمة أو أمر. ولكن تذكر أن جملة for وجملة if يجب أن لا تضع في نهاية إي منها فاصلة منقوطة.
4-لا تنس تعريف المتغيرات وخاصة في البرامج التي تطلب منك إدخال إي قيمة.
5-إي برنامج في لغة C++ لا يخلو من أمر إدخال وإخراج(طباعة).
8-وظائف مفاتيح الاختصارات في برنامج لغة C++:
1-F2: وتستخدم لحفظ ملف.
2-F3: وتستخدم لفتح ملف.
3-ALT +BKsp: وتستخدم للتراجع عن العمل الأخير.
4-Shift +ALT +BKsp: وتستخدم لإعادة كتابة العمل الأخير.
5-Shift +Del: وتستخدم لقص جزء معين من البرنامج.
6-Ctrl +Ins: وتستخدم لنسخ جزء معين من البرنامج.
7-Shift +Ins: وتستخدم للصق جزء معين من البرنامج.
8-Ctrl +Del: وتستخدم لحذف جزء معين من البرنامج.
9-Ctrl +F9: وتستخدم لتشغيل وترجمة البرنامج.
10-ALT +R: وتستخدم أيضاً لتشغيل البرنامج.
11-ALT +F5: وتستخدم لعرض النتيجة على الشاشة.
12-ALT +F3: وتستخدم لإغلاق الملفات المفتوحة.
13-F5: وتستخدم لإعطاء صفحة كاملة أو نصف صفحة.
14-ALT +X: وتستخدم للخروج من برنامج لغة C++.
مثال1: البرنامج التالي يقوم بطباعة الجملة This is my first C++ program.:
#include
main()
{
cout:(بشرط أن تكون كل جملة في سطر منفصل)
الحل:
في لغة C++ تستخدم الدّالة cout<< لطباعة الرسائل أو المخرجات على الشاشة، حيث أن هذه الدّالة شبيهة بالأمر Write في لغة باسكال والأمر Print في لغة بيسك. الأسطر التالية تمثّل عملية طباعة رسالتين على الشاشة:
Cout<<"Hello programmers";
cout<<"are you having a good day?";
الرسائل التي سيتم طباعتها على الشاشة هي تلك التي بين علامتي الاقتباس ضمن الأقواس الهلالية. لاحظ أن وظيفة cout<< لا تقوم بطباعة كل جملة في سطر جديد بشكل تلقائي: إذا قمت بكتابة الأسطر السابقة ثم تنفيذ البرنامج فإنك ستحصل على السطر التالي:
Hello programmersare you having a good day?
لاحظ أن الجملتين تداخلتا عند نهاية الأولى وبداية الثانية. إذا أردت أن تفصل بين الجمل بحيث تبدأ كل جملة في سطر فإنه يمكنك استخدام الحرفين (أو تسلسل الحروف الخاصة) n في نهاية كل جملة. فمثلاً الأسطر التالية تمثل طباعة نفس الجملة السابقة ولكن عملية طباعة الجملة ستخرجها في سطرين متتاليين:
cout<< "Hello programmersn";
cout<<"are you having a good day?";
وسنلاحظ أن عملية الطباعة على الشاشة ستتم بهذا الشكل:
Hello programmers
are you having a good day?
ملاحظة : يمكنك استخدام الأحرف الخاصة في أي مكان في الجملة ولكن بين علامتي الاقتباس. فمثلاً، السطر التالي صحيح ولكن قراءة الكلمة ستكون بشكل رأسي:
cout<<"Pnrnongnrnanmnmnenrnsn";
-نتيجة تنفيذ البرنامج:
هكذا ستظهر الكلمة على الشاشة:
P
r
o
g
r
a
m
m
e
r
s
ملاحظة:
-سؤال تطبيقي(1): أكتب برنامج يقوم بطباعة الجملة " Welcome To City" ؟
-سؤال تطبيقي(2): أكتب برنامج يقوم بطباعة الكلمتين التاليتين:
Hello
ALI
بشرط:
1-أن تطبع كل كلمة في سطر منفصل
2-أن تطبع الكلمتين على نفس السطر مع ترك مسافة خمسة أحرف بين كل من الكلمتين.
9-الملاحظات والتعليقات في لغة السي ( Comment ):
تستعمل سائر لغات البرمجة جملاً للتعليقات والملاحظات ، وكذلك لغة السي ، فمثلاً الجملة التالية:
10 REM This is a comment
هي جملة ملاحظة في لغة البيسك.
-طرق كتابة التعليقات في برنامج لغة السي:
توجد هناك طريقتين لكتابة التعليقات داخل برنامج لغة السي:
1- باستخدام الرمز التالي // . مثال على ذلك:
// this is a comment
ملاحظة: تذكر ان الرمز // هي عبارة عن ملاحظات لسطر واحد فقط وكلما وضعت سطر ملاحظات ضع هاتين العلامتين في بداية السطر.
2-باستخدام الصيغة التالية: /* التعليق يكتب هنا */ . مثال على ذلك:
/* this is a comment */
وتستعمل جمل التعليق في إي مكان من البرنامج ، وذلك لإبداء ملاحظة ما ، عند سطر ما في البرنامج
ولا تعتبر جملة تنفيذية ، بمعنى أنها لو حذفت من البرنامج لا يؤثر فيه ذلك شيئا.ويكمن استخدام أكثر من جملة تعليق في داخل البرنامج الواحد.
سؤال: ما هو المقصود بهذه العبارة ( تتمتع جملة التعليق بلغة السي بمواصفات فائقة لا تتوفر في غيرها من اللغات)
-ملاحظات هامة يجب مراعاتها عند كتابة التعليقات والملاحظات في برنامج لغة السي:
1-لا تترك إي فراغ بين الشرطة / والنجمة * من جهتي جملة التعليق.
2-يقوم مترجم لغة السي بإهمال النصوص المستعملة في جمل التعليق إي أنه لا يصححها حتى لو كتبت بطريقة خاطئة ولا ينفذها أيضاً.
3-يمكن وضع التعليق أو الملاحظة في إي مكان بالبرنامج وتعتبر الجملة التالية صحيحة:
y=a+b; /*add*/
4-لا ينصح بوضع تعليق داخل تعليق لأن ذلك يتسبب في وقوع أخطاء.
مثال3:هذا برنامج يقوم بإدخال عددين وحساب المتوسط الحسابي لهما وطباعة الناتج.
#include
main()
{
float a,b,c;
cout<<”enter 2 number”;
cin>>a>>b;
sum=a+b;
c=sum/2;
cout<<”sum=”<
}
مثال عام: أكتب برنامج يقوم بإدخال رقمين وجمع هذين الرقمين و إظهار الناتج باستخدام لغة C++؟
الرقم الأول F
الرقم الثاني S
الرقم الثالث TOT
1-الحل باستخدام لغة C++:
#Include
main( )
{
int F,S,TOT;
cin>> F;
cin>> S;
TOT =F+S;
cout<< TOT;
return 0;
}
سؤال: أكتب برنامج يقوم بإدخال ثلاثة أعداد ثم يقوم بحساب حاصل ضرب الأعداد ثم يقوم بطباعة النتيجة على الشاشة ؟
( أسئلة عامة على الفصل الأول )
س1: أشرح بالتفصيل ما تعرفه عن معنى لغة السي ؟
س2: حسب دراستك للغة السي قارن بين كل من: المميزات والعيوب في لغة السي ؟
س3:ما هي الرموز المستخدمة في لغة السي ؟
س4:أذكر ثلاث طرق مختلفة لتشغيل برنامج لغة C++ ؟
س5:أكتب الصيغة العامة لبرنامج لغة السي ؟ مع شرح كل جزء من أجزاء الصيغة ؟
س5:ما معنى كل من المصطلحات التالية:
1-include
2-main()
3-iostream.h
4-conin.h
س6:صحح الأخطاء في كل مما يأتي ( إن وجد خطأ ):
1- include (iostream.h )
2- float a
int b,c,d
س8:أكتب برنامج يقوم بإدخال أسمك وعمرك ورقمك ثم يقوم بطباعتهما على الشاشة ؟
س9:أكتب برنامج يقوم بحساب راتب موظف عدد ساعات عمله 120ساعة وقيمة أجر الساعة 45ريال؟
س10:أكتب برنامج لحساب راتب موظف بمعلومية عدد ساعات عمل الموظف وقيمة أجر الساعة ؟
تحتوي لغة C++ على خمسة أنماط من البيانات وهي:
ويتم الإعلان عن المتغيرات الرمزية في بداية البرنامج على الصورة التالية ( مثلاً ):
حيث أن كل من f و x هنا رمزين ويمكن أن يحتويا على الحروف الأبجدية أو الأرقام و الرموز الخاصة .
وهنا تعتبر هذه الجملة جملة إعلان وتعيين في آن واحد.
ويمكن أن يتم الإعلان بصورة أخرى على النحو التالي:
وهنا تعتبر هذه الجملة جملة إعلان عن x الصحيحة ، وجملة تعيين لقيمة x في وقت واحد
جملة خاطئة لأن المترجم لا يعرف كلمة inta ولا يميزها.
سؤال:ما الفرق بين float - double ؟
ويتم الإعلان عنها على الصورة التالية:
5-عديمة القيمة (Void): وتعني القيمة الخالية ويتم الإعلان عنها على النحو التالي:
ونستعمل void في لغة السي لعدة أغراض ومنها:
2-تستخدم في عملية رسم الأشكال.
3-لبيان أن قيمة تعبير من التعابير لن يستعمل في البرنامج.
حيّز التخزين (بت) النوع / النمط
1-عدم بداية تسمية المتغير بأي رقم.
3-أن الاسم الذي نعطيه للمتغير يجب أن لا تختلف حالة حروفه في نفس البرنامج.
* الكلمات المحجوزة ( Keyword ):
وهي كلمات قياسية معرفة مسبقاً لمترجم لغة سي ، ولها معان خاصة بها تؤديها في برنامج لغة C++ .
يعرض الجدول التالي الكلمات المحجوزة في لغة C++:
وإليك هذه الأمثلة الصحيحة على أسماء المتغيرات:
a b6 f15 sum grade door12 on_off
و سوف نستعرض الآن مجموعة من اسماء المتغيرات غير الصحيحة (غير مقبولة ) وسنوضح السبب لكل منها وهي:
المتغير خاطئ والسبب: لأنه بدأ برقم وليس بحرف.
المتغير خاطئ والسبب: لأنه يحتوي على علامة استفهام.
المتغير خاطئ والسبب: لأنه يحتوي على أحد الكلمات المحجوزة في لغة السي.
المتغير خاطئ والسبب: لأنه يحتوي على أحد الرموز الخاصة وهي الفاصلة (,).
المتغير خاطئ والسبب: لأنه يحتوي على مسافة بين اسم المتغير..
المتغير خاطئ والسبب: لأنه يحتوي على أحد الرموز الخاصة وهي (-).
س1: وضح بالتفصيل ما هي أنواع البيانات في لغة C++ ؟
س2: ما المقصود بـ ( Void ) ؟ وما هي الأغراض التي يستخدم فيها ؟
حيّز التخزين (بت) النوع / النمط
س4:عرف المتغيرات ؟ وما هي شروط تسمية المتغيرات ؟
س5:عرف الكلمات المحجوزة ؟ مع ذكر عشرة أمثلة مختلفة على الكلمات المحجوزة في لغة C++ ؟
س6:بين هل أسماء المتغيرات التالية صحيحة أم لا مع ذكر السبب ( في حالة الخطأ ):
التعبير الحسابي ( Expressions):
تعريف: هو مجموعة من العمليات الحسابية بين الأعداد والثوابت والمتغيرات والدوال.
1-التعبير y * x يقابله في الجبر x y.
2-التعبير x / y يقابله في الجبر X
جملة التعيين ( Assignment Statement ):
-أمثلة متنوعة على جمل التعيين:
نلاحظ أن الطرف الأيمن ثابت عددي.
نلاحظ أن الطرف الأيمن تعبير حسابي.
نلاحظ أن الطرف الأيمن تعبير حسابي.
ملاحظة: إذا لم تكن درست لغة البيسك أو فورتران من قبل ، فقد تسأل عن معنى ومفهوم الجملة الأخيرة
ويمكنك إعادة كتابة الجملتين بشكل صحيح هكذا:
الأدوات المستعملة في لغة C++ ( Operators ):
ويوجد في لغة C++ ثلاثة أنواع من الأدوات وهي:
1- الأدوات الحسابية ( Arithmetic Operators ):
ويمكننا أن نلخص الأدوات الحسابية المستعملة في لغة C++ فيما يلي:
مثال: إذا كان لدينا البرنامج التالي:
وعند تنفيذ البرنامج تتوقع أنت أن يكون الجواب 99000 أليس كذلك؟؟ إلا أن الجواب في هذه الحالة
لن يتعدى 30464 ، وهو الحد الأعلى المسموح به للقيمة الصحيحة.
7 MOD 3 ، وكلمة MOD هي اختصار Modulus.
2-الأدوات العلاقية والمنطقية ( Relational and Logical Operators ):
1-التعبير المنطقي: x=y جوابه إما نعم أو لا.
2-التعبير المنطقي: a>b جوابه إما نعم أو لا.
ويبين لنا الجدول التالي الأدوات العلاقية:
ويبن الجدول التالي الأدوات المنطقية:
فأحسب نتيجة كل من التعابير التالية:
3-الأدوات الدقيقة ( Bitwise Operators ):
والجدول التالي يبين لنا الأدوات الدقيقة ومعنى كل منها:
النتيجة تساوي 1 وهي ( أداة علاقية ).
النتيجة تساوي 0 وهي ( أداة منطقية ).
وذلك لأن الأعداد هنا تحول إلي نظام ثنائي ثم تجمع.
2-أن التعامل مع الأدوات الدقيقة ليس سهلاً للمبتدئين لأنه يتطلب منك معرفة أولاً الأنظمة العددية.
لاحظ كيف باعدنا بين القيم في التعبير الثاني ليكون أوضح قراءة من التعبير الأول.
ولاحظ عند إعادة كتابة التعبير السابق وجعل كل عملية حسابية بين قوسين وسيصبح على الصورة:
ويعتبر التعبير الثاني أوضح من التعبير الأول ، أليس كذلك ؟؟
( أسئلة عامة على الفصل الثالث )
س1:عرف التعبير الحسابي ؟ مع ذكر مجموعة من الأمثلة على التعبير الحسابي ؟
س2:ما هي الأدوات المستعملة في لغة C++ ؟ مع شرح مفصل لكل نوع منها؟
س3:ما هو مفهوم المعادلة I= I+1 في لغة C++ ؟
1-سبب تسمية الأدوات العلاقية بهذا الاسم.
2-سبب تسمية الأدوات المنطقية بهذا الاسم.
3-سبب تسمية الأدوات الدقيقة بهذا الإسم.
-جمل التحكم والشرط والتكرار ( Program Control , Conditional & Loop Statements ):
تتعامل لغة C++ مع ثلاثة أنواع من جمل الشرط وهي:
1-جملة إذا الشرطية وأخواتها ( if statements ).
2-جملة التوزيع ( switch statement ).
1-جملة إذا الشرطية ( if statements ):
ولجملة إذا الشرطية ( if statements ) عدة صيغ وهي كالتالي:
-الصيغة الأولى لجملة إذا الشرطية ( if statements ):
وهي أبسط هذه الصيغ ويمكن أن نمثلها في المخطط الانسيابي التالي:
-ويمكن تمثيل هذه الصيغة في البرامج على النحو التالي:
-مثال توضيحي على هذه الصيغة (1):
-الصيغة الثانية لجملة إذا الشرطية ( if statements ):
ويمكن أن نمثلها في المخطط الانسيابي التالي:
-ويمكن تمثيل هذه الصيغة على النحو التالي:
قارن بين المثال السابق والمثال الذي يليه ماذا تلاحظ ؟
-الصيغة الثالثة لجملة إذا الشرطية ( if statements ):
--ويمكن تمثيل هذه الصيغة على النحو التالي:
إن كلمة else ترتبط بأقرب if لم ترتبط بـ else أخرى قبلها.
إذا كان الرقم سالباً وإلا إظهار الرسالة التالية "END OF PROGRAM" إذا كان الرقم يساوي الصفر.
سؤال: أكتب برنامج يقوم بحساب درجة طالب في إحدى المواد حيث يتم حساب التقدير حسب الجدول التالي:
-جملة التوزيع الشرطية Switch ( ):
وتماثل جملة Switch في لغة C++ جملة التوزيع التالية في لغة البيسك:
-الشكل العام لجملة Switch في لغة C++:
case constant n; statements n;
-ملاحظات هامة على الجملة Switch:
7-مؤشرات الزيادة والنقصان في لغة C++:
++a; أو a++ ومعناه إضافة 1 إلي a ويمكن كتابته بصورة مكافئة على النحو a=a+1 .
وبصورة مشابهة يمكن إنقاص قيمة 1 من a على النحو:
--a; أو a--; وهو يكافئ الصورة:
كتاب البرمجة بلغة سي (الجزء الأول)
اسم المؤلف: الدكتور/ عوض منصور
كلية الهندسة بجامعة العلوم والتكنولوجيا
كتاب الحاسوب وإيجاد الحلول باستخدام C++
اسم المؤلف: الدكتور / كمال بن منصور جمبي
كلية العلوم بجامعة الملك عبد العزيز
كتاب ( C++ from the Ground Up )
مجموعة متنوعة ومختلفة من المواقع التعليمية على شبكة الإنترنت
أرجو المعذرة إذا كانت هناك إي أخطاء إملائية أو أخطاء في التنسيق
ما أجمل أن نبتسم حين يظن الأخرون اننا سوف نبكي