Gs101 محاضرة 4 fall2017

Page 1

‫اساسيات البرمجة ‪09/11/2017 :GS101‬‬

‫د‪ .‬مبروكه معيوف‬

‫الفصل الدراس ي‪ :‬خريف ‪7102‬‬

‫‪ ‬طرق حل املسائل البرمجية‪ :‬الجزء االول‬ ‫يتمكن املبرمج الخبير ‪ expert programmer‬من حل املسائل البرمجية بسرعة بسبب خبرته التي تمكنه‬ ‫من تحليل املسألة البرمجية و تصميم الحل لها ثم كتابة الكود البرمجي بلغة برمجة مناسبة دون‬ ‫تعقيد‪ .‬أما املبرمج املبتدئ فيحتاج الى وقت اطول للتحليل و تصميم الحل (صياغة الخوارزمية)‪.‬‬ ‫لذلك‪ ،‬البد من اتباع عدد من املراحل التي تمكنه من تصميم الخوارزمية املناسبة للحل‪.‬‬ ‫‪ ‬الخوارزميات ‪Algorithms‬‬ ‫اي خوارزمية تتكون من مجموعة من التعليمات (‪ .)instructions‬هذه التعليمات هي‪:‬‬ ‫‪Input/ output statements‬‬ ‫‪Computable expressions‬‬ ‫‪Assignments‬‬ ‫هذه التعليمات يمكن ان تتكرر في خطوات الحل‪.‬‬ ‫ُ‬ ‫عملية التخلص من الفقرات املكررة تسمى ‪ .refinement‬و هي عملية مهمة جدا اذ تمكن املبرمج‬ ‫من الحصول على الحل االمثل للمسالة البرمجية‪.‬‬ ‫‪Top-Down Design ‬‬ ‫عملية تجزئة املسألة البرمجية الى أجزاء صغيرة و تصميم الحل لكل جزء على حدة تعتبر من اشهر‬ ‫ً‬ ‫الطرق لحل املسألة البرمجية و تسمى ‪ ،Top-Down Design‬كما تعبر هذه الطريقة ايضا عن عملية‬ ‫الصقل التدريجي لخطوات الحل‪ ،‬بمعنى آخر‪ ،‬وصف الحل املمكن و محاولة التخلص من العمليات‬ ‫املكررة قدر االمكان‪.‬‬ ‫خطوات التجزئة‪:‬‬ ‫‪ .1‬البحث عن عملية و عكسها‬ ‫ً‬ ‫قد يحتوي الحل على مجموعة من الفرضيات‪ .‬مثال‪ :‬الرقم ينتمي الى فئة االعداد الصحيحة‬ ‫املوجبة‪ :‬ص= } ‪{......1،2،1‬‬ ‫ً‬ ‫أو قد يحتوي على مجموعة من الشروط‪ .‬مثال‪ :‬اذا كان الرقم اكبر من الصفر‪.....................‬‬ ‫في هذه الحالة‪ ،‬يتم التعبير عن العملية بجملة (اذا كان‪).........‬‬ ‫‪If statement‬‬ ‫مثال‪ .1 :‬اكتب خوارزمية اليجاد الرقم االكبر بين ثالثة ارقام‪.‬‬

‫‪1‬‬


‫اساسيات البرمجة ‪09/11/2017 :GS101‬‬

‫د‪ .‬مبروكه معيوف‬

‫الفصل الدراس ي‪ :‬خريف ‪7102‬‬

‫‪ .2‬البحث عن عمليات مكررة‬ ‫يمكن ان تتكرر التعليمة الواحدة او مجموعة من التعليمات لعدد من املرات ‪.n‬‬ ‫في هذه الحالة البد من شروط للتحكم في عدد مرات التكرار‪ .‬هذه العملية يمكن اختصارها‬ ‫ً‬ ‫ُ‬ ‫حاسوبيا في حلقة تكرار تسمى ‪.loop‬‬ ‫للتحكم في التكرار البد من وضع شروط معينة وفق عمليات محددة تتمثل في التالي‪:‬‬ ‫‪int i=0‬‬ ‫‪ ‬تحديد القيمة االبتدائية للحلقة‬ ‫‪i<=5‬‬ ‫‪ ‬تحديد عدد مرات التكرار‬ ‫‪i++‬‬ ‫‪ ‬تحديد مقدار الزيادة‬ ‫مثال‪ :‬اكتب خوارزمية لطباعة االرقام من ‪ 1‬الى ‪.11‬‬

‫‪ .1‬البحث عن مهمة مكررة‬ ‫يمكن ان تحتوي الخوارزمية على مهام مستقلة مكررة مثل معرفة أكثر من قيمة مالية محلية‬ ‫ً‬ ‫بالدوالر يتم ادخالها دوريا‪ .‬في كل مرة يتم ادخال قيمة محلية‪ ،‬يتم تحويلها الى الدوالر و هكذا‪ .‬اذن‬ ‫ً‬ ‫ُ‬ ‫نحن بحاجة الى مهمة تتكرر كلما الزم االمر‪ .‬هذه العملية تترجم حاسوبيا الى دالة او اجراء‬ ‫)‪. function (method‬‬ ‫مثال‪ :‬اكتب خوارزمية ليجاد قيمة مبلغ بعد تحويله من العملة املحلية الى الدوالر‪.‬‬ ‫‪ .4‬البحث عن بيانات من نفس النوع‬ ‫يتميز الحاسوب بقدرته على هيكلة البيانات املكررة التي تشترك في سمات معينة او صفات محددة‬ ‫مثل االرقام الصحيحة‪ .‬بمعنى التعامل معها بطريقة خاصة سواء من ناحية التخزين في الذاكرة او‬ ‫العمليات املقامة عليها‪ .‬و هناك انواع كثيرة من هياكل البيانات ابسطها هي املصفوفات ‪.arrays‬‬

‫‪2‬‬


‫اساسيات البرمجة ‪09/11/2017 :GS101‬‬

‫د‪ .‬مبروكه معيوف‬

‫الفصل الدراس ي‪ :‬خريف ‪7102‬‬

‫‪ ‬التعبير عن الخوارزميات‬ ‫فيما سبق‪ ،‬تم التعبير عن الخوارزميات باللغة الطبيعية ‪ natural language‬عن طريق سرد العمليات‬ ‫ً‬ ‫و االحداث بالكلمات و مزجها بالعمليات الحسابية كلما لزم االمر‪ .‬يمكن التعبير ايضا عن الخوارزميات‬ ‫ُ‬ ‫بالرسوم و االشكال الهندسية التي لها معنى و التي تسمى باملخططات االنسيابية ‪.Flowchart‬‬ ‫‪ ‬املخططات االنسيابية (خرائط التدفق) ‪flowchart‬‬ ‫هي عبارة عن مجموعة من الرسومات التي تصف خطوات الحل (خطوات سير البرنامج الحاسوبي)‪.‬‬ ‫ً‬ ‫بطريقة مرئية ‪ .visualization‬يتم تصميم املخطط وفقا لقواعد و قوانين محددة حيث لكل شكل‬ ‫معنى‪ .‬أهم هذه االشكال ما يلي‪:‬‬

‫‪3‬‬


‫اساسيات البرمجة ‪09/11/2017 :GS101‬‬

‫د‪ .‬مبروكه معيوف‬

‫الفصل الدراس ي‪ :‬خريف ‪7102‬‬

‫توجد بعض االشكال االضافية التي يمكن استخدامها في رسم ‪ flowchart‬كما في الجدول التالي‪:‬‬

‫كما يمكن وصف أهم العمليات الرسومية كما في الجدول التالي‪:‬‬

‫‪4‬‬


7102 ‫ خريف‬:‫الفصل الدراس ي‬

‫ مبروكه معيوف‬.‫د‬

09/11/2017 :GS101 ‫اساسيات البرمجة‬

general rules for flowcharts ‫ القواعد العامة لرسم املخططات االنسيابية‬ ‫ كل اشكال املخطط متصلة مع بعضها البعض باسهم‬.1 All boxes of the flowchart are connected with Arrows. (Not lines)

‫ و مخرج واحد فقط من االسفل ما عدا‬top ‫ من االعلى‬input ‫ لكل شكل مدخل واحد فقط‬.2 .)if statement( ‫شكل القرار‬ Flowchart symbols have an entry point on the top of the symbol with no other entry points. The exit point for all flowchart symbols is on the bottom except for the Decision symbol.

‫ اما على جانبيه أو من االسفل و أحد‬،two exit ‫) لديه مخرجان‬if statement( ‫ شكل القرار‬.1 .‫الجوانب‬ The Decision symbol has two exit points; these can be on the sides or the bottom and one side

‫ يمكن ان يعود التدفق الى اي شكل في االعلى‬.‫ املخطط يتدفق من اعلى الى اسفل‬،‫ بصفة عامة‬.4 .)loop( ‫متى لزم االمر‬ Generally a flowchart will flow from top to bottom. However, an upward flow can be shown as long as it does not exceed 3 symbols.

ُ ‫ حلقة الوصل تستخدم للربط بين االشكال املعزولة في مكان آخر من الرسمة مثل ربط شكل‬.5 .‫في صفحة مع شكل آخر في صفحة أخرى‬ Connectors are used to connect breaks in the flowchart. Examples are: From one page to another page. From the bottom of the page to the top of the same page. An upward flow of more then 3 symbols

‫) لها مخطط مستقل‬procedure ‫ (االجراءات‬methods ‫ و الدوال‬subroutines ‫ البرامج الفرعية‬.6 .‫عن املخطط الرئيس ي‬ Subroutines and Interrupt programs have their own and independent flowcharts

predefined process ‫ أو شكل‬terminal ‫ كل املخططات تبدأ بالشكل‬.7 All flow charts start with a Terminal or Predefined Process (for interrupt programs or subroutines) symbol.

.‫ أو حلقة مستمرة‬terminal ‫ كل املخططات تنتهي بالشكل‬.8 All flowcharts end with a terminal or a contentious loop.

5


‫اساسيات البرمجة ‪09/11/2017 :GS101‬‬

‫د‪ .‬مبروكه معيوف‬

‫الفصل الدراس ي‪ :‬خريف ‪7102‬‬

‫‪ ‬اهمية املخططات االنسيابية (خرائط التدفق)‬ ‫‪ .0‬االتصال و التواصل ‪ :communication‬يمكن استخدامها كطريقة جيدة للتواصل املنطقي‬ ‫للنظام املصمم‪.‬‬ ‫‪Communication: A Flowchart can be used as a better way of communication‬‬ ‫‪of the logic of a system and steps involve in the solution, to all concerned‬‬ ‫‪particularly to the client of system.‬‬

‫‪ .7‬التحليل الفعال‪ :‬يمكن تحليل املشكلة بطريقة فعالة عن طريق املخطط االنسيابي حيث‬ ‫معظم الناس يفهمون االشكال و معناها بطريقة اسرع من الكلمات‬ ‫‪Effective analysis: A flowchart of a problem can be used for effective‬‬ ‫‪analysis of the problem‬‬

‫‪ .3‬صيانة البرنامج بكفاءة‪ :‬يمكن صيانة البرامج بسهولة من خالل املخطط االنسيابي‬ ‫‪Efficient Program Maintenance: Once a program is developed and becomes‬‬ ‫‪operational it needs time to time maintenance. With help of flowchart‬‬ ‫‪maintenance become easier.‬‬

‫ُ‬ ‫‪ .4‬توثيق البرنامج‪ :‬املخططات االنسيابية هي جزء حيوي إلعداد وثيقة برنامج جيدة تستخدم‬ ‫فيما بعد ملعرفة مكونات البرنامج و تعقيد البرامج الكبيرة و غيرها‪.‬‬ ‫‪Documentation of Program/System: Program flowcharts are a vital part‬‬ ‫‪of a good program documentation. Program document is used for‬‬ ‫‪various purposes like knowing the components in the program,‬‬ ‫‪complexity of the program etc.‬‬

‫‪ .5‬كتابة الكود‪ :‬يمكن تحويل املخطط االنسيابي الى برنامج بسهولة اكثر من الكلمات‬ ‫‪Coding of the Program: Any design of solution of a problem is finally‬‬ ‫‪converted into computer program. Writing code referring the flowchart‬‬ ‫‪of the solution become easy.‬‬

‫كما يساعد املخطط االنسيابي املبرمج في التالي‪:‬‬ ‫‪ .0‬توضيح صورة متكاملة للخطوات املطلوبة لحل املسائل في ذهن املبرمج‪.‬‬ ‫‪ .7‬تشخيص األخطاء التي تقع عادة والتي يعتمد اكتشافها على وضع التسلسل‪.‬‬ ‫‪ .3‬تسهيل إدخال التعديالت في أي مكان بالتخطيط‪.‬‬ ‫‪ .4‬تسهيل متابعة التفاصيل الدقيقة والتفرعات الكثيرة من خالل املخطط‪.‬‬ ‫‪ .5‬تعتبر املخططات مراجع لحل املسائل املشابهة لها‪.‬‬

‫‪6‬‬


‫اساسيات البرمجة ‪09/11/2017 :GS101‬‬

‫د‪ .‬مبروكه معيوف‬

‫الفصل الدراس ي‪ :‬خريف ‪7102‬‬

‫‪ ‬تابع‪ :‬طرق حل املسائل البرمجية‪ :‬الجزء االول‬ ‫‪ ‬الخوارزميات و املخططات االنسيابية ‪ :algorithms & flowcharts‬امثلة تطبيقية على ما سبق‬ ‫السؤال االول‪ :‬اكتب خوارزمية إليجاد مساحة دائرة قطرها ‪ 72‬سم‪ ،‬ثم ارسم ‪ flowchart‬لها‪.‬‬ ‫**الحل‪:‬‬ ‫لكتابة الخوارزمية للسؤال املعطى‪ ،‬نتبع الخطوات التالية‪:‬‬ ‫ً‬ ‫أوال‪ :‬التحليل (تحليل السؤال)‬ ‫تحديد ‪ output‬و هو مساحة الدائرة ‪area‬‬ ‫تحديد ‪ input‬و هو قطر الدائرة ‪r =28‬‬ ‫تحديد املعالجة (العمليات املطلوبة للحصول على ‪: (output‬‬ ‫قانون مساحة الدائرة‪Area = 3.14 * r * r :‬‬ ‫ً‬ ‫ثانيا‪ :‬التصميم (تصميم الحل‪ :‬الخوارزمية)‬ ‫‪start‬‬ ‫‪let r =28‬‬ ‫‪area = 3.14 * r * r‬‬ ‫‪print area‬‬ ‫‪stop‬‬ ‫املخطط االنسيابي ‪:flowchart‬‬ ‫‪start‬‬

‫‪r = 28‬‬ ‫‪area=3.14*r*r‬‬ ‫‪Print area‬‬

‫‪stop‬‬

‫‪7‬‬

‫‪1.‬‬ ‫‪2.‬‬ ‫‪3.‬‬ ‫‪4.‬‬ ‫‪5.‬‬


‫اساسيات البرمجة ‪09/11/2017 :GS101‬‬

‫د‪ .‬مبروكه معيوف‬

‫الفصل الدراس ي‪ :‬خريف ‪7102‬‬

‫**اعد حل السؤال السابق إليجاد مساحة اي دائرة‪.‬‬ ‫السؤال الثاني‪ :‬اكتب خوارزمية إليجاد الرقم االكبر بين ثالثة ارقام‪ .‬ارسم ‪.flowchart‬‬ ‫**الحل‪:‬‬ ‫لكتابة الخوارزمية للسؤال املعطى‪ ،‬نتبع الخطوات التالية‪:‬‬ ‫ً‬ ‫أوال‪ :‬التحليل (تحليل السؤال)‬ ‫تحديد ‪ output‬و هو الرقم االكبر ‪max‬‬ ‫تحديد ‪ input‬و هو ثالثة ارقام مدخلة ‪a, b, c :input‬‬ ‫تحديد املعالجة (العمليات املطلوبة للحصول على ‪: (output‬‬ ‫**يوجد شرط (ان يكون الرقم املخرج اكبر االرقام املدخلة)‬ ‫اذن‪ ،‬البد من التحكم في تعليمات البرنامج بحيث تحدد فقط الرقم االكبر‪:‬‬ ‫نحن بحاجة ل ( أذا كان ‪) if ...............‬‬ ‫ً‬ ‫ثانيا‪ :‬التصميم (تصميم الحل‪ :‬الخوارزمية)‬ ‫‪1. start‬‬ ‫‪2. read a, b, c‬‬ ‫)‪3. if( a > b‬‬ ‫; ‪max = a‬‬ ‫‪else‬‬ ‫;‪max = b‬‬ ‫)‪4. if (max < c‬‬ ‫; ‪max = c‬‬ ‫‪5. print max‬‬ ‫‪6. stop‬‬

‫‪8‬‬


‫اساسيات البرمجة ‪09/11/2017 :GS101‬‬

‫د‪ .‬مبروكه معيوف‬

‫الفصل الدراس ي‪ :‬خريف ‪7102‬‬

‫املخطط االنسيابي ‪:flowchart‬‬

‫السؤال الثالث‪ :‬اكتب خوارزمية إليجاد حل املعادلة التالية‪:‬‬

‫**الحل‪:‬‬ ‫لكتابة الخوارزمية للسؤال املعطى‪ ،‬نتبع الخطوات التالية‪:‬‬ ‫ً‬ ‫أوال‪ :‬التحليل (تحليل السؤال)‬ ‫ً‬ ‫تحديد ‪ output‬و هو قيمة املعادلة ‪ F‬بناءا على قيمة ‪ X‬املدخلة‬ ‫تحديد ‪ input‬و هو الرقم ‪X‬‬ ‫تحديد املعالجة (العمليات املطلوبة للحصول على ‪: (output‬‬ ‫**يوجد شرط‪ :‬اذا كان ( ‪ ) if‬الرقم ‪ X‬اصغر من الصفر اطبع ناتج املعادلة ‪-X‬‬ ‫و إال (‪( )else‬العكس)‪ :‬الرقم ‪ X‬اكبر من أو يساوي الصفر ‪ ،‬اطبع ناتج املعادلة ‪X‬‬

‫‪9‬‬


‫اساسيات البرمجة ‪09/11/2017 :GS101‬‬

‫د‪ .‬مبروكه معيوف‬

‫الفصل الدراس ي‪ :‬خريف ‪7102‬‬

‫اذن‪ ،‬البد من التحكم في تعليمات البرنامج بحيث يتم تحديد اي معادلة نطبع ناتجها‪:‬‬ ‫نحن بحاجة ل (‪) if……else‬‬ ‫ً‬ ‫ثانيا‪ :‬التصميم (تصميم الحل‪ :‬الخوارزمية)‬ ‫‪1. start‬‬ ‫‪2. read X‬‬ ‫) ‪3. if ( X < 0‬‬ ‫; ) ‪print - ( X‬‬ ‫‪else‬‬ ‫‪print X‬‬ ‫‪4. stop‬‬ ‫املخطط االنسيابي ‪:flowchart‬‬

‫***اعد حل السؤال السابق للمعادلة التالية‪:‬‬

‫‪11‬‬


‫اساسيات البرمجة ‪09/11/2017 :GS101‬‬

‫د‪ .‬مبروكه معيوف‬

‫الفصل الدراس ي‪ :‬خريف ‪7102‬‬

‫السؤال الرابع‪ :‬اكتب خوارزمية لطباعة مجموع االرقام من ‪ 0‬الى ‪01‬‬ ‫**الحل‪ :‬لكتابة الخوارزمية للسؤال املعطى‪ ،‬نتبع الخطوات التالية‪:‬‬ ‫ً‬ ‫أوال‪ :‬التحليل (تحليل السؤال)‬ ‫تحديد ‪ output‬و هو مجموع االرقام من ‪ 0‬الى ‪ 01‬و نضع الناتج في ‪sum‬‬ ‫تحديد ‪ input‬و هو االرقام من ‪ 0‬الى ‪01‬‬ ‫تحديد املعالجة (العمليات املطلوبة للحصول على ‪: (output‬‬ ‫**يوجد عملية جمع (متكررة)‪:‬‬ ‫‪sum = 1+2+3+4+5+6+7+8+9+10‬‬ ‫يمكن االستعانة بالحلقة للحصول على الحل االمثل‪for :‬‬ ‫ً‬ ‫ثانيا‪ :‬التصميم (تصميم الحل‪ :‬الخوارزمية)‬ ‫‪1. start‬‬ ‫‪2. let sum = 0‬‬ ‫)‪3. for ( i = 1 to 10‬‬ ‫; ‪sum = sum + i‬‬ ‫‪4. print sum‬‬ ‫‪5. stop‬‬ ‫‪:flowchart‬‬

‫‪11‬‬


‫اساسيات البرمجة ‪09/11/2017 :GS101‬‬

‫د‪ .‬مبروكه معيوف‬

‫الفصل الدراس ي‪ :‬خريف ‪7102‬‬

‫** اعد كتابة السؤال السابق لطباعة االعداد الفردية و مجموعها مرة‪ ،‬و اخرى لطباعة االعداد‬ ‫الزوجية و مجموعها‪.‬‬ ‫** اعد كتابة السؤال السابق إليجاد االعداد الفردية و الزوجية فيما بين ‪ 0‬و ‪.011‬‬ ‫السؤال الخامس‪ :‬اكتب خوارزمية ملعرفة عدد الرموز املدخلة من لوحة املفاتيح للسطر الواحد‪.‬‬ ‫**الحل‪:‬‬ ‫لكتابة الخوارزمية للسؤال املعطى‪ ،‬نتبع الخطوات التالية‪:‬‬ ‫ً‬ ‫أوال‪ :‬التحليل (تحليل السؤال)‬ ‫تحديد ‪ output‬و هو عدد الرموز املدخلة من لوحة املفاتيح ‪count‬‬ ‫تحديد ‪ input‬و هو الرمز املدخل ‪ch‬‬ ‫تحديد املعالجة (العمليات املطلوبة للحصول على ‪: (output‬‬ ‫حساب عدد الرموز املدخلة‪ ،‬كلما ادخلنا رمز من لوحة املفاتيح‪ ،‬زاد العدد (نحتاج عداد ‪(count‬‬ ‫‪count = count + 1‬‬ ‫لكن لدينا شرط (ينتهي االدخال عندما ينتهي السطر '‪)enter: '\n‬‬ ‫و لدينا حلقة تكرار !!! الحظ ان عدد مرات التكرار للحلقة غير معروف‪...‬ال يمكننا استخدام ‪for‬‬ ‫في هذه الحالة‪ ،‬نستخدم التعليمة ‪ while‬التي تتطلب فعل ما يلي‪:‬‬ ‫‪ .0‬تحديد القيمة االبتدائية لها ‪ch=null‬‬ ‫‪ .7‬تحديد الشرط لها )'‪while (ch <> '\n‬‬ ‫‪ .3‬تغيير القيمة االبتدائية في محاولة للخروج من الحلقة ‪read ch‬‬ ‫ً‬ ‫ثانيا‪ :‬التصميم (تصميم الحل‪ :‬الخوارزمية)‬ ‫‪1. start‬‬ ‫‪2. let ch = null‬‬ ‫‪3. let count = 0‬‬ ‫‪4. read ch‬‬ ‫)'‪5. while (ch <> '\n‬‬ ‫; ‪count = count + 1 ; read ch‬‬ ‫‪6. print count‬‬ ‫‪7. stop‬‬

‫‪12‬‬


‫اساسيات البرمجة ‪09/11/2017 :GS101‬‬

‫د‪ .‬مبروكه معيوف‬

‫املخطط االنسيابي ‪:flowchart‬‬

‫** هل يمكن ان تعادل حلقة ‪ for‬حلقة ‪ while‬؟ وضح ذلك؟‬

‫‪13‬‬

‫الفصل الدراس ي‪ :‬خريف ‪7102‬‬


‫اساسيات البرمجة ‪09/11/2017 :GS101‬‬

‫د‪ .‬مبروكه معيوف‬

‫الفصل الدراس ي‪ :‬خريف ‪7102‬‬

‫‪ ‬العمليات الحسابية ‪arithmetic operations‬‬ ‫يتميز الحاسوب بقدرته على أداء العمليات بمختلف انواعها‪ ،‬من اشهر هذه العمليات ما يلي‪:‬‬ ‫‪ o‬العمليات املنطقية ‪logical operations‬‬ ‫العمليات املنطقية الحاسوب تتضمن العالمات املنطقية التالية‪:‬‬ ‫ُ‬ ‫‪ AND‬و تمثل في لغة ‪ C++‬ب&&‬ ‫ُ‬ ‫‪ OR‬و تمثل ب||‬ ‫ُ‬ ‫‪ NOT‬و تمثل ب!‬ ‫و يمكن مزج أكثر من عالمة منطقية مثل‪a && b || c :‬‬ ‫و يكون ناتج العملية املنطقية إما ‪ true‬أو ‪.false‬‬ ‫‪ o‬العمليات الحسابية ‪arithmetic operations‬‬ ‫ُ‬ ‫تمثل العمليات الحسابية ‪ ،/ ،* ،- ،+‬كما في الرياضيات‪ .‬و ترتب هذه العمليات حسب‬ ‫ً‬ ‫االسبقية‪ .‬فالضرب و القسمة أوال ثم الجمع و الطرح إال اذا كانت هذه العمليات‬ ‫تحتوي على االقواس‪ ،‬في هذه الحالة‪ ،‬يتم فك االقواس قبل كل ش يء‪ ،‬ثم ُتجرى‬ ‫العمليات حسب االسبقية‪.‬‬ ‫مثال‪ :‬وضح ترتيب العمليات الحسابية‪ ،‬ثم اكتب خوارزمية لطباعة ناتج العملية‬ ‫الحسابية التالية‪:‬‬ ‫)‪x+3*(2x-y/10+z‬‬ ‫‪ o‬العمليات العالئقية‬ ‫تتضمن العمليات العالئقية العالمات التالية‪:‬‬ ‫< ‪>= ، <= ، != ، == ، > ،‬‬ ‫و هي تدخل في تكوين الشرط ‪.condition‬‬

‫‪14‬‬


‫اساسيات البرمجة ‪09/11/2017 :GS101‬‬

‫د‪ .‬مبروكه معيوف‬

‫الفصل الدراس ي‪ :‬خريف ‪7102‬‬

‫‪ ‬استنتاج املهام ‪functions‬‬ ‫يمكن تجزئة الحل الى مجموعة من الحلول الجزئية (املهام الفرعية) التي تنفذ مهمة محددة متى‬ ‫لزم االمر (استدعاء الدالة)‪ ،‬فقد يحتوي الحل للبرنامج الواحد على مجموعة من الحلول الصغيرة‬ ‫التي يتكرر تنفيذها اكثر من مرة (استدعاء ‪ ) call‬و تحت ظروف مختلفة (بيانات متغيرة)‪ .‬في هذه‬ ‫الحالة‪ ،‬يتم وضع التعليمات التي تؤدي مهمة معينة مع بعضها البعض في جزء ما من برنامج الحل‬ ‫و يتم اعطاء اسم لهذا الجزء ليتم فيما بعد استدعاءه عن طريق اسمه (اسم املهمة ‪function‬‬ ‫‪ .)name‬يمكن ان ُيرجع هذا الجزء قيمة (‪ ،)return‬و يمكن ان يستقبل بيانات (‪.)parameter‬‬ ‫‪ ‬مثال‪ :‬اكتب خوارزمية ليجاد مضروب عدد ما‪.‬‬

‫‪15‬‬


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.