Problem Solving Techniques Lecture 1 (PDF)
Document Details
Uploaded by EarnestDirac
2023
Tags
Related
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