جاهعت حواة كليت العلوم في هصياف /السنت األولى المادة :البرمجة و الخوارزميات المحاضرة األولى :لغة البرمجة C++ C++ Programming Language العام الدراسي 2019 - 2018 خطوات كتابة البزنامج • قبل أن نتمكن من كتابة برنامج بلغة C++أو أي لغة أخرى ال بد لنا أوال من فهم منطقً لجمٌع الخطوات الواجب إتباعها لحل مسألة ما بواسطة الحاسب. .1الخطوة األولى :تحدٌد و تعرٌف المشكلة .2الخطوة الثانية :تصمٌم البرنامج عن طرٌق كتابة خوارزمٌة حل المسألة .Algorithm .3الخطوة الثالثة :تحوٌل الخوارزمٌة إلى تعلٌمات بلغة ( C++برنامج) أو أي لغة برمجة أخرى. .4الخطوة الرابعة :تحوٌل تعلٌمات لغة C++بدورها إلى لغة اآللة Binary Codeالمستعملة خلوها من كافة أنواع األخطاء. بواسطة برنامج المصنف Compilerو التأكد من ّ .5الخطوة الخامسة :توثٌق البرنامج • التعرف على مجموعة مفاهٌم منها الخوارزمٌة و البرنامج و بعض المصطلحات و بنا ًء علٌه ٌجب ّ التسمٌات المستخدمة فً برمجة الحواسٌب. 2 3 4 5 6 مزاحل تنفيذ البزنامج Compiler / 7 الوفّسز ( ) Interpreterوالوتزجن ) ( Compiler - برنامجً المفّسر والمترجم الخاصٌن بلغات برمجة الحاسب ٌقومان بترجمة اللغات العالٌة إلى لغة اآللة لٌتمكن جهاز الحاسب من تنفٌذ التعلٌمات واألوامر بسرعة عالٌة جدا ً. - برنامج المفسر ٌ :Interpreterقوم بترجمة أوامر وتعلٌمات البرنامج المكتوب بإحدى لغات سر البرمجة سطرا ً سطرا ً إلى لغة اآللة أثناء قرائنها لٌتم تنفٌذها سطرا ً سطرا ً أٌضا ً .وٌمتلك المف ّ القدرة على التفاعل مع البرنامج أثناء تنفٌذه وإجراء أي تغٌٌر فً البرنامج ثم متابعة التنفٌذ. - برنامج المترجم ٌ :Compilerقوم بترجمة أوامر وتعلٌمات البرنامج المكتوب بإحدى لغات البرمجة ككتلة واحدة إلى لغة اآللة أثناء قرائنها ,لٌتم تنفٌذها دفعة واحدة ,وٌعتبر أسرع من برنامج المفّسر Interpreterبعدة مرات فً تنفٌذ البرنامج ,ولكن عند وجود أي خطأ فً البرنامج البد من إصالح الخطأ وإعادة تنفٌذ كل البرنامج من جدٌد. 8 هقاطع الذاكزة Memory Segment's ٌقوم المترجم Compilerبتقسٌم ذاكرة الحاسب إلى المقاطع التالٌة: • مقطع الترميز :Coding Segmentلتخزٌن نص البرنامج بعد تحوٌله إلى لغة اآللة ( .) 0 , 1 • المعرف عنها فً بداٌة البرنامج. مقطع المعطيات : Data Segmentلتخزٌن قٌم المتحوالت ّ • صرح عنها فً الدوال واإلجراءات . مقطع المكدس : Stack Segmentلتخزٌن قٌم المتحوالت الم ّ • الكومة : Heapالقسم الحر من ذاكرة ،RAMوٌمكن أن ٌستخدم لتخزٌن قٌم المتحوالت الدٌنامٌكٌة فقط. • تجدر اإلشارة إلى وجود مجموعة من الدوال واإلجراءات الخاصة بالتعامل مع ذاكرة الحاسب حٌث تمكننا من التحكم ببعض العملٌات ضمن الذاكرة بمختلف مقاطعها. 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 مثال على تعليمة الطباعة << cout برنامج ٌقوم بطباعة جملتٌن توضٌحٌتٌن على الشاشة تضمٌن تعلٌمات مكتبة iostream استخدام تعلٌمات مكتبة std >#include<iostream ; using namespace std استدعاء الدالة الرئٌسٌة Welcome in Hama University Faculty of Sciences بداٌة البرنامج تعرٌف متغٌّر إسناد جملة إلى المتغٌر line )( void main { ;char[25] line ; “ line = “ Welcome in Hama University طباعة محتوى المتغٌر lineواالنتقال إلى سطر جدٌد ; cout << line << endl طباعة جملة توضٌحٌة واالنتقال لسطر جدٌد ;cout << “Faculty of Sciences“ << endl نهاٌة البرنامج } 30 31 الوعزفت (قزاءة) >>cin عبارة إدخال القين للوتغيزاث ّ • تستخدم تعلٌمة >> cinإلدخال قٌم للمتغٌرات التً تم تعرٌفها فً بداٌة البرنامج والبقاء على نفس السطر بانتظار إدخال قٌمة. • دائما ً ٌنتهً السطر البرمجً بفاصلة منقوطة للداللة على انتهاء تعلٌمة اإلدخال. • مثال :إدخال قٌمة لمتغٌر واحد x • ٌمكن استخدام تعلٌمة >> cinإلدخال قٌم لمجموعة متغٌرات على نفس السطر البرمجً. ;cin>>x • مثال :إدخال قٌم لعدة متغٌرات ;cin>>x>>y>>z 32 مثال على تعليمة اإلدخال >> cin معرف فً البرنامج ،ثم ٌقوم بطباعة محتوى المتغٌّر على الشاشة برنامج ٌطلب إدخال جملة إلى متغٌّر ّ تضمٌن تعلٌمات مكتبة iostream تضمٌن تعلٌمات مكتبة conio استخدام تعلٌمات مكتبة std استدعاء الدالة الرئٌسٌة بداٌة البرنامج >#include<iostream >#include<conio ; using namespace std )( void main { ; char[20] w تعرٌف نوع المتغٌر w طباعة جملة توضٌحٌة ;" cout << "enter your words: \n ; cin >>w إدخال جملة إلى المتغٌر w مسح شاشة الحاسب طباعة محتوى المتغٌر w نهاٌة البرنامج ;)(clrsc ; cout << w } 33 مثال 2على تعليمة اإلدخال >> cin برنامج ٌطلب إدخال عددٌن صحٌحٌن إلى ذاكرة الحاسب ،ثم ٌقوم بطباعة ناتج جمعهما على الشاشة تضمٌن تعلٌمات مكتبة iostream >#include<iostream ; using namespace std )( int main { استخدام تعلٌمات مكتبة std استدعاء الدالة الرئٌسٌة بداٌة البرنامج تعرٌف أنواع المتغٌرات ; int Num1, Num2, Sum طباعة جملة توضٌحٌة ;" cout << "enter Num1 & Num2: \n إدخال قٌم إلى المتغٌرات المتغٌرٌن و وضع الناتج فً متغٌر آخر جمع قٌم ّ طباعة محتوى المتغٌر Sum إعادة قٌمة صفر للدالة main نهاٌة البرنامج ; cin >> Num1 >> Num2 ; Sum = Num1 + Num2 ; cout << “\n Sum = “ << Sum ; Return0 } 34 اكتب بزنامج إلدخال اسم وعمز ورقم هاتف ثم طباعة جملة توضيحية تتضمن البيانات المدخلة #include<iostream> using namespace std ; void main () { char[10] name; int age; long mobile; :النتيجة Hello, I am: Ahmad My mobile number is: 2112309 20: Years old cin >> name; Ahmad أو cin >> name >> age >> mobile ; cin >> age; 20 cin >> mobile; 2112309 cout << "Hello, I am:" << name << “\t “ << age << “: Years old” << endl; cout << “My phone number is:\n“ << mobile; } 35