جاهعت حواة
كليت العلوم في هصياف /السنت األولى
المادة :البرمجة و الخوارزميات
المحاضرة األولى :لغة البرمجة 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