اساسيات البرمجة 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
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.
4
اساسيات البرمجة 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تعتبر املخططات مراجع لحل املسائل املشابهة لها.
5