اساسيات البرمجة 15/12/2017 :GS101
د .مبروكه معيوف
الفصل الدراس ي :خريف 7102
طرق حل املسائل البرمجية :الجزء الثاني لغات البرمجة programming languages ?what is a language ما هي اللغة؟ اللغة languageهي فئة setمن الكلمات wordsو القوانين .rulesهذه القوانين rulesترتب هذه الكلمات wordsفي جملة لها معنى. ?why do we need a language ملاذا نحتاج الى لغة؟ يحتاج االنسان للغة languageليتواصل to communicateمع االخرين .with others كيف نتواصل مع االلة (الحاسوب) ?)how to communicate with machine (computer بنفس الطريقة التي يتواصل فيها الناس (باستخدام اللغة) ،يتواصل االنسان مع الحاسب االلي ً باستخدام اللغة أيضا (لغات البرمجة .)programming language ?what is a programming language ما هي لغة البرمجة؟ هي لغة مكونة من مجموعة من التعليمات املتتالية sequence of instructionsالتي تسمى برنامج .program ما تصنيف لغات البرمجة؟ ?what is the classification of programming languages ً تصنف لغات البرمجة وفقا للمستوى ( )leveالى نوعين: لغات البرمجة وفقا ً للمستوى Programming language according to level
لغات البرمجة ذات المستوى المنخفض low level Programming language
لغات البرمجة ذات المستوى العالي high level Programming language
لغة االلة machine language (مثل :لغة التجميع )assembly language
لغة قريبة للغة االنسان (مثل :لغة )Java ،C++
1
اساسيات البرمجة 15/12/2017 :GS101
د .مبروكه معيوف
الفصل الدراس ي :خريف 7102
ً oما انواع لغات البرمجة وفقا للمفهوم و الهيكلية؟ ?What are the types of programming languages according to the concept & structure
توجد انواع عديدة من لغات البرمجة التي تختلف في املفاهيم ،من اهمها: .1البرمجة االجرائية procedural programming كانت بداية البرمجة اجرائية ،حيث يتكون البرنامج من مجموعة من التعليمات instructions or statementsاملتتالية التي يتم تنفيذها واحدة تلو االخرى .و مع ازدياد حجم البرنامج ،تم تقسيمه الى ً أيضا وظيفة functionأو دالة ٌ )method كل وحدات صغيرة تسمى إجراء ( procedureو يطلق عليها منها تؤدي مهمة محددة. .2البرمجة الهيكلية structured programming مع استمرار ازدياد حجم البرنامج اكثر ،ظهرت البرمجة الهيكلية structured programmingالتي يتم فيها وضع مجموعة من الدوال في وحدة اكبر تسمى ( moduleفي الغالب تكون ملف .) fileو مع ازدياد ً حجم البرنامج اكثر فأكثر ،اصبحت اكثر تعقيدا مما ادى الى اخفاق معظمها و تبين فيما بعد انه ثمة قصور و ضعف في البرمجة االجرائية بأنواعها. .3البرمجة الشيئية )object oriented programming (OOP يتكون العالم من حولنا من مجموعة من الكائنات Objectsالتي لها صفات (خصائص) attributesو ً سلوك .behaviorو بناءا على هذا املفهوم ،جاءت فكرة البرمجة الشيئية او املوجهة نحو الكائنات. حيث تكمن فكرة OOPفي دمج البيانات ) (attributesمع الوظائف او الدوال ) (behaviorالتي تعمل على هذه البيانات في وحدة مستقلة a single unitتسمى كائن .Objectلذا ،يقسم البرنامج في OOP الى كائنات تتفاعل مع بعضها البعض خالل فترة تنفيذ البرنامج.
2
اساسيات البرمجة 15/12/2017 :GS101
د .مبروكه معيوف
الفصل الدراس ي :خريف 7102
C++ language لغة C++ هي لغة مشتقة من لغة ،Cو هي لغة شاملة ،Super Setو يمكن استخدامها للبرمجة االجرائية و البرمجة الشيئية على حد سواء. كيف نحصل على برنامج C++؟ للحصول على برنامج ،C++نتبع الخطوات التالية:
?how to develop a C++ program
يُكتب برنامج C++في أي محرر النصوص ،و يُخزن على القرص في ملف ينتهي بنقطة و امتداد cpp يُسمى هذا الملف بملف مصدر .مثل first.cpp
الملف المصدر على القرص
Editorمحرر نصوص
1. edit
Library header file User header file
Source file ملف مصدر Compilerمترجم
يقوم المترجم بتضمين جميع الملفات التي تم استخدامها في البرنامج ثم يترجمها الى ملف هدف object fileينتهي بامتداد o مثل first.o
Library file ملف مكتبة
object file ملف هدف Linkerرابط
يقوم الرابط Linkerبربط جميع اجزاء البرنامج مع بعضها البعض لتشكل ملف تنفيذي واحد ينتهي بامتداد exe مثل first.exe
Executable file ملف تنفيذي
3
2. Compile
3. link
اساسيات البرمجة 15/12/2017 :GS101
د .مبروكه معيوف
الفصل الدراس ي :خريف 7102
C++ Application Programming برمجة تطبيق C++ عند كتابة برنامج بلغة ،C++يجب مراعاة النقاط التالية: .1يجب ان يحتوي البرنامج على الدالة الرئيسية ) (int main على ان يكون لهذه الدالة قوس بداية { و قوس نهاية } .2يجب تضمين امللفات املراد استخدامها في البرنامج في بداية البرنامج عند الحاجة الستخدامها (.)header files .3يجب تسمية البيانات املستخدمة في البرنامج ،مع مراعاة الفارق بين الحروف الكبيرة و ً الصغيرة ،فمثال a :تختلف عن .A .4ال تحتوي اسماء البيانات على فراغ أو رمز غريب ما عدا الشرطة السفلية ( _ )underscore:و يجب ان يبدأ بحرف (ليس رقم). .5يجب ان ينتهي كل سطر بالفاصلة املنقوطة ; ما عدا سطر جملة التضمين #include .6يمكن ادراج التعليقات في البرنامج لتوضيح عمل كل فقرة. الشكل العام لبرنامج :C++ >#include <iostream . . . Using namespace std
جمل التضمين
موجه االستخدام
Declaration ( . التصريح بالبيانات . (تعريف البيانات) . . ) ( int mainالدالة الرئيسية للبرنامج { قوس بداية . . . جسم البرنامج . } قوس نهاية
4
اساسيات البرمجة 15/12/2017 :GS101
د .مبروكه معيوف
الفصل الدراس ي :خريف 7102
data in C++ البيانات في لغة C++ في اي لغة برمجة ،البد من تسمية البيانات املستخدمة في البرنامج .و يجب تحديد نوع هذه البيانات من ناحيتين: ً اوال :يجب تحديد ما اذا كانت البيانات ثابتة constantاو متغيرة .variable ً ثانيا :يجب تحديد نوع محتوى البيانات: Types Primitives data type
references data type
real logical symbols float true char double false String
pointer array struct class
Integer short int long byte
constant data in C++ البيانات الثابتة في لغة C++ التصريح بالبيانة الثابتة في C++يتم عن طريق اعطاء اسم مميز لها و قيمة ثابتة ال يمكن ان تتغير خالل فترة تنفيذ البرنامج ،و الشكل العام ( )ruleلها مبين كما يلي: ;type constant-name = value القيمة اسم الثابت النوع مثالint x = 0 ; : variable data in C++ البيانات املتغيرة في لغة C++ التصريح بالبيانة املتغيرة في C++يتم عن طريق اعطاء اسم مميز لها و قيمتها غير معروفة و يمكن ان تتغير خالل فترة تنفيذ البرنامج ،و الشكل العام ( )ruleلها مبين كما يلي: ; type variable-name اسم املتغيرة النوع ; char a مثال:
5
اساسيات البرمجة 15/12/2017 :GS101
د .مبروكه معيوف
الفصل الدراس ي :خريف 7102
مالحظات: .1يجب التصريح بالبيانات data declarationفي البرنامج قبل استخدامها. .2معنى التصريح بالبيانات data declarationهو تعريفها و اعطاء اسم مميز لها و تحديد نوعها مثلint a : .3يمكن التصريح بالبيانات قبل دالة ) ( mainالرئيسية في البرنامج او داخل اقواس بدايتها و نهايتها. .4يمكن تخصيص قيمة للمتغيرة داخل البرنامج. .5يجب مراعاة اعطاء اسماء للبيانات ذات معنى. جمل االخراج output statement لعرض اي بيانات على الشاشة (شاشة الحاسوب) ،تستخدم لغة C++تعليمة coutو الشكل العام لها عالمة االخراج مبين كما يلي: ; البيانات املراد ظهورها على الشاشة << cout كلمة محجوزة مثال :0لعرض الجملة التالية كما هي على الشاشة hello C++ :نضعها بين عالمتي نص كما يلي: ; "cout<< "hello C++ مثال :7لعرض محتوى متغيرة او محتوى ثابتة نكتب اسمها مع تعليمة االخراج كما يلي: ; cout << a
مثال :اكتب برنامج بلغة C++يطبع بياناتك الجامعية. >#include <iostream ; using namespace std ; int a = 123456 ; int sem=1 ) (int main { ; cout<< "name: Ali Ahmed" <<\n ; cout<< "reg: " << a <<\n ; cout<< "semester: "<< sem << \n }
6
اساسيات البرمجة 15/12/2017 :GS101
د .مبروكه معيوف
الفصل الدراس ي :خريف 7102
جملة االدخال input statement إلدخال بيانات من لوحة املفاتيح ،تستخدم لغة C++التعليمة cinو الشكل العام لها (قانونها) مبين عالمة االدخال كما يلي: ; cin >> variable-name اسم املتغيرة كلمة محجوزة ً مثال :تنطلق طائرة في رحلة من مدينة أ الى مدينة ب بسرعة 088كم/س كم تقريبا .اكتب الحل البرمجي لطباعة بيانات الرحلة و الزمن املستغرق لقطع مسافة .n الحل: ً لحل اي مشكلة حاسوبيا نتبع املراحل التالية: ً اوال :التحليل :يتم في هذه املرحلة تحديد كل من: :Output املطلوب من السؤال هو: طباعة بيانات الرحلة و املتمثلة في: رقم الرحلة -flight numberاالقالع من -departure fromالوصول الى -arrival toالسرعة -speed املسافة .distance ???=time طباعة الزمن املستغرق: :Input معطيات السؤال و املتمثلة في: speed=800 السرعة باقي البيانات ؟؟ (ادخالها من لوحة املفاتيح) :Processing حساب الزمن املستغرق ???=time ً ثانيا :التصميم :يتم في هذه املرحلة تصميم الحل لتحقيق املطلوب من السؤال بناء على معطيات السؤال ،و يتم وصف الحل في صورة خوارزمية يعبر عنها باللغة الطبيعية كما يلي: 1. start ; 2. read flight_number , departure_from, arrival_to, speed, distance ; 3. let speed=800 ; 4. time = distance/speed 5. print flight_number , departure_from, arrival_to, speed, distance, time 6. stop
7
7102 خريف:الفصل الدراس ي
مبروكه معيوف.د
15/12/2017 :GS101 اساسيات البرمجة
. ارسم املخطط االنسيابي، لتوضيح الحل.مازلنا في مرحلة التصميم ً . يتم كتابة الحل البرمجي باستخدام احد لغات البرمجة املناسبة، في هذه املرحلة: التنفيذ:ثالثا : االجرائية كما يليC++ يتم كتابة الحل البرمجي باستخدام لغة،في هذه املسألة ّ هذه الجملة ت #include <iostream> // ضمن ملف رئيس ي ليسمح لنا باستخدام تعليمات االدخال و االخراج ّ using namespace std ; // هذه الجملة ترشد النظام الى مكان املكتبة القياسية int flight_number ; char departure_from ; char arrival_to; double speed =800 ; double distance, time ; int main ( ) { cout<<" \n enter flight number: " ; cin>> flight_number ; cout<<" \n enter departure from: " ; cin>> departure_from ; cout<<" \n enter arrival to: " ; cin>> arrival_to ; cout<<" \n enter distance: " ; cin>> distance ; time = distance/speed ; cout<<" the flight number: "<< flight_number << "departure from: " << departure_from; cout<<"\n arrival to: "<< arrival_to << "with speed: " << speed; cout << "\n and take distance: " <<distance << "with time: " <<time\n; return 0 ; // هذه الجملة ترجع القيمة صفر لتجعل البرنامج يتوقف عن التنفيذ }
8
اساسيات البرمجة 15/12/2017 :GS101
د .مبروكه معيوف
الفصل الدراس ي :خريف 7102
العمليات في لغة C++ oالعمليات املنطقية logical operations العمليات املنطقية في لغة C++تتضمن العالمات املنطقية التالية: ANDو تمثل ب&& ORو تمثل ب|| NOTو تمثل ب! و يمكن مزج أكثر من عالمة منطقية مثلa && b || c : و يكون ناتج العملية املنطقية إما trueأو .false oالعمليات الحسابية arithmetic operations تمثل العمليات الحسابية ،/ ،* ،- ،+كما في اللغات االخرى .و ترتب هذه العمليات ً حسب االسبقية .فالضرب و القسمة أوال ثم الجمع و الطرح إال اذا كانت هذه العمليات تحتوي على االقواس ،في هذه الحالة ،يتم فك االقواس قبل كل ش ي ،ثم تجرى العمليات حسب االسبقية. باإلضافة للعمليات السابقة ،هناك عملية باقي القسمة و تمثل في لغة C++بالرمز % مثل ?? = 5 % 2 oالعمليات العالئقية تتضمن العمليات العالئقية العالمات التالية: < >= ، <= ، != ، == ، > ، و هي تدخل في تكوين الشرط .condition مثال :باستخدام الحاسوب ،احسب ناتج العملية التالية: when A = 10 , B = 27 , C = 2 , D = 9
9
A+B / D % C * A
اساسيات البرمجة 15/12/2017 :GS101
د .مبروكه معيوف
الفصل الدراس ي :خريف 7102
جمل التكرار تستخدم جمل التكرار لتنفيذ مجموعة من التعليمات لعدد من املرات .و من أهم هذه الجمل ما يلي: for statement o ً تستخدم لتنفيذ تعليمة أو مجموعة من التعليمات لعدد من املرات وفقا لشرط معين، و الشكل العام لها كالتالي: مقدار الزيادة شرط القيمة االبتدائية متغيرة التحكم نوع املتغيرة كلمة محجوزة )for (int control-variable=initial-value ; condition ; increment { . block تعليمة او أكثر . statements . }
مالحظة :يمكن ان تكون القيمة االبتدائية و الشرط و مقدار الزيادة في صورة تعبير رياض ي. while statement o تستخدم لتنفيذ تعليمة أو مجموعة من التعليمات لعدد من املرات في حالة تحقق الشرط ،حيث يتم اختبار الشرط في كل مرة للتحقق من صحته .في حالة عدم تحقق الشرط ،يتم الخروج من الحلقة .و الشكل العام لها كالتالي: القيمة االبتدائية Initial-value شرط كلمة محجوزة )while (condition { . block تعليمة او أكثر . statements تغير الشرط . condition changing }
11
اساسيات البرمجة 15/12/2017 :GS101
د .مبروكه معيوف
الفصل الدراس ي :خريف 7102
مالحظات جملة do….whileلها نفس مميزات جملة whileلكنها تختلف عنها في تنفيذ الحلقة و الدخول فيها مرة واحدة على االقل دون اختبار للشرط ،بعكس جملة whileالتي يتم فيها التحقق من الشرط ً اوال قبل الدخول في الحلقة. تستخدم تعليمة breakإلنهاء الحلقة و الخروج منها ،بينما تستخدم continueلالنتقال بالتحكم الى حلقة التكرار من جديد دونما تنفيذ للتعليمات التي تلي تعليمة .continue
11
اساسيات البرمجة 15/12/2017 :GS101
د .مبروكه معيوف
الفصل الدراس ي :خريف 7102
جمل التحكم ُ تستخدم لتنفيذ تعليمة او اكثر في حالة تحقق الشرط .و من اهمها ما يلي: If statement o تستخدم لتنفيذ تعليمة او اكثر في حالة تحقق الشرط ،و الشكل العام لها: شرط كلمة محجوزة )if (condition { . block تعليمة او أكثر . statements . }
If else statement o تستخدم لتنفيذ تعليمة او مجموعة من التعليمات في حالة تحقق الشرطـ ،و في حالة عدم تحقق الشرط ،يتم تنفيذ التعليمات التي تلي جملة else شرط كلمة محجوزة )if (condition { . تعليمة او أكثر block . statements تغير الشرط . condition changing } كلمة محجوزة else { . تعليمة او أكثر block . statements
و إال
تغير الشرط . condition changing }
12
اساسيات البرمجة 15/12/2017 :GS101
د .مبروكه معيوف
الفصل الدراس ي :خريف 7102
switch statement o تستخدم لتنفيذ تعليمة او اكثر في حالة ان التعبير الرياض ي يساوي القيمة املناسبة ،و إال ،فإنه ينفذ التعليمة املصاحبة لالفتراض ي ،defaultو الشكل العام لها : تعبير رياض ي كلمة محجوزة )switch (expression { case value1: تعليمة او أكثر ;statement ;break case value2: تعليمة او أكثر ;statement ;break . . . case value n: تعليمة او أكثر ;statement ;break تعليمة او أكثر
default: ;statement ;break }
13
اساسيات البرمجة 15/12/2017 :GS101
د .مبروكه معيوف
الفصل الدراس ي :خريف 7102
**اسئلة عامة: ً باستخدام الحاسوب ،اكتب حال للمسائل التالية: .1طباعة االعداد التي تقبل القسمة على 5فيما بين .13 & 3 .2استبدال قيمة متغيرة بأكبر منها بين متغيرتين ثم طباعتهما قبل و بعد االستبدال. .3طباعة جدول الضرب لرقم مدخل .m .4طباعة اجمالي املرتب الحد املوظفين اذا كان يتقاض ى مرتب مع اضافي اذا علمت ان قيمة الساعة االضافية تساوي 15دينار بشرط ان ال يزيد عدد الساعات االضافية عن 40ساعة. .5طباعة عمر شخص ما باأليام. .6طباعة قيمة الربح لسلعة اذا كان ثمن البيع يساوي ضعف ثمن الشراء و عدد القطع املباعة .m .7طباعة التقدير و نسبة النجاح الحد الطالب اذا كانت درجاته على التوالي .77 ،55 ،06 ،77 ،65 .0تحويل الزمن Xالى ساعات و دقائق ثم طباعة الزمن قبل التحويل و بعد التحويل. .7طباعة املسافة التي تقطعها سيارة تسير بسرعة 128كم/س في زمن قدره 5ساعات. .18تحويل العدد 132الى النظام الثنائي ثم طباعة العدد قبل و بعد التحويل.
14