Problem Solving Techniques Lecture 1 (PDF)

Summary

This document is an introductory lecture on problem-solving techniques applicable to programming. It defines problems, outlines problem-solving stages, and explains concepts like algorithms and flowcharts. The lecture mentions the use of Python.

Full Transcript

‫‪6/22/2023‬‬ ‫‪Problem Solving Techniques‬‬ ‫تقنيـــات حلــول المشــاكل‬ ‫المحـــاضرة األولــى‬ ‫ربيع ‪2023‬‬ ‫‪1‬‬ ‫بنهاية الفصل الدراسي يكون الطالب قادرا ً على أن‪:‬‬...

‫‪6/22/2023‬‬ ‫‪Problem Solving Techniques‬‬ ‫تقنيـــات حلــول المشــاكل‬ ‫المحـــاضرة األولــى‬ ‫ربيع ‪2023‬‬ ‫‪1‬‬ ‫بنهاية الفصل الدراسي يكون الطالب قادرا ً على أن‪:‬‬ ‫ُعرف المشكلة ‪Problem Definition‬‬ ‫ي ِّ‬ ‫‪‬‬ ‫يُحدد مراحل حل مشكلة ‪Problem Solving Stages‬‬ ‫‪‬‬ ‫يكتب خطوات حل المشكلة الخوارزمية “‪"Algorithm‬‬ ‫‪‬‬ ‫يرسم خرائط التدفق ‪Flow chart‬‬ ‫‪‬‬ ‫يكتب برنامج متكامل بلغة بايثون ‪Python‬‬ ‫‪‬‬ ‫يختبر البرنامج ويصحح اخطائه‪.‬‬ ‫‪‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪6/22/2023‬‬ ‫يمكن تعريف المشكلة‪ /‬المشاكل )‪Problem(s‬‬ ‫كبيرا كان أم صغي ًرا وعلى كافة‬ ‫‪ ‬لغويا‪ :‬هي كلمة تستعمل للتعبير عن خلل ما ً‬ ‫مستويات األهمية‪.‬‬ ‫‪ ‬تقنيا‪ :‬هي حالة عدم القدرة على بلوغ هدف ‪ Object‬ما‪.‬‬ ‫‪ ‬رياضيا‪ :‬الهدف ‪ +‬المعوق = المشكلة‬ ‫‪Object + Obstacle = Problem‬‬ ‫الهدف ‪ :Object‬هو الهدف الذي نرغب في تحقيقه أو الناتج المطلوب‬ ‫الوصول إليه‬ ‫إليه‪.‬‬ ‫المعوق ‪ :Obstacle‬هو ما يمنعنا من تحقيق الهدف أو يعيق الوصول‬ ‫‪3‬‬ ‫علم حل المشاكل ( ‪)Problem Solving‬‬ ‫‪ ‬هو علم كيفية التغلب على العوائق لتحقيق‬ ‫األهداف‪ ،‬وهو علم تعلــــم التفكير بشكل منطقي‬ ‫‪ Logical‬تسلسلي ‪.Sequential‬أي الوصول إلى‬ ‫هدف أو ناتج محدد مطلوب من خالل خطوات‬ ‫وأنشطة متتابعة ومعطيات محددة‪.‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫‪6/22/2023‬‬ ‫علم حل المشاكل ( ‪)Problem Solving‬‬ ‫‪ ‬كل مشكلة فريدة من نوعها من ناحية (المعلومات الخاصة بها‬ ‫‪ Information‬وعمليات معالجتها ‪ )Solving Process‬إال أنها‬ ‫جميعًا يتبع فيها ذات مراحل الحل ‪ Solution Stages‬وفق نسق‬ ‫ثابت‪.‬‬ ‫مالحظة‪ :‬من المهم جدًا تتنفيذ خطوات الحل بشكل منطقي‬ ‫متسلسل مع االنتباه إلى إن الخطأ في تنفيذ أي خطوة قبل‬ ‫أخرى قد يتسبب في عدم الحصول على الحل الصحيح‬ ‫وبالتالي نتائج غير مرغوب فيها‪.‬‬ ‫‪5‬‬ ‫مراحل حل المشكلة ( ‪) problem solving stage‬‬ ‫عرف المشكلة وتحليليها ‪Problem Definition & Analysis‬‬ ‫أوال ‪:‬يُ ِّ‬ ‫تحليل عناصر المشكلة ‪:Problem Analysis‬‬ ‫أي تحديد المخرجات المطلوبة والمدخالت المتوفرة‪ ،‬وعمليات المعالجة الحسابية‬ ‫أو المنطقية‪.‬وفي هذه المرحلة يتم تحديد أبعاد المسألة والهدف المطلوب‬ ‫الوصول إليه عن طريق االتي‪:‬‬ ‫‪ ‬تعريف المخرجات وشكلها بدقة ( النتائج المراد تحقيقها من المسألة)‪.‬‬ ‫‪ ‬تحديد المدخالت بنا ًء على المخرجات المطلوبة‪.‬‬ ‫‪ ‬تحديد طرق الحل المختلفة وتقييمها الختيار أفضلها من حيث السهولة وسرعة‬ ‫التنفيذ والمساحة التي تحتاجها من الذاكرة‪.‬‬ ‫‪6‬‬ ‫‪3‬‬ ‫‪6/22/2023‬‬ ‫مراحل حل المشكلة ( ‪) problem solving stage‬‬ ‫ثانيًا ‪:‬تصميم منطق الحل ‪ :Solution design‬في هذه الخطوة يتم‬ ‫وصف الحل في صيغة قابلة للتنفيذ ويتمثل في‪:‬‬ ‫‪ -‬الخوارزميات (‪.)Algorithms‬‬ ‫‪ -‬المخططات االنسيابية )‪.)flowcharts‬‬ ‫‪ -‬جداول القرار (‪.)Decision tables‬‬ ‫بعد تعريف وتحليل المشكلة من مخرجات ومدخالت يتم إعداد خطة الحل التي‬ ‫يجب أن تكون على شكل سلسلة من الخطوات المتتالية ويطلق على هذه‬ ‫الخطوات (الخوارزمية ‪ )Algorithm‬نسبة لعالم الرياضيات ومؤسس علم الجبر‬ ‫محمد بن موسى الخوارزمي‪ ،‬وتمثيل خطوات الحل من خالل خرائط التدفق‬ ‫‪.)Flowchart) 7‬‬ ‫مراحل حل المشكلة ( ‪) problem solving stage‬‬ ‫ثالثًا ‪:‬تصميم البرنامج على الكمبيوتر ‪Program Design‬‬ ‫بعد االنتهاء من عمل خريطة التدفق )‪ )Flowchart‬ولحل المشكلة‬ ‫باستخدام الحاسوب نقوم بترجمتها إلى إحدى لغات البرمجة‪.‬‬ ‫رابعا ً‪ :‬اختبار صحة البرنامج وتصحيح أخطائه ‪Program Testing‬‬ ‫أثناء كتابة البرنامج نقع في بعض األخطاء بدون قصد‪.‬قد تكون‬ ‫لغوية نتيجة لمخالفة قواعد لغة البرمجة ويمكن اكتشافها وتصحيحها‬ ‫بسهولة‪ ،‬أو أخطاء أثناء الكتابة البرنامج بحيث نكتب عالمة الطرح‬ ‫بدل الجمع مثال مع عدم مخالفة القواعد‪ ،‬وبالتالي ال نستطيع اكتشاف‬ ‫هذه األخطاء إال عندما إدخال بيانات نعرف نتائجها مسبقا‪ ،‬ولكي‬ ‫نتمكن من اكتشاف األخطاء وتصحيحها البد من معرفة أنواع‬ ‫األخطاء‬ ‫‪8‬‬ ‫‪4‬‬ ‫‪6/22/2023‬‬ ‫يمكن تصنيف األخطاء إلى‪ 3‬أنواع‪:‬‬ ‫ خطأ لغوي (‪ :)Syntax Error‬يحدث نتيجة لمخالفة قواعد لغة‬ ‫البرمجة وعادة ما يتم اكتشافه من قبل البرنامج المترجم‪.‬‬ ‫ خطأ منطقي (‪ :)Semantic Error‬وهو من األخطاء التي ال‬ ‫يكتشفه البرنامج المترجم‪ ،‬وعادة ما يتم اكتشافه من قبل المبرمج‬ ‫بتجربة البرنامج ببعض البيانات التي يتوقع نتائجها‪.‬بحيث يكون‬ ‫البرنامج صحيح لغويًا ويُنفذ ولكن يُعطي نتائج غيرالمطلوبة‪.‬‬ ‫ خطأ زمن التنفيذ (‪ :)Runtime Error‬ويسمى أحيانا‬ ‫بـ‪.Exceptions‬وهذا النوع من األخطاء يحدث نتيجة حدوث خطأ‬ ‫أثناء تنفيذ جمل البرنامج مثال ‪ :‬القسمة على صفر والفيض‬ ‫(‪)OverFlow, Under Flow‬‬ ‫‪9‬‬ ‫مراحل حل المشكلة ( ‪) problem solving stage‬‬ ‫سا ‪:‬توثيق البرنامج ‪Program Documentation‬‬ ‫خام ً‬ ‫يتم كتابة كل الخطوات التي اتخذت لحل المشكلة من مدخالت‪،‬‬ ‫ومخرجات‪ ،‬وخطة حل‪ ،‬وخريطة التدفق المستخدمة‪ ،‬واللغة التي‬ ‫ُكتب بها البرنامج‪ ،‬أوامر البرنامج وتاريخ آخر تعديل للبرنامج‪،‬‬ ‫ومن شارك في عمل البرنامج؛ لالحتفاظ به موثق للرجوع إليه في‬ ‫أي وقت بهدف التصحيح أو التطوير‪.‬‬ ‫وهذا يفيد في حال اشتراك أكثر من شخص في كتابة البرنامج أو‬ ‫عند التعديل في البرنامج بواسطة أشخاص آخرين‪.‬‬ ‫‪10‬‬ ‫‪5‬‬ ‫‪6/22/2023‬‬ ‫خطوات حل أي مشكلة بواسطة الحاسوب‬ ‫شرح سلفا ً نستنتج ان خطوات حل أي مشكلة بواسطة‬ ‫مما ُ‬ ‫الكمبيوتر هي‪:‬‬ ‫وتحليلها ‪Problem Definitions and‬‬ ‫‪ ‬تعريف المشكلة او المسألة‬ ‫‪Analysis‬‬ ‫‪ ‬وضع خوارزمية الحل (‪ )Algorithm‬والمخطط االنسيابي‬ ‫(‪.)Flowchart‬‬ ‫‪)Writing the program‬‬‫‪ ‬كتابة البرنامج بإحدى لغات البرمجة‬ ‫وترجمة البرنامج الي لغة اآللة (‪)Compilation‬‬ ‫(‪)Execution‬‬ ‫‪ ‬تنفيذ البرنامج‬ ‫‪11‬‬ ‫استخدام الخوارزميات في حل المشكالت‪:‬‬ ‫الخوارزمية‪ :‬هي مجموعة من الخطوات التي نصل إلى الحل المطلوب‬ ‫عند تنفيذها أي وصف منطق الحل في خطوات‪:‬‬ ‫متكاملة‪ ،‬وصحيحة‬ ‫مرتبة‪،‬‬ ‫واضحة‪،‬‬ ‫منفصلة‪،‬‬ ‫باستخدام لغة تعبير مناسبة لتحقيق الخصائص السابقة‪ ،‬بحيث تمثل حال‬ ‫عاما يحقق الهدف ويعطي النتائج المطلوبة‪.‬‬ ‫لكتابة الخوارزمية يجب‪:‬‬ ‫‪ (1‬تحديد المشكلة‪.‬‬ ‫‪ (2‬تحديد المخرجات‪.‬‬ ‫‪ (3‬تحديد المدخالت‪.‬‬ ‫‪ (4‬اهمال البيانات غير المفيدة في حل المشكلة‪.‬‬ ‫‪ (5‬تحديد خطوات الحل (العمليات)‪.‬‬ ‫‪ (6‬كتابة الحل ‪.Algorithm‬‬ ‫‪12‬‬ ‫‪6‬‬ ‫‪6/22/2023‬‬ ‫خواص الخوارزميات ‪: Algorithms‬‬ ‫لها بداية ونهاية‪.‬‬ ‫‪‬‬ ‫‪ ‬تكتب الخوارزمية بصفة عامة بحيث تكون صالحة لجميع االحتماالت‬ ‫التي قد تطرأ في معطيات المسألة‪.‬‬ ‫‪ ‬التعليمات الواردة بالخوارزمية يجب ان تكون محددة المعني‪ ،‬وغير‬ ‫قابلة لتعدد التأويل‪.‬‬ ‫‪ ‬أن تتوقف العمليات بعد عدد محدد من الخطوات‪.‬‬ ‫‪ ‬أن تؤدي العمليات إلى الحل الصحيح للمسألة ‪.‬‬ ‫‪13‬‬ ‫الشفرة ‪ Pseudo Code‬المستخدمة في كتابة الخوارزميات‪:‬‬ ‫تعليمة البداية (ابداء ‪ Start‬او ‪ )Begin‬والنهاية (توقف ‪ Stop‬أو ‪)End‬‬ ‫‪(1‬‬ ‫تعليمة االدخال (إقراء ‪ )Read‬او (أدخل ‪.)Input‬‬ ‫‪(2‬‬ ‫تعليمة االخراج (اكتب ‪ )Write‬او (اطبع ‪.)Print‬‬ ‫‪(3‬‬ ‫تعليمة حسابية مثل (أضف ‪ )i=i+1( add‬او اطرح ‪ Sub‬او‪.)...‬‬ ‫‪(4‬‬ ‫تعليمة شرطية‪ ،‬وهي العليمة التي يشترط في تنفيذها تحقق شرط منطقي‬ ‫‪(5‬‬ ‫مثل‪ :‬اذا كان س0 print “positive‬‬ ‫حلقات التكرار ‪Loops‬‬ ‫‪(6‬‬ ‫‪14‬‬ ‫‪7‬‬ ‫‪6/22/2023‬‬ ‫تذكر دامئا‬ ‫مخرجات‬ ‫مدخالت‬ ‫‪Output‬‬ ‫التنفيذ‬ ‫‪Input‬‬ ‫‪15‬‬ ‫التمرين رقم ‪ :1‬طريقة غرس شتلة الزيتون‬ ‫الوصف ‪ :‬شتول الزيتون تأتي في أشكــال متنوعة‪ :‬شتلة بذور‪ ،‬شتلة عقلة‪،‬‬ ‫شتلة ”غصن“‪ ،‬و بنا ًءا عليه يتم غرس هذه األنواع بطرق مختلفة يراعى‬ ‫فيها األسس العلمية لعملية الغرس‪.‬‬ ‫المشكلة ‪ :‬كيف يمكن غرس شتلة زيتون بصورة صحيحة ‪.‬؟؟؟‬ ‫الهدف ‪ :‬تحديد كيفية غرس شتلة الزيتون‪.‬‬ ‫النطاق ‪ :‬هذه المسألة تتعلق فقط بشتول البذرة‪.‬‬ ‫القيود ‪ :‬الغرس حسب القواعد العلمية المتعارف عليها‪.‬‬ ‫المدخالت ‪ - :‬شتلة الزيتون ‪ -‬موقع الغرس‪ -‬أدوات الغرس‬ ‫المعالجة ‪ :‬الغرس حسب الخطوات العلمية المتبعة في غرس شتول الزيتون‬ ‫المخرجات ‪ :‬شتلة زيتون مغروسة في الموقع الطبيعي ‪.‬‬ ‫‪16‬‬ ‫‪8‬‬ ‫‪6/22/2023‬‬ ‫خوارزمية غرس شتلة الزيتون ‪.‬‬ ‫‪ -‬إبدا ‪.‬‬ ‫‪ -‬تحديد الموقع المناسب للغرس‪.‬‬ ‫‪ -‬تجهيز الحفرة‪.‬‬ ‫‪ -‬نزع الشتلة من الكيس‪.‬‬ ‫‪ -‬وضع الشتلة في مركز الحفرة‪.‬‬ ‫‪ -‬تقدير عمق الحفرة مبدئيا‪.‬‬ ‫‪ -‬ردم التراب حول جذر الشتلة‪.‬‬ ‫‪ -‬حفر الحفرة‪.‬‬ ‫‪ -‬ضغط التراب لتثبيت الشتلة‪.‬‬ ‫‪ -‬قياس عمق الحفرة باستخدام كيس الشتلة ‪.‬‬ ‫‪ -‬تجهيز حوض حول جذع الشتلة‪.‬‬ ‫‪ -‬تسوية الحفرة ‪.‬‬ ‫‪ -‬ري الشتلة بالماء ‪.‬‬ ‫‪ -‬النهاية ‪.‬‬ ‫‪17‬‬ ‫استخدام المخطط االنسيابي ‪ Flow Chart‬في حل المشكالت‪:‬‬ ‫المخطط االنسيبابي‪ :‬هو عبارة عن تمثيل تخطيطي باشكال هندسية‬ ‫لغرض توضيح الخوارزمية‪ ،‬يوضح بسهولة ترتيب خطوات حل‬ ‫المشكلة‪ ،‬بدءا من إدخال البيانات‪ ،‬ثم تحديد العمليات الحسابية‬ ‫والمنطقية‪ ،‬وصوال للمخرجات التي تمثل حل المشكلة‪.‬‬ ‫‪ ‬اي ان المخطط االنسيابي هو عبارة عن مجموعة من االشكال‬ ‫الهندسية‪ ،‬كل شكل يذل على تعليمة معينة‪ ،‬تتصل االشكال بأسهم تبين‬ ‫اتجاه التنفيذ‪ ،‬وتكتب التعليمة داخل الشكل المناسب لها‪.‬‬ ‫‪9‬‬ ‫‪6/22/2023‬‬ ‫الرموز واألشكال الهندسية المستخدمة في رسم مخططات االنسياب‬ ‫االعتبارات الواجب مراعاتها عند رسم المخطط االنسيابي‪:‬‬ ‫‪ ‬بساطة ووضوح المخطط لسهولة تتبع خطواته‪.‬‬ ‫‪ ‬االتجاه االفتراضي ألشكال المخطط من اليسار إلى اليمين ومن أعلى إلى‬ ‫أسفل‪.‬‬ ‫‪ ‬رمز العمليات يخرج منه خط اتجاه واحد فقط‪.‬‬ ‫‪ ‬شكل اتخاذ القرار يدخل له خط اتجاه واحد ويخرج منه خطان (نعم‪/‬ال)‪.‬‬ ‫‪ ‬الرمز الطرفي للبداية له خط اتجاه واحد خارج والعكس في الرمز الطرفي‬ ‫للنهاية‪.‬‬ ‫‪ ‬يفضل استخدام رمز اضافة تعليق مع أشكال الخريطة التي تحتاج توضيح‪.‬‬ ‫‪ ‬يستخدم رمز الربط أو االتصال إذا كانت خريطة التدفق كبيرة وتحتاج أكثر‬ ‫من صفحة‪.‬‬ ‫‪ ‬بعد رسم خريطة التدفق يفضل تتبع جميع مساراتها واختبارها بقيم افتراضية‬ ‫معروف نتائجها‪.‬‬ ‫‪20‬‬ ‫‪10‬‬ ‫‪6/22/2023‬‬ ‫مميزات استخدام المخططات االنسيابية‪:‬‬ ‫‪ ‬تمثل ضرورة قبل كتابة البرامج الكبيرة‪.‬‬ ‫‪ ‬تمثل أحد أشكال توثيق البرنامج‪.‬‬ ‫‪ ‬تضع تصورا كامال لحل المشكلة وتساعد في تتبع مسارها‪.‬‬ ‫‪ ‬تساعد في عدم تكرار أجزاء معينه في الرسم أو البرمجة‪.‬‬ ‫‪ ‬األشكال المستخدمة في رسم خرائط التدفق لها مدلول واحد‬ ‫لدى جميع المتعاملين معها‪.‬‬ ‫‪ ‬تساعد في تصحيح األخطاء بسهولة‪.‬‬ ‫‪ ‬تساعد في تطوير وصيانة البرامج‪.‬‬ ‫‪21‬‬ ‫عيوب استخدام خرائط التدفق‪:‬‬ ‫‪ ‬قد تبدو الخريطة معقدة للمشكالت الكبيرة‪.‬‬ ‫‪ ‬بعض التعديالت في البرنامج قد يؤدي إلعادة رسم الخريطة‪.‬‬ ‫‪ ‬أحيانا تشكل نسخ خريطة التدفق صعوبة كبيرة‪.‬‬ ‫‪ ‬الوقوع في بعض التفاصيل التي تبعدنا عن الحل‪.‬‬ ‫‪22‬‬ ‫‪11‬‬ ‫‪6/22/2023‬‬ ‫صياغة حل المسائل‬ ‫المسألة‪ : 1‬قراءة عددين وايجاد حاصل جمعهما؟‬ ‫أوالً ‪ :‬تحليل عناصر المسألة ‪ :‬لتحليل عناصر المسألة نقوم بما يلي‪:‬‬ ‫المطلوب‬ ‫المعطيات‬ ‫المعطيات‪ :‬العدد االول (س) ‪ ،‬العدد الثاني (ص)‬ ‫المطلوب ‪ :‬حساب المجموع (م) ‪،‬‬ ‫المعالجة ‪ :‬م = س ‪ +‬ص‬ ‫‪23‬‬ ‫الخواررمية‬ ‫ثانيا ً ‪ :‬تصميم منطق الحل ‪:Solution design‬‬ ‫كتابة الخوارزمية بلغة تعبير مناسبة‬ ‫لك الخيار أن تكتب الخوارزمية‬ ‫باللغة العربية أو االنجليزية‬ ‫البداية‬ ‫‪(1‬‬ ‫‪1) Start‬‬ ‫اقرا العدد االول (س)‬ ‫‪(2‬‬ ‫)‪2) Read first (F), second (S‬‬ ‫اقرا العدد الثاني (ص)‬ ‫‪(3‬‬ ‫‪3) Sum (S)=F + S‬‬ ‫احسب م= س ‪ +‬ص‬ ‫‪(4‬‬ ‫‪4) print Sum‬‬ ‫اطبع (م)‬ ‫‪(5‬‬ ‫‪5) Stop.‬‬ ‫النهاية‬ ‫‪(6‬‬ ‫‪24‬‬ ‫‪12‬‬ ‫‪6/22/2023‬‬ ‫م‬‫ال‬ ‫خطط الانسيابي‬ ‫ثانيا ً‪ :‬تصميم منطق الحل ‪:Solution design‬‬ ‫رسم المخطط االنسيابي للخوارزمية‬ ‫‪Start‬‬ ‫‪Read X, Y‬‬ ‫‪Sum=X+Y‬‬ ‫‪Print sum‬‬ ‫‪End‬‬ ‫‪25‬‬ ‫ثالثا ً‪ :‬تصميم البرنامج على الكمبيوتر ‪Program Design‬‬ ‫أي كتابة البرنامج بإحدى لغات البرمجة‪ :‬البرنامج بلغة بايثون‬ ‫‪26‬‬ ‫‪13‬‬ ‫‪6/22/2023‬‬ ‫رابعا ً‪ :‬اختبار صحة البرنامج وتصحيح أخطائه ‪Program Testing‬‬ ‫اختبار البرنامج وتتبعه‪ :‬أي تتبع البرنامج باعطائه قيم ومقارنة الناتج‬ ‫بما هو متوقع مثال‪:‬‬ ‫‪ ،،‬القيمة الثانية‪30 :‬‬ ‫‪ ‬القيمة األولى‪20 :‬‬ ‫الناتج البد ان يكون ‪ 50‬وإال فهناك خطأ‬ ‫البرنامج‬ ‫ناتج تنفيذ البرنامج‬ ‫نهاية المحاضرة االولى‬ ‫‪27‬‬ ‫صياغة حل المسائل‬ ‫المسألة‪ :2‬حساب مساحة دائرة بمعلومية نصف قطرها‬ ‫أوالً ‪ :‬تحليل عناصر المسألة ‪ :‬لتحليل عناصر المسألة نقوم بما يلي‪:‬‬ ‫المطلوب‬ ‫المعطيات‬ ‫‪r‬‬ ‫أو‬ ‫المعطيات‪ :‬نصف قطر الدائرة (نق)‬ ‫‪Area‬‬ ‫أو‬ ‫المطلوب ‪ :‬حساب مساحة الدائرة (م)‬ ‫𝟐‬ ‫المعالجة ‪ :‬مساحة الدائرة م = ط × نق‬ ‫𝟐𝒓𝝅 = 𝒂𝒆𝒓𝑨‬ ‫‪28‬‬ ‫‪14‬‬ ‫‪6/22/2023‬‬ ‫الخواررمية‬ ‫ثانيا ً ‪ :‬تصميم منطق الحل ‪:Solution design‬‬ ‫كتابة الخوارزمية بلغة تعبير مناسبة‬ ‫لك الخيار أن تكتب الخوارزمية‬ ‫باللغة العربية أو االنجليزية‬ ‫‪1) Start‬‬ ‫البداية‬ ‫‪(1‬‬ ‫‪2) Read r‬‬ ‫اقرا نصف القطر (نق)‬ ‫‪(2‬‬ ‫‪3) let Pi=3.14‬‬ ‫دع ط = ‪3.14‬‬ ‫‪(3‬‬ ‫نق 𝟐‬ ‫𝟐𝒓 ∗ 𝒊𝑷 = 𝒂𝒆𝒓𝑨 )‪4‬‬ ‫احسب م= ط ×‬ ‫‪(4‬‬ ‫𝒂𝒆𝒓𝑨 ‪5) Print‬‬ ‫اطبع (م)‬ ‫‪(5‬‬ ‫‪6) Stop.‬‬ ‫النهاية‬ ‫‪(6‬‬ ‫‪29‬‬ ‫م‬‫ال‬ ‫ن‬ ‫طط الا سيابي‬‫خ‬ ‫ثانيا ً‪ :‬تصميم منطق الحل ‪:Solution design‬‬ ‫رسم المخطط االنسيابي للخوارزمية‬ ‫‪Start‬‬ ‫‪Read r‬‬ ‫‪Pi=3.14‬‬ ‫𝟐𝒓 ∗ 𝒊𝑷 = 𝒂𝒆𝒓𝑨‬ ‫𝒂𝒆𝒓𝑨 ‪Print‬‬ ‫‪End‬‬ ‫‪30‬‬ ‫‪15‬‬ ‫‪6/22/2023‬‬ ‫ثالثا ً‪ :‬تصميم البرنامج على الكمبيوتر ‪Program Design‬‬ ‫أي كتابة البرنامج بإحدى لغات البرمجة‪ :‬البرنامج بلغة بايثون‬ ‫‪31‬‬ ‫رابعا ً‪ :‬اختبار صحة البرنامج وتصحيح أخطائه ‪Program Testing‬‬ ‫اختبار البرنامج وتتبعه‪ :‬أي تتبع البرنامج باعطائه قيم ومقارنة الناتج‬ ‫بما هو متوقع مثال‪:‬‬ ‫‪ ‬اعطي قيمة لنصف القطر‬ ‫البرنامج‬ ‫ناتج تنفيذ البرنامج‬ ‫نهاية المحاضرة االولى‬ ‫‪32‬‬ ‫‪16‬‬ ‫‪Problem Solving Techniques‬‬ ‫المحاضرة الثانية‬ ‫مقدمة مختصرة حول البرمجة بلغة بايثون‬ ‫‪1‬‬ ‫‪Problem Solving Techniques‬‬ ‫البرنامج‪:‬‬ ‫هو مجموعة من التعليمات ‪ instructions‬أو األوامر ‪ commands‬أو الجمل‬ ‫‪ statements‬المكتوبة بإحدى لغات البرمجة‪ ،‬ويتم تنفيذها من قبل الحاسوب لتنفيذ‬ ‫مهمة ما‪.‬كحل حل معادلة رياضية‪ ،‬أو معالجة بيانات‪ ،‬أو ‪...‬وغيره‪.‬‬ ‫لغة البرمجة‪:‬‬ ‫تتكون أي لغة من عنصرين أساسيين هما الكلمات ‪ words‬والقواعد ‪،grammars‬‬ ‫هذه القواعد تُستخدم لترتيب وتنسيق الكلمات مع بعضها البعض في صورة منطقية‬ ‫لتُعطي معنى‪ ،‬وهذا ينطبق على لغات الحاسب التي بدورها تتكون من مجموعة من‬ ‫التعلميات واألوامر والتي هي مزيج من الكلمات المحجوزة ‪reserved words‬‬ ‫المرتبة بصورة منطقية وفقـًا لمجموعة من القواعد الخاصة بها‪.‬‬ ‫لغات البرمجة‪ :‬هي اللغات ال ُمستخدمة لكتابة التعليمات واالوامر الموجهة للحاسب‬ ‫لتنفيذ عملية ما أو أداء مهمة محددة‪.‬وهناك العديد من لغات البرمجة‪ ،‬حيث تتنوع‬ ‫حسب األسلوب أو النهج البرمجي المتبع فيها‪.‬‬ ‫المبرمج ‪Programmer‬‬ ‫‪2‬‬ ‫‪Problem Solving Techniques‬‬ ‫في اللغات عالية المستوى‬ ‫البرنامج الوسيط‬ ‫‪Source code‬‬ ‫‪Compiling Program Object code‬‬ ‫البرنامج المصدري‪ :‬هو‬ ‫عبارة عن مجموعة من‬ ‫البرنامج الهدف‪ :‬هو‬ ‫األوامر والتعليمات المكتوبة‬ ‫البرنامج الخالي من األخطاء‬ ‫بشكل منطقي و متسلسل‬ ‫ومكتوب بلغة اآللة والقابل‬ ‫بإحدى لغات البرمجة عالية‬ ‫للتنفيذ على الحاسوب‬ ‫المستوى‬ ‫البرنامج‬ ‫الوسيط‬ ‫المترجم‬ ‫المفسر‬ ‫‪compiler‬‬ ‫‪Interpreter‬‬ ‫ال يترجم البرنامج‬ ‫يترجم البرنامج المصدري‬ ‫المصدري دفعة واحدة بل‬ ‫ويحوله الي برنامج هدف‬ ‫يترجمه تعليمة تعليمة‪ ،‬وان‬ ‫دفعة واحدة‪.‬‬ ‫وجد خطأ توقف عنده‬ ‫‪3‬‬ ‫‪Problem Solving Techniques‬‬ ‫مكونات البرنامج‬ ‫جمل االدخال (‪ : )Input‬البيانات التي يتم استقبالها من المستخدم‬ ‫جمل االخراج (‪ : )Output‬عرض النتائج والمعلومات‬ ‫جمل معالجة ‪ :‬رياضية‪ ،‬عالئقية‪ ،‬منطقية‪ ،‬نصية‪.‬‬ ‫جمل شرطية ‪ :‬وهي جمل للتحكم في مسار تنفيذ الجمل بناء على شروط‬ ‫معينة‪.‬‬ ‫جمل التكرار ‪ :‬وتختص بتنفيذ الجمل أكثر من مرة إلى أن يتحقق شرط‬ ‫معين أو التنفيذ أكثر من مرة طالما تحقق شرط معين‪.‬‬ ‫لتبسيط االمر وتنفيذ الخوارزميات على جهاز الحاسوب‪ ،‬تحول إلى برنامج بإحدى‬ ‫لغات البرمجة عالية المستوى‪.‬وفي هذا المقرر تم اختيار لغة بايثون ‪python‬‬ ‫لبساطتها وسهولة تعلمها باإلضافة لكونها‪:‬‬ ‫‪ ‬سهلة االستعمال لبساطة الجمل والتراكيب بها‪.‬‬ ‫‪ ‬تعتمد على التنسيق والمحادة في الجمل الشرطية‪ ،‬الحلقات‪ ،‬والوظائف‪.‬‬ ‫‪ ‬لغة مفسرة (‪ ،)Interpreted‬أي لها القدرة على تجربة جمل لوحدها دون الحاجة‬ ‫لكتابة وتخزين وترجمة برنامج كامل؛ مما يقلل من الجهد والوقت الالزم لتطوير‬ ‫البرنامج‪.‬‬ ‫‪ ‬مفتوحة المصدر )‪ (open source‬مما يسمح للعديد من المهتمين بإبدأ المالحظات‬ ‫واإلسهامات لتطوير وتحسين اللغة‪.‬‬ ‫‪ ‬متوافقة مع عدة أنظمة تشغيل مختلفة مما يجعل نقل وتبادل البرامج بين أنظمة‬ ‫التشغيل المختلفة سهال وال يحتاج إلى تغيير يُذكر‪.‬‬ ‫‪ ‬لها جمل لمعالجة األخطاء اإلستثنائية (‪.)Exception Handling‬‬ ‫‪ ‬تدعم الـ(‪.)Object Oriented Programming‬‬ ‫‪ ‬تدعم االسلوب البنائي (‪( )Structured Approach‬مع عدم وجود ‪ GOTO‬التي‬ ‫تجعل البرنامج صعب التتبع)‪.‬‬ ‫‪www.python.org‬‬ ‫‪4‬‬ ‫‪Problem Solving Techniques‬‬ ‫أساسيات لغة البايثون‪:‬‬ ‫أوال‪ :‬الكلمات احملجوزة‪:‬‬ ‫لغة ‪ Python‬كمعظم لغات البرمجة‪ ،‬لها عدد من الكلمات المحجوزة‪ ،‬والتي ال‬ ‫يُسمح باستخدامها كأسماء معرفات (متغيرات أو دوال)‪.‬هذه الكلمات مخزنة في‬ ‫اللغة ويجب أن ت ُكتب بطريقة صحيحة وبنفس حالة األحرف؛ حتى يُمكن التعرف‬ ‫عليها‪.‬في حال استعمالها كمتغيرات أو كتابتها بأحرف حالتها مغايرة لحالة‬ ‫الحروف المخزنة بها ينتج خطأ لغوي‪.‬والكلمات هي‪:‬‬ ‫‪class‬‬ ‫‪finally‬‬ ‫‪is‬‬ ‫‪return‬‬ ‫‪continue‬‬ ‫‪if‬‬ ‫‪None‬‬ ‫‪True‬‬ ‫‪False‬‬ ‫‪for‬‬ ‫‪lambda‬‬ ‫‪try‬‬ ‫‪def‬‬ ‫‪from‬‬ ‫‪not‬‬ ‫‪while‬‬ ‫‪nonlocal‬‬ ‫‪and‬‬ ‫‪del‬‬ ‫‪global‬‬ ‫‪with‬‬ ‫‪elif‬‬ ‫‪yield‬‬ ‫‪or‬‬ ‫‪assert‬‬ ‫‪else‬‬ ‫‪in‬‬ ‫‪import‬‬ ‫‪except‬‬ ‫‪break‬‬ ‫‪pass‬‬ ‫‪raise‬‬ ‫‪as‬‬ ‫الحظ أن‪:‬‬ ‫معظم الكلمات المجحوزة مكتوب بحروف صغيرة إال أن القليل منها يبدأ بحرف كبير‬ ‫أمثلة‪:‬‬ ‫‪← if = 10 ‬ال يجوز استخدام ‪ if‬كاسم متغير وسينتج خطأ لغوي‪.‬‬ ‫‪ ← true = 10 ‬ال ينتج عنها خطأ لغوي فـ ‪ true‬ليست كلمة محجوزة‪.‬‬ ‫‪ ‬أما ‪ ← True = 10‬سينتج عنها خطأ لغوي‪.‬ألن ‪ True‬كلمة محجوزة‬ ‫الحظ ‪ true‬و ‪ True‬كالهما نفس الكلمة ولكن حالة الحرف األول مختلفة‬ ‫ولغة بايثون ‪ Python‬حساسة لحالة الحرف فهي تميز بين الحرف الصغير والحرف‬ ‫الكبير‪ ،‬وبالتالي فإن المتغير ‪ t‬ال يكافئ المتغير ‪T‬‬ ‫أي أن ‪True ≠ true‬‬ ‫لذلك يجب أن تُكتب الكلمات المحجوزة بطريقة صحيحة‬ ‫وبنفس حالة األحرف؛ حتى يُمكن التعرف عليها‪.‬‬ ‫‪5‬‬ ‫‪Problem Solving Techniques‬‬ ‫القيم ‪ : Values‬تنقسم القيم بلغة ‪ Python‬إلى األنواع التالية ‪:‬‬ ‫ قيم رقمية صحيحة (‪ )Integer‬مثل ‪... ،-140 ،502‬أي اعداد بدون الفاصلة العشرية‪.‬‬ ‫ قيمة رقمية كسرية (‪ )Float‬مثل ‪...، 3.145, -45., 0.134‬أي اعداد بالفاصلة العشرية‪.‬‬ ‫ قيم رقمية تخيلية مثل ‪ 5j, -45j‬إي بإضافة الحرف الالتيني ‪ j‬يمين العدد‪.‬‬ ‫ قيم نصية مثل "برمجة"‪" ،"Programming" ،‬لغات برمجة"‪...،"113" ،‬أي مجموعة من الرموز‬ ‫محاطة بعلمتي التنصيص المفردة ( ' ) أو المزدوجة ( " )‪.‬‬ ‫ قيم منطقية وتشمل القيمتين ‪ True, False‬فقط‪.‬الحظ شكل الحرف األول في الكلمتين‪.‬‬ ‫المتغير هو اسم يشير إلى عنوان لتخزين قيمة من القيم المذكورة أعاله‪.‬‬ ‫المتغيرات ‪:Variables‬‬ ‫ يتكون إسم المتغير من الحروف الالتينية واألرقام ‪ 0،1،2،3،4،5،6،7،8،9‬والرمز ( _ ) على أن‬ ‫يبدأ بحرف‪.‬‬ ‫ عادة تستعمل الرمز ( _ ) لربط كلمتين أو أكثر‪.‬‬ ‫ يمكننا تخيل المتغير على أنه مكان (صندوق) توضع فيه قيمة معينة وقابلة للتغير‪.‬‬ ‫مالحظات يجب أخدها بعين االعتبار ‪:‬‬ ‫‪ ‬ضرورة التمييز بين الشرطة السفلية ( _ ) وإشارة الناقص ( ‪ ) -‬فالشرطة السفلية‬ ‫مسموح بها ضمن اسم المتغير أما الناقص فال‪.‬‬ ‫‪ ‬يُفضل عند اختيار اسم متغير أن يكون داال على محتواه‪ ،‬لتسهيل فهم وتتبع‬ ‫البرنامج بكل بساطة فمثال ‪:‬‬ ‫‪ ‬نستخدم المتغير ‪ name‬ليدل على أن ما سيُخزن فيه هو االسم‪.‬‬ ‫‪ ‬نستخدم المتغير ‪ phone_no‬ليدل على أن ما سيُخزن فيه هو رقم الهاتف‪.‬‬ ‫‪ ‬نستخدم المتغير ‪ course_no‬ليدل على أن ما سيُخزن فيه هو رمز المقرر‪.‬‬ ‫أمثلة ألسماء جائزة كأسماء متغيرات‪:‬‬ ‫‪birth_date, myname, itgs113, phone_no, student_id‬‬ ‫أمثلة ألسماء اليجوز استخدامها كأسماء متغيرات‪:‬‬ ‫‪birth-date, birth date, 5A, student.id, it+gs‬‬ ‫‪ ‬الحظ استخدام األحرف الصغغيرة فغي أسغماء المتغيغرات بغدال مغن األحغرف الكبيغرة‪،‬‬ ‫وذلك تمييزا ألسماء المتغيرات من أسماء الثوابت‪.‬هذه القاعغدة ليسغت ملزمغة ولكغن‬ ‫ُمتفق عليها في كتابة البرامج‪.‬ونحن سنلتزم بها‪.‬‬ ‫‪ ‬لغغغة ‪ Python‬حساسغغة لحالغغة الحغغرف فهغغي تميغغز بغغين الحغغرف الصغغغير والحغغرف‬ ‫الكبير‪ ،‬وبالتالي فإن المتغير ‪ ab‬ال يكافئ المتغير ‪AB‬‬ ‫‪6‬‬ ‫‪Problem Solving Techniques‬‬ ‫املخرجات واملدخالت‬ ‫‪:Inputs and Outputs‬‬ ‫املخرجات‪: Outputs‬‬ ‫‪ ‬لعرض نص على الشاشة‪ :‬نستخدم عالمة التنصيص المزدوجة‪.‬او المفردة‪.‬‬ ‫مثال‪:‬‬ ‫مثال ‪:‬اكتب وظيفة تقوم بعرض الجملة !‪Hello world‬‬ ‫لتنفيذ البرنامج يتم كتابته كما في المثال‪ :‬باستخدم األمر ‪ print‬لعرض النص‬ ‫الموجود بين عالمات التنصيص " " على الشاشة‪.‬‬ ‫املخرجات‪: Outputs‬‬ ‫‪ ‬لعرض قيمة (قيم) عددية على الشاشة‪ :‬أيضا نستخدم الجملة ‪ print‬كاآلتي‪:‬‬ ‫)‪print(year‬‬ ‫استخدام ‪ print‬لعرض قيمة عددية‬ ‫مثال ‪:‬اكتب برنامج لعرض قيمتي المتغيريين ‪ x‬و‪ y‬إذا كانت‪:‬‬ ‫‪ x = 750‬و‪y = 3.14‬‬ ‫البرنامج ← )‪print(x,y‬‬ ‫‪-----------------------------------‬‬ ‫ناتج البرنامج ← ‪750 3.14‬‬ ‫‪7‬‬ ‫‪Problem Solving Techniques‬‬ ‫املدخالت ‪: Inputs‬‬ ‫كيف يتم إسناد قيمة لمتغير ؟‬ ‫أوال ‪ :‬عن طريق إدخال القيمة من لوحة المفاتيح‪ ،‬باستخدام الوظيفة‬ ‫)"‪input (“prompt‬‬ ‫عند التنفيذ تقوم الوظيفة ‪ input‬بعرض النص الموجود بين عالمتي التنصيص " " على‬ ‫الشاشة (إن وجد) لمساعدة ال ُمدخل على معرفة المطلوب إدخاله كما في المثال التالي‪:‬‬ ‫)" ‪student_name = input ("Enter your name :‬‬ ‫هذه رسالة للمستخدم إلدخال اسمه‪.‬حيث أن في هذه الحالة الكلمة‪ prompt‬أخذت القيمة‬ ‫النصية‪.Enter your name :‬الجملة )'‪ input('prompot‬تقراء القيمة المدخلة من‬ ‫لوحة المفاتيح كقيمة نصية وإسنادها إلى المتغير المكتوب معها في نفس السطر كاألتي‪:‬‬ ‫)'‪student_number = input('enter_number:‬‬ ‫مثال لو أن المستخدم ادخل القيمة ‪ 12345‬من لوحة المفغاتيح فغإن الجملغة ‪ input‬ستسغند‬ ‫هذه القيمة إلى المتغير ‪ student_number‬كقيمغة نصغية أي أن هغذا المتغيغر سغيحتوي‬ ‫على النص التالي'‪ '12345‬وليس الرقم ‪12345‬‬ ‫مالحظات‪:‬‬ ‫‪ ‬من ضمن جملة النص بجملة ‪print‬يوجد الرمز ‪ \n‬ويعني االنتقال إلى سطر‬ ‫جديد‪.‬‬ ‫‪ ‬تنسيق الجمل بداية من اليسار من عمود واحد وفي حالة اإلخالل بالقاعدة يحدث‬ ‫خطأ لغوي (‪.)Syntax Error‬‬ ‫‪ ‬الخط العريض الداكن هو النص الموجود في جملة ‪input‬‬ ‫‪ ‬والبيانات ذات الخط غير الداكن تم إدخالها من قبل المستخدم‬ ‫‪ ‬مابين عالمات التنصيص المزدوجة الثالثية (""" ‪ ) """.........‬يعتبر جمل‬ ‫توضحية لقارئ البرنامج وليس جمل يقوم الحاسوب بتنفذها وباإلمكان استخدام‬ ‫اللغة العربية كما هو موضح بالمثال‪.‬‬ ‫‪ ‬كما يمكن استخدام الرمز ‪ #‬في حالة أن الجملة التوضيحية ال تتجاوز سطر‬ ‫‪# This comment is written in a single line‬‬ ‫‪8‬‬ ‫‪Problem Solving Techniques‬‬ ‫ثانيا ‪ :‬إسناد قيم للمتغيرات باستخدام جملة التعيين )‪(Assignment statement‬‬ ‫"‪ "programming language‬للمتغير‬ ‫‪ ‬مثل جملة إلسناد القيمة النصية‬ ‫‪ course_name‬نكتب الجملة التالية‬ ‫'‪course_name = 'programming language‬‬ ‫‪ ‬مثال إلسناد القيمة الرقمية ‪ 2023‬إلى المتغير ‪ year‬نكتب الجملة التالية‬ ‫‪year = 2023‬‬ ‫العمليات اليت جترى على البياانت‪:‬‬ ‫‪ )1‬المؤثرات الحسابية‪ :‬رموز خاصة تمثل العمليات الحسابية كالجمع‪ ،‬والطرح‬ ‫والضرب‪ ،‬والقسمة وغيرها ‪.)...‬المؤثر العملية الحسابية‬ ‫الجمع ‪addition‬‬ ‫‪+‬‬ ‫الطرح ‪subtraction‬‬ ‫‪-‬‬ ‫الضرب ‪multiplication‬‬ ‫*‬ ‫القسمة ‪division‬‬ ‫‪/‬‬ ‫القسمة مع حذف الجزء الكسري من الناتج ان وجد‬ ‫‪//‬‬ ‫باقي القسمة ‪remainder‬‬ ‫‪%‬‬ ‫األس ‪exponentiation‬‬ ‫**‬ ‫اسبقيه تنفيذ المؤثرات الحسابية في التعابير الحسابية‬ ‫التنفيذ في حالة تساوي األولوية‬ ‫المؤثر‬ ‫من اليسار إلى اليمين‬ ‫)(‬ ‫من اليمين إلى اليسار‬ ‫**‬ ‫من اليسار إلى اليمين‬ ‫اشارة العدد ‪-‬‬ ‫من اليسار إلى اليمين‬ ‫‪* , /, // , %‬‬ ‫من اليسار إلى اليمين‬ ‫‪+ , -‬‬ ‫‪9‬‬ ‫‪Problem Solving Techniques‬‬ ‫العمليات اليت جترى على البياانت‪:‬‬ ‫‪ )2‬المؤثرات العالئقية‪ :‬رموز خاصة تمثل العمليات العالئقية من مقارنة (أكبر من‪،‬‬ ‫العملية العالئقية‬ ‫الرمز‬ ‫أصغر من‪ ،‬وغيرها ‪.).....‬‬ ‫يساوي‬ ‫==‬ ‫ال يساوي‬ ‫=!‬ ‫أكبر من‬ ‫>‬ ‫أصغر من‬ ‫‬ ‫أصغر من أو يساوي‬ ‫=0 ) Then‬‬ ‫‪.3‬إذا كان ( ع 0‬‬ ‫‪Yes‬‬ ‫‪ ← -5‬الثاتج ‪Negative‬‬ ‫‪Print Negative‬‬ ‫‪Print Positive‬‬ ‫‪End‬‬ ‫برنامج بلغة بايثون‪ :‬يقوم بقراءة عدد وطباعة كلمة ‪ Positive‬إذا كانت قيمة العدد‬ ‫موجب وطباعة كلمة ‪ Negative‬إذا كانت قيمة العدد سالبة‬ ‫تتبع البرنامج‬ ‫إذا كان المدخالت كالتالي ‪:‬‬ ‫‪-5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪Problem Solving Techniques‬‬ ‫اكتب خوارزمية لقراءة عدد ي وطباعة العدد األكبر ؟‬ ‫تينع الحوإررمية‬ ‫‪1. Start‬‬ ‫إدإ كان المذحلات كالثالي ‪:‬‬ ‫‪2. Read Num1,Num2‬‬ ‫‪4,8‬‬ ‫‪5,2‬‬ ‫‪3. If ( Num1 >Num2 ) Then‬‬ ‫‪Print Num1‬‬ ‫‪4 ,8‬‬ ‫إذا كان العددي‬ ‫فالنتيجة ‪8‬‬ ‫‪Else‬‬ ‫‪Print Num2‬‬ ‫‪4. Stop‬‬ ‫إذا كان العددي ‪5 ,2‬‬ ‫النتيجة ‪5‬‬ ‫ارسم المخطط االنسيابي لبرنامج يقرأ عددي وطباعة العدد األكبر‬ ‫تينع الحوإررمية‬ ‫‪Start‬‬ ‫إدإ كان المذحلات كالثالي ‪:‬‬ ‫‪Read Num1,Num2‬‬ ‫‪4,8‬‬ ‫‪5,2‬‬ ‫‪No‬‬ ‫‪Yes‬‬ ‫‪If Num1> Num2‬‬ ‫‪4 ,8‬‬ ‫إذا كان العددي‬ ‫فالنتيجة ‪8‬‬ ‫‪Print Num2‬‬ ‫‪Print Num1‬‬ ‫إذا كان العددي ‪5 ,2‬‬ ‫‪End‬‬ ‫النتيجة ‪5‬‬ ‫‪4‬‬ ‫‪Problem Solving Techniques‬‬ ‫اكتب برنامج بلغة بايثون ليقرأ عددي مع طباعة العدد األكبر‬ ‫البرنامج←‬ ‫ناتج البرنامج‬ ‫ناتج البرنامج‬ ‫اكتب خوارزمية لقراءة ثالث أعداد وطباعة العدد األكبر ؟‬ ‫‪5‬‬ ‫‪Problem Solving Techniques‬‬ ‫تتبع المخطط االنسيابي لبرنامج يقوم بقراءة ثالث أعداد وطباعة‬ ‫األكبر ؟ إذا كانت المدخالت ‪A=5 ,B=2, C=7‬‬ ‫النتيجة ‪7‬‬ ‫تتبع المخطط االنسيابي لبرنامج يقوم بقراءة ثالث أعداد وطباعة‬ ‫األكبر ؟ إذا كانت المدخالت ‪A=5 ,B=2 C=3‬‬ ‫النتيجة ‪5‬‬ ‫‪6‬‬ ‫‪Problem Solving Techniques‬‬ ‫تتبع المخطط االنسيابي لبرنامج يقوم بقراءة ثالث أعداد وطباعة‬ ‫األكبر ؟ إذا كانت المدخالت ‪A=5 ,B=12, C=4‬‬ ‫النتيجة ‪12‬‬ ‫اكتب برنامج بلغة بايثون ليقرأ ثالث أعداد وطباعة األكبر‬ ‫البرنامج←‬ ‫ناتج تنريذ البرنامج ←‬ ‫‪7‬‬ ‫‪Problem Solving Techniques‬‬ ‫اكتب الخوارزمية لقراءة عدد صحيح ‪ X‬ثم غير قيمته كما يلي ‪:‬‬ ‫إضافة عدد ‪ 1‬له إذا كانت ‪ x‬سالبة‬ ‫طرح قيمة ‪ 1‬منه إذا كانت ‪x‬موجبة‬ ‫‪1. Start‬‬ ‫تينع الحوإررمية‬ ‫‪2. Read x‬‬ ‫إدإ كان المذحلات كالثالي ‪:‬‬ ‫‪4 , -6 , 9‬‬ ‫‪3. If ( x < 0 ) Then‬‬ ‫‪x=x+1‬‬ ‫‪Else‬‬ ‫‪x=x-1‬‬ ‫ال‬ ‫‪4. Print x‬‬ ‫ييتجة ‪:‬‬ ‫‪3 , -5 , 8‬‬ ‫‪5. Stop‬‬ ‫اكتب برنامج بلغة بايثون لقراءة عدد صحيح ‪ X‬ثم غير قيمته كما يلي ‪:‬‬ ‫إضافة عدد ‪ 1‬له إذا كانت ‪ x‬سالبة‬ ‫طرح قيمة ‪ 1‬منه إذا كانت ‪x‬موجبة‬ ‫‪8‬‬ ‫‪Problem Solving Techniques‬‬ ‫اكتب الخوارزمية لقراءة عدد وطباعة كلمة ‪Even‬إذا كانت العدد زوجي‬ ‫وكلمة ‪Odd‬إذا كان العدد فردي‪.‬‬ ‫‪1) Start‬‬ ‫ال‬ ‫‪2) Read N‬‬ ‫العذد الروجي هو العذد الذي بفثل فسمة‬ ‫‪3) If ( N%2 == 0 ) Then‬‬ ‫علي ‪ ( 2‬تذون بافي)‬ ‫‪Print Even‬‬ ‫‪Else‬‬ ‫‪Print Odd‬‬ ‫‪4) Stop‬‬ ‫ارسم المخطط االنسيابي لقراءة عدد وطباعة كلمة‪ Even‬إذا كانت العدد‬ ‫زوجي وكلمة ‪ Odd‬إذا كان العدد فردي‪.‬‬ ‫‪Start‬‬ ‫‪Read N‬‬ ‫‪No‬‬ ‫‪Yes‬‬ ‫‪If N%2==0‬‬ ‫‪Print Odd‬‬ ‫‪Print Even‬‬ ‫‪End‬‬ ‫‪9‬‬ ‫‪Problem Solving Techniques‬‬ ‫اكتب برنامج بلغة بايثون لقراءة عدد وطباعة كلمة ‪Even‬إذا كانت العدد‬ ‫زوجي وكلمة ‪Odd‬إذا كان العدد فردي‪.‬‬ ‫العذد الروجي هو العذد الذي بفثل‬ ‫ال‬ ‫فسمة علي ‪ ( 2‬تذون بافي)‬ ‫اكتب الخوارزمية إليجاد قيمة ‪ w‬حسب المعادالت التالية ‪:‬‬ ‫‪W= 4+ X‬‬ ‫‪if X > 0‬‬ ‫‪W= 20‬‬ ‫‪if X = 0‬‬ ‫‪W= 3 X – 6‬‬ ‫‪if X < 0‬‬ ‫‪ (1‬البداية‬ ‫تتبع الخوارزمية بالبيانات التالية‪:‬‬ ‫‪(2‬أقرأ قيمة ‪X‬‬ ‫ادخال قيمة ‪x= 2‬‬ ‫‪(3‬إذا كان ( ‪ ) x=0‬عندئذ ‪W= 20‬‬ ‫‪6‬‬ ‫النتيجة هي‬ ‫وإال‬ ‫إذا كانت ( ‪(02‬‬ ‫=‪Y‬‬ ‫)‪-4/(5-m‬‬ ‫‪; m 2 ) Then‬‬ ‫‪1‬‬ ‫النتيجة هي‬ ‫)‪y=2/(m-2‬‬ ‫ادخال قيمة ‪x=0‬‬ ‫‪Else if ( mNum2 ) Then‬‬ ‫‪6,3,5,10‬‬ ‫{‬ ‫‪Temp =Num1‬‬ ‫‪Num1=Num2‬‬ ‫‪Num1=3 , Num2=6‬‬ ‫‪Num2=Temp‬‬ ‫}‬ ‫‪4) Print Num1,Num2‬‬ ‫‪Num1=5, Num2=10‬‬ ‫‪5) Stop‬‬ ‫‪12‬‬ ‫‪Problem Solving Techniques‬‬ ‫المحـــاضرة الثالثة‬ ‫صياغة حل المسائل‬ ‫مثال‪ :1‬حســاب مساحة مستطيل‬ ‫المسألة‪ :‬حساب مساحة المستطيل بمعلومية الطول والعرض‪.‬‬ ‫‪ )1‬تحليل عناصر المسألة كما يلي ‪:‬‬ ‫المخرجات(المطلوب)‬ ‫المعالجة‬ ‫المدخالت(المعطيات)‬ ‫أو )‪Area (A‬‬ ‫‪ (1‬تحديد المخرجات‪ :‬مساحة المستطيل (م)‬ ‫‪length(L), width(W).‬‬ ‫‪ )2‬تحديد المدخالت‪ :‬الطول(ط(‪,‬العرض (ع)‬ ‫‪ )3‬تحديد عمليات المعالجة‪:‬‬ ‫‪Area(A)=L*W‬‬ ‫مساحة المستطيل )م (= ط × ع‬ ‫‪1‬‬ ‫‪Problem Solving Techniques‬‬ ‫مثال‪ :1‬حســاب مساحة مستطيل‬ ‫تصميم منطق الحل‪ :‬بكتابة الخوارزمية كالتالي‪:‬‬ ‫اكتب الخطوات الالزمة لحساب مساحة المستطيل بمعلومية الطول والعرض إذا‬ ‫علمت أن مساحة المستطيل = الطول × العرض‬ ‫لك الخيار أن تكتب باللغة‬ ‫العربية أو االنجليزية‬ ‫‪1) Start‬‬ ‫ابدا‬ ‫‪(1‬‬ ‫)‪2) Read length (L), width (W‬‬ ‫أدخل الطول ( ط )‪ ,‬والعرض ( ع ) ‪.‬‬ ‫‪(2‬‬ ‫‪3) Area =L * W‬‬ ‫احسب مساحة المستطيل ( م ) = ط × ع‬ ‫‪(3‬‬ ‫‪4) print Area‬‬ ‫اطبع المساحة ( م ) ‪.‬‬ ‫‪(4‬‬ ‫‪5) Stop‬‬ ‫النهاية‬ ‫‪(5‬‬ ‫مثال‪ :1‬حســاب مساحة مستطيل‬ ‫تصميم منطق الحل‪ :‬برسم المخطط االنسيابي كالتالي‪:‬‬ ‫‪Start‬‬ ‫‪Read L , W‬‬ ‫‪Area = L * W‬‬ ‫‪Print Area‬‬ ‫‪End‬‬ ‫‪2‬‬ ‫‪Problem Solving Techniques‬‬ ‫مثال‪ :1‬حســاب مساحة مستطيل‬ ‫كتابة البرنامج على الكمبيوتر بإحدى لغات البرمجة‪ :‬البرنامج بلغة بايثون‬ ‫مثال‪ :1‬حســاب مساحة مستطيل‬ ‫اختبار صحة البرنامج وتصحيح أخطائه كالتالي‪:‬‬ ‫بتجربة البرنامج وتتبعه باعطائه قيم ومقارنة الناتج بما هو متوقع‬ ‫عند تنفيد البرنامج بالقيم ‪ l=3.5‬و ‪w=4‬‬ ‫من المفترض أن يكون الناتج ‪14‬‬ ‫‪3‬‬ ‫‪Problem Solving Techniques‬‬ ‫صياغة حل المسائل‬ ‫مثال‪ :2‬حســاب مساحة مثلث‬ ‫المسألة‪ :‬حساب مساحة المثلث بمعلومية القاعدة واالرتفاع‪.‬حيث أن‪:‬‬ ‫مساحة المثلث = ½ القاعدة * االرتفاع‪.‬‬ ‫‪ )1‬تحليل عناصر المسألة كما يلي ‪:‬‬ ‫المخرجات(المطلوب)‬ ‫المعالجة‬ ‫المدخالت(المعطيات)‬ ‫‪Area‬‬ ‫‪ )1‬تحديد المخرجات‪ :‬مساحة المثلث (م)‬ ‫‪ )2‬تحديد المدخالت‪ :‬القاعدة( ق)‪ ،‬واالرتفاع (ع)‪.‬‬ ‫)‪Base(B) , Height (H‬‬ ‫‪ )3‬تحديد عمليات المعالجة‪ :‬مساحة المثلث م = ½ × ق × ع‬ ‫‪Area=1/2 * R*H‬‬ ‫مثال‪ :2‬حســاب مساحة مثلث‬ ‫تصميم منطق الحل‪ :‬بكتابة الخوارزمية كالتالي‪:‬‬ ‫اكتب الخطوات الالزمة لحساب مساحة المثلث بمعلومية القاعدة واالرتفاع إذا‬ ‫القاعدة * االرتفاع‬ ‫علمت أن مساحة المثلث = ½‬ ‫لك الخيار أن تكتب باللغة‬ ‫العربية أو االنجليزية‬ ‫‪1) Start‬‬ ‫إبدأ‬ ‫‪(1‬‬ ‫‪2) Read Base(B), Height (H).‬‬ ‫أدخل القاعدة ( ق )‪ ,‬واالرتفاع ( ع )‪.‬‬ ‫‪(2‬‬ ‫‪3) Area = 1/2 * B*H‬‬ ‫احسب مساحة المثلث (م) = ½ × ق × ع‬ ‫‪(3‬‬ ‫‪4) print Area‬‬ ‫اطبع المساحة ( م )‪.‬‬ ‫‪(4‬‬ ‫‪5) Stop‬‬ ‫توقف‪.‬‬ ‫‪(5‬‬ ‫‪4‬‬ ‫‪Problem Solving Techniques‬‬ ‫مثال‪ :2‬حســاب مساحة مثلث‬ ‫تصميم منطق الحل‪ :‬برسم المخطط االنسيابي كالتالي‪:‬‬ ‫‪Start‬‬ ‫)‪Read Base(B) , Height (H‬‬ ‫‪Area=1/2 * B*H‬‬ ‫‪Print Area‬‬ ‫‪End‬‬ ‫مثال‪ :2‬حســاب مساحة مثلث‬ ‫كتابة البرنامج على الكمبيوتر بإحدى لغات البرمجة‪ :‬البرنامج بلغة بايثون‬ ‫‪5‬‬ ‫‪Problem Solving Techniques‬‬ ‫مثال‪ :2‬حســاب مساحة مثلث‬ ‫اختبار صحة البرنامج وتصحيح أخطائه كالتالي‪:‬‬ ‫بتجربة البرنامج وتتبعه باعطائه قيم ومقارنة الناتج بما هو متوقع‬ ‫عند تنفيد البرنامج بالقيم ‪ 4‬و ‪5‬‬ ‫من المفترض أن يكون الناتج ‪10‬‬ ‫صياغة حل المسائل‬ ‫مثال‪ :3‬حســاب متوسط ثالث درجات‬ ‫المسألة‪ :‬حساب وطباعة متوسط ثالث درجات‪.‬حيث أن‪:‬‬ ‫المتوسط = مجموع الدرجات ‪ /‬عددها‪.‬‬ ‫‪ )1‬تحليل عناصر المسألة كما يلي ‪:‬‬ ‫المخرجات(المطلوب)‬ ‫المعالجة‬ ‫المدخالت(المعطيات)‬ ‫‪ (1‬تحديد المدخالت‪ :‬الدرجات الثالث ‪.A,B,C‬‬ ‫‪ (2‬تحديد عمليات المعالجة‪:‬‬ ‫‪ -‬مجموع الدرجات الثالث ‪sum=A+B+C‬‬ ‫𝐦𝐮𝐬‬ ‫‪ -‬حساب المتوسط 𝟑 = ‪Average‬‬ ‫‪ )3‬تحديد المخرجات‪ :‬طباعة متوسط الدرجات الثالث ‪Average‬‬ ‫‪6‬‬ ‫‪Problem Solving Techniques‬‬ ‫مثال‪ :3‬حســاب متوسط ثالث درجات‬ ‫تصميم منطق الحل‪ :‬بكتابة الخوارزمية كالتالي‪:‬‬ ‫اكتب الخطوات الالزمة لحساب مساحة متوسط ثالث أعداد حيث أن‪:‬‬ ‫الدرجات مجموع‬ ‫المتوسط =‬ ‫𝟑‬ ‫لك الخيار أن تكتب باللغة‬ ‫العربية أو االنجليزية‬ ‫‪ -1‬البداية‬ ‫)‪1‬‬ ‫‪Start‬‬ ‫‪ -2‬اقرأ الدرجات الثالث ‪A,B,C‬‬ ‫)‪2‬‬ ‫‪Read A,B,C‬‬ ‫‪-3‬احسب قيمة المجموع‬ ‫)‪3‬‬ ‫‪Sum =A+B+C‬‬ ‫‪sum=A+B+C‬‬ ‫)‪4‬‬ ‫‪Average=Sum/3‬‬ ‫‪-4‬احسب قيمة المتوسط‬ ‫‪Average=sum/3‬‬ ‫)‪5‬‬ ‫‪print Average‬‬ ‫‪-5‬اطبع المتوسط ‪Average‬‬ ‫)‪6‬‬ ‫‪Stop‬‬ ‫‪-6‬النهاية‬ ‫مثال‪ :3‬حســاب متوسط ثالث درجات‬ ‫تصميم منطق الحل‪ :‬برسم المخطط االنسيابي كالتالي‪:‬‬ ‫‪Start‬‬ ‫‪Read A,B,C‬‬ ‫‪Sum=A+B+C‬‬ ‫‪Avg=Sum / 3‬‬ ‫‪Print Avg‬‬ ‫‪End‬‬ ‫‪7‬‬ ‫‪Problem Solving Techniques‬‬ ‫مثال‪ :3‬حســاب متوسط ثالث درجات‬ ‫كتابة البرنامج على الكمبيوتر بإحدى لغات البرمجة‪ :‬البرنامج بلغة بايثون‬ ‫مثال‪ :3‬حســاب متوسط ثالث درجات‬ ‫اختبار صحة البرنامج وتصحيح أخطائه كالتالي‪:‬‬ ‫بتجربة البرنامج وتتبعه باعطائه قيم ومقارنة الناتج بما هو متوقع‬ ‫عند تنفيد البرنامج بالقيم ‪ 50‬و ‪ 65‬و ‪35‬‬ ‫المفترض أن يكون الناتج ‪50‬‬ ‫‪8‬‬ ‫‪Problem Solving Techniques‬‬ ‫صياغة حل المسائل‬ ‫مثال‪:4‬‬ ‫تحويل درجة الحرارة من النظام المئوي إلى الفهرنهايتي‬ ‫المسألة‪ :‬اكتب برنامج يقوم باستقبال درجة الحرارة بالنظام المئوي ‪Celsius‬‬ ‫ويحولها الى النظام الفهرنهايتي ‪ ،Fahrenheit‬علما بان معادلة التحويل هي ‪:‬‬ ‫‪Fahrenheit= (9/5 *Celsius) +32‬‬ ‫‪ )1‬تحليل عناصر المسألة كما يلي ‪:‬‬ ‫المخرجات(المطلوب)‬ ‫المعالجة‬ ‫المدخالت(المعطيات)‬ ‫‪ (1‬تحديد المدخالت‪ :‬درجة الحرارة بالنظام المئوي‬ ‫‪ (2‬تحديد عمليات المعالجة‪:‬‬ ‫تحويل درجة الحرارة من النظام المئوي الى نظام الفهرنهايتي‬ ‫‪Fahrenheit= (9/5 *Celsius) +32‬‬ ‫‪ )3‬تحديد المخرجات‪ :‬درجة الحرارة بالنظام الفهرنهايتي‪.‬‬ ‫مثال‪ :4‬تحويل درجة الحرارة من النظام المئوي إلى الفهرنهايتي‬ ‫تصميم منطق الحل‪ :‬بكتابة الخوارزمية كالتالي‪:‬‬ ‫اكتب الخطوات الالزمة باستخدام معادلة التحويل‬ ‫‪Fahrenheit= (9/5 *Celsius) +32‬‬ ‫لك الخيار أن تكتب باللغة‬ ‫العربية أو االنجليزية‬ ‫‪ -1‬البداية‬ ‫)‪1‬‬ ‫‪Start‬‬ ‫‪ -2‬اقرا درجة الحرارة بالنظام المئوي ‪Celsius‬‬ ‫)‪2‬‬ ‫‪Read Celsius‬‬ ‫‪-3‬احسب درجة الحرارة بالنظام الفهرنهايتي‬ ‫)‪3‬‬ ‫‪Fahrenheit= (9/5* Celsius) +32‬‬ ‫‪Fahrenheit= (9/5* Celsius) +32‬‬ ‫)‪4‬‬ ‫‪print Celsius ,Fahrenheit‬‬ ‫)‪5‬‬ ‫‪Stop‬‬ ‫‪-4‬اطبع‪Celsius ,Fahrenheit.‬‬ ‫‪-5‬النهاية‬ ‫‪9‬‬ ‫‪Problem Solving Techniques‬‬ ‫مثال‪ :4‬تحويل درجة الحرارة من النظام المئوي إلى الفهرنهايتي‬ ‫تصميم منطق الحل‪ :‬برسم المخطط االنسيابي كالتالي‪:‬‬ ‫‪Start‬‬ ‫‪Read Celsius‬‬ ‫‪Fahrenheit= (9/5* Celsius( + 32‬‬ ‫‪print Celsius ,Fahrenheit‬‬ ‫‪End‬‬ ‫مثال‪ :4‬تحويل درجة الحرارة من النظام المئوي إلى الفهرنهايتي‬ ‫كتابة البرنامج على الكمبيوتر بإحدى لغات البرمجة‪ :‬البرنامج بلغة بايثون‬ ‫‪10‬‬ ‫‪Problem Solving Techniques‬‬ ‫مثال‪ :4‬تحويل درجة الحرارة من النظام المئوي إلى الفهرنهايتي‬ ‫اختبار صحة البرنامج وتصحيح أخطائه كالتالي‪:‬‬ ‫بتجربة البرنامج وتتبعه باعطائه قيم ومقارنة الناتج بما هو متوقع‬ ‫أكتب خظوأت حل المسائل ألأتتة‪:‬‬ ‫ حساب مساحة المظللة في الشكل االتي‬ ‫المساحة المظللة = مساحة المربع – مساحة الدائرة‬ ‫إيجاد قيمة المرتب الصافي علما بأنه عبارة عن قيمة الدخل نطرح منه‬ ‫ ‬ ‫قيمة الضريبة ( وهي ‪ %10‬من قيمة الدخل)‬ ‫حساب مرتبات الموظفين بعد زيادة ‪ 200‬دينار لمرتب كل موظف‬ ‫ ‬ ‫حساب مساحة المربع بمعلومية طول الضلع‬ ‫ ‬ ‫ تحويل قيمة االطوال من الكيلومتر إلى المتر‬ ‫تحويل الزمن من الثواني الى الدقائق‬ ‫ ‬ ‫ حساب مساحة ومحيط المستطيل‪.‬‬ ‫‪11‬‬ ‫‪Problem Solving Techniques‬‬ ‫المحـــاضرة الخامسة‬ ‫البرامج ذات الدوران الواحد ‪Simple Loops programs‬‬ ‫استاذ المقرر‪ :‬ا‪.‬ناهد فتحي فرح‬ ‫مخطط الدوران الواحد‬ ‫‪Simple – Loop Flowchart‬‬ ‫‪1‬‬ ‫‪Problem Solving Techniques‬‬ ‫مثال‪ :1‬اكتب الخوارزمية لحساب مساحة ‪ 100‬مستطيل‬ ‫‪1) Start‬‬ ‫‪2) C=1‬‬ ‫‪3) If C = 0‬‬ ‫{‬ ‫‪-2‬تحديث قيمة العداد ‪C=C+1‬‬ ‫‪NO‬‬ ‫‪Area =L*L‬‬ ‫>> خالل التكرار >>‬ ‫‪if L>=0‬‬ ‫‪Print Area‬‬ ‫‪yes‬‬ ‫‪Print C‬‬ ‫‪C=C+1‬‬ ‫‪Go To 3‬‬ ‫‪Area =L*L‬‬ ‫‪End‬‬ ‫}‬ ‫‪5) Else‬‬ ‫‪C=C+1‬‬ ‫‪6) Print C‬‬ ‫‪7) End‬‬ ‫‪Print Area‬‬ ‫مثال‪ :6‬اكتب الخوارزمية وارسم المخطط االنسيابي لبرنامج يحسب مجموع‬ ‫مساحات مجموعة أراضي مربعة عددها غير معروف و يتوقف بإدخال قيمة‬ ‫سالبة‪ ،‬مع طباعة مساحة كل قطعة أرض والمساحة الكلية‪.‬‬ ‫‪Algorithm‬‬ ‫‪Start‬‬ ‫فكرة المجموع ‪Sum‬‬ ‫)‪1‬‬ ‫‪Start‬‬ ‫‪ -1‬تصفير المتغير‪Sum=0‬‬ ‫‪Sum=0‬‬ ‫)‪2‬‬ ‫‪Sum = 0‬‬ ‫داخل التكرار= 50‬‬ ‫‪c=c+1‬‬ ‫‪NO‬‬ ‫‪go to 3‬‬ ‫‪if G >= 0‬‬ ‫‪else‬‬ ‫‪yes‬‬ ‫‪Go to 3‬‬ ‫‪Print C‬‬ ‫‪NO‬‬ ‫}‬ ‫‪if G>=50‬‬ ‫‪else‬‬ ‫‪yes‬‬ ‫‪Print C‬‬ ‫‪End‬‬ ‫‪End‬‬ ‫‪C=C+1‬‬ ‫مثال ‪ :8‬ارسم خريطة التدفق لحساب متوسط مجموعة من اإلعداد الصحيحة‬ ‫الموجبة غير معروف عددها ولكن تنتهي بعدد سالب‪.‬‬ ‫‪Start‬‬ ‫فكرة‬ ‫‪sum=0‬‬ ‫المجموع‬ ‫‪N=0‬‬ ‫مالحظة هامة‪:‬‬ ‫يجب التأكد من أن‪:‬‬ ‫‪Read val‬‬ ‫‪N≠0‬‬ ‫فكرة‬ ‫لضمان عدم القسمة على‬ ‫العد‬ ‫صفر‪ ،‬إذا كانت ‪0 = N‬‬ ‫‪NO‬‬ ‫يخرج من البرنامج‬ ‫?‪if val >= 0‬‬ ‫‪yes‬‬ ‫‪yes‬‬ ‫‪NO‬‬ ‫‪if N == 0‬‬ ‫‪sum=sum = val‬‬ ‫‪Avg =sum /N‬‬ ‫‪N=N+1‬‬ ‫‪Print Avg‬‬ ‫‪End‬‬ ‫‪6‬‬ ‫‪Problem Solving Techniques‬‬ ‫مثال‪ :9‬اكتب الخوارزمية وارسم خريطة التدفق لحساب متوسط مساحة مجموعة أراضي‬ ‫مربعة غير معروفة العدد و ينتهي البرنامج بإدخال قيمة سالبة‬ ‫)‪1‬‬ ‫‪Start‬‬ ‫‪Start‬‬ ‫)‪2‬‬ ‫‪C=0‬‬ ‫مالحظة هامة‪:‬‬ ‫‪C=0‬‬ ‫يجب التأكد من أن عدد‬ ‫)‪3‬‬ ‫‪Sum = 0‬‬ ‫االراضي ‪ c‬ال يساوي‬ ‫)‪4‬‬ ‫‪Read L‬‬ ‫‪Sum=0‬‬ ‫صفر؛ لضمان عدم القسمة‬ ‫)‪5‬‬ ‫‪If L>=0‬‬ ‫على صفر عند حساب‬ ‫{‬ ‫‪Read L‬‬ ‫المتوسط‬ ‫‪Area =L*L‬‬ ‫‪Sum= sum + Area‬‬ ‫‪NO‬‬ ‫‪C = C +1‬‬ ‫‪if L>=0‬‬ ‫‪Go To 4‬‬ ‫‪yes‬‬ ‫}‬ ‫‪yes‬‬ ‫‪NO‬‬ ‫‪if C ≠ 0‬‬ ‫‪6) Else‬‬ ‫‪Area =L*L‬‬ ‫‪if C ≠ 0‬‬ ‫‪Avg= sum /c‬‬ ‫{‬ ‫‪Avg= sum /c‬‬ ‫‪Sum= sum + Area‬‬ ‫‪Print Avg‬‬ ‫‪Print Avg‬‬ ‫}‬ ‫‪C=C+1‬‬ ‫‪7) End‬‬ ‫‪End‬‬ ‫مثال‪ :10‬حساب مجموع بعض األعداد‬ ‫اكتب الخوارزمية وارسم خريطة التدفق لحساب حاصل جمع أول ‪ 25‬عدد فردي من‬ ‫األعداد الصحيحة كاالتي‪Sum = 1 + 3 + 5 + 7 +……….49.‬‬ ‫‪Start‬‬ ‫‪1.‬‬ ‫‪Start‬‬ ‫‪2.‬‬ ‫‪sum=0‬‬ ‫‪Sum = 0‬‬ ‫‪3.‬‬ ‫‪k=1‬‬ ‫‪K=1‬‬ ‫‪4.‬‬ ‫)‪If (k

Use Quizgecko on...
Browser
Browser