Transcript 3699588
المحاضرة الثانية الفصل الثالث سودوكود ()Pseudocode مقدمة: • : Pseudocodeهو طريقة لعرض خطوات حل مسألة معينة باستخدام أوامر مختصرة. • والـ Pseudocodeيعني الكود الزائف او الكود غير الحقيقي ( ،)false codeوذلك ألنه برنامج غير مكتوب بإحدى لغات البرمجة. Pseudocode مكونات الـ (Components( Words • كلمات Clauses • مقاطع Statements • جمل مثال على الـ : Pseudocode سلعة معروضة للبيع بسعر 120جنيه إذا كانت الكمية أكثرمن 19وبسعر 150جنيه إذا كانت الكمية أقل .فما إجمالي سعر بيع الكمية من السلعة؟ الحل: المتغيرات في المسألة: ( )Qtyوتعني الكمية المباعة ( )Tوتعني إجمالي سعر الكمية المباعة من السلعة :خريطة التدفق للمسألة Start Read Qty Yes Is Qty > 19? T = Qty * 120 No T = Qty * 150 Print T End المناظر لخريطة التدفقPseudocode الـ السابقة 1- If quantity sold is greater than 19 Then Calculate Total = Quantity * 120 Else Calculate Total = Quantity * 150 2- Print Total قواعد وقيود السودكود Pseudocode rules & constraints اختيار اسماء متغيرات ذات معنى بحيث يعكس اسم.1 .المتغير محتوياته The names of variables being used should describe what the variable represents . كتابة األوامر بطريقة سهلة وواضحة.2 All statements should be written in a easy to understand. way that is Pseudocode بنية تركيب الـ Pseudocode logic structure Sequence • أوامر متتالية Selection • االختيار والتشعب Iterations • التكرار • أوامر متتالية : Sequence تنفذ األوامر واحداً تلو اآلخر بنفس ترتيب كتابتها ما لم يخل الترتيب. • االختيار والتشعب : Selection يمكن كتابة أمر االختيار باستعمال جملة ،If statementحيث إنها تقدم بديلين لتنفيذ أحدهما حيث يتم اختبار صحة حالة معينة ،فإذا كانت صحيحة يتم تنفيذ البديل األول أما إذا كانت غير صحيحة فيتم تنفيذ البديل الثاني .وتسمى الحالة األول الصحيحة ( )Trueوغير الصحيحة ( )Falseوعلى يتم تنفيذ األختيار باألمر If – Then – Else If condition being test is True Then ) (condition is trueيتم تنفيذ األوامر في حالة صحة الحالة Else ) (condition is falseيتم تنفيذ األوامر في حالة عدم صحة الحالة يتم صياغة االختبار على حالة معينة بحيث ال يخرج نتيجة االختبار عن ” “Falseأو ”“True ولكي يحدث هذا يعد االختبار مقارنة بين قيمتين وذلك باستخدام أدوات المقارنة وهي : أكبر من (>) ،أصغر من (<) ،أكبر منها أو تساويها (=>) ،أصغر منها أو تساويها (=<) ،تساويها (=) مثال على :If statement M = 25 N = 12 If ( M >= N ) Then Statement 1 Else Statement 2 End If Statement 3 في المثال السابق سوف ينتج عنه تنفيذ الجملة statement1وتتبعها الجملة satement3 وذلك للتالي األوامر • التكرار : Iterations يستخدم التكرار في البرامج إذا أردنا أن يتم تكرار تنفيذ أمر معين (أو مجموعة من األوامر) عدد محدد من المرات أو إلى تحقيق شرط معين. ويوضح الشكل التالي جزء من خريطة تدفق حيث ( )Sumهو مجموع أول 100رقم طبيعي )N( ،هو عدد األرقام المناظر لخريطة التدفقPseudocode الـ السابقة 1- Initialize the sum: Sum = 0 2- Initialize the number of terms N: N=0 3- Increment the number of terms N 4- Add the new term to Sum: Sum = Sum + N 5- If (N = 100 ) Then Go to step 6 Else Perform steps 3 through step 4 until N = 100 End If 6- Stop Processing مزايا وعيوب السودو كود Advantages & disadvantages of Pseudocode مزاياه: • • • • سهل الفهم Simple ال يستعمل رموزاً خاصة No special symbols ال يستعمل قواعد خاصة No specific syntax من السهل تحويله إلى برنامج باستخدام إحدى لغات البرمجة Easy to translate to High-Level Language عيوبه: قد يكون طويالً بعض الشئ في حالة المسائل المعقدة It can be quite lengthy for complex problems. أمثلة على السودو كود المثال األول اكتب سودوكود إليجاد الرقم األكبر من بين 3أرقام هي A,B,C Write a pseudocode to find the largest of three numbers A, B, and C. المثال الثاني ثم كتابة،اكتب سودوكود لقراءة عمري هاني وهشام .اسم أكبرهما Write a pseudocode to read the ages of Hany and Hesham , then it prints the name of the elder. 1- Input Hany’s age and Hesham’s age 2- If Hany’s age > Hesham’s age Then Print “Hany is elder” Else If Hany’s age = Hesham’s age Then Print “Both is equal” Else Print “Hesham is elder” End If End If 3- Stop processing المثال الثالث اكتب سودوكود لقراءة درجة الحرارة بالفهرنهايت “ باستخدامC°” “ ثم تحويلها إلى درج مئويةF°” :الصيغة الرياضية Write a pseudocode that reads a temperature in Fahrenheit “°F” degrees and convert it into Celsius “°C” degrees, using the formula 1- Initialize Celsius Degree “C”: C=0 2- Input (Read) Fahrenheit Degree “F” 3- C = 5/9 * (F – 32) 4- Print the value of C 5- Stop processing المثال الرابع اكتب سودوكود لقراءة نصف قطر كرة ” “rثم حساب حجمها ” “Vومساحة سطحها ” “Aباستخادم الصيغ الرياضية: حيث إن: وفي حالة ما إذا كانت قيمة نصف القطر سالبة ،يجب أن يقوم البرنامج بطباعة رسالة تحذيرية تنص على أن قيمة نصف القطر يجب أن تكون موجبة ،ثم إنهاء البرنامج 1- Initialize Volume “V”: V=0 2- Initialize Area “A”: A=0 2- Input (Read) Radius “r” 3- If r < 0 Then Print “the radius should be positive” Else V = (4 / 3) * (22 / 7) * (r ^ 3) A = 4 * (22 / 7) * (r ^ 2) Print “The Volume of Ball is V” Print “The Area of Ball is A” End If 5- Stop Processing الفصل الرابع مقدمة عن البرمجة الشيئية Introduction to Object Oriented Programming (OOP) مقدمة لغات البرمجة متعددة ومتطورة ،وكانت في بدايتها مثل ( )C, BASIC, FORTRAN,COBOLتستخدم أسلوب تقليدي في البرمجة وهذا األسلوب يعتمد على التحديد الدقيق لترتيب تنفيذ األوامر وإجراء العمليات. في البرمجة الشيئية ( )OOPتنفيذ األوامر ال يتبع التسلسل المنطقي ،وذلك ألن كل فعل من المشغل ()User يتسبب في حدوث حدث معين ( )Eventوهذا بدوره يدفع برنامج معين أو جزء آخر من البرنامج إلى العمل علما ً بأن هذا الجزء مكتوب مسبقا ً ومرتبط بهذا الحدث البرمجة بالكائنات )The Object Model( )Object( • الكائن )Properties( • الخصائص )Methods( • الوسائل )Events( • األحداث الكائن ()Object • • • هو شئ له وجود ،والكائن الواحد يمكن أن يتكون من عدد من الكائنات ()Objects كل كائن له خصائص ( )Propertiesووسائل ( )Methodsوأحداث ( )Eventsوكل كائن ( )Objectيتبع فئة معينة ()Class أمثلة على بعض الكائنات: جهاز الكمبيوتر السيارة قلم الحبر فالسيارة مثالً كائن ( )Objectيتكون من كائنات ( )Objectsمثل الموتور وكذلك الموتور يتكون من كائنات أخرى. وفي البرمجة الشيئية يمكن اعتبار النوافذ ( )Windowsأمثلة للكائنات. الخصائص ()Properties • الخاصية ( :)Propertyتحدد شكل وسمة الكائن وكل كائن له مجموعة من الخصائص. • لكل كائن خصائص معينة تميزه وتحدد مالمحه مثل اسمه ،وحجمه ،ولونه ومكانه. • مثال:السيارة لها خصائص متعددة مثل :النوع، الماركة ،اللون ،عدد األبواب......إلخ. الكائن ()Object السيارة الخاصية ()Property قيمة الخاصية ()Value Name BMW1 Color Red Doors 4 في بعض األحيان قد يحتاج الشخص إلى معرفة إحدى خصائص الكائن (قيمة الخاصية) أو تغيير قيمة الخاصية فمثالً لتغيير خاصية لون السيارة التي بأعلى إلى اللون األزرق فنقولها هكذا: السيارة BMW1نريد تغيير لونها ( )Colorإلى األزرق ()Blue ويتم ذلك برمجيا بالصورة التالية: ObjectName.Property = Value BMW1.Color = Blue ومعنى السطر السابق هو أن الكائن الذي اسمه ( )BMW1نريد تغيير خاصية الـ ( )Colorله ونجعل قيمتها (.)Blue الوسائل ()Methods • الوسائل ( :)Methodsهي الوظائف واألفعال التي تكون مصاحبة للكائن (.)Object • الوسائل ( :)Methodsهي وصف لسلوك معين مصاحب للكائن ،أي هي أفعال محددة مسبقا ً لكل كائن. • مثال :سيارة ()ObjectName( BMW1 )Object لونها أحمر ( )Propertyوتسير في الشارع (.)Method • ويتم تنفيذ الوسيلة عن طريق مناداة الوسيلة ،ويتم ذلك برمجيا ً كالتالي: )(ObjectName.Method )(BMW1.Move األحداث ()Events • الحدث ( :)Eventهو عبارة عن الفعل الذي يقع على الكائن ويستجيب له. • كل كائن ( )Objectله أحداث معينة ( )Eventsتقع عليه ويستجيب لها ،حيث يمكن للمبرمج وضع مجموعة معينة من األوامر التي يتم تنفيذها عند وقوع حدث معين. • مثال :إنسان يمشي في الشارع اسمه أحمد وأمطرت السماء عليه بغزارة فأسرع لتفادي األمطار وارتدى مالبس ثقيلة. الخاصية ( :)Propertyاالسم الكائن ( :)Objectإنسان الحدث ( :)Eventسقوط األمطار قيمة الخاصية ( :)Valueأحمد الوسائل ( :)Methodsيمشي ،يسرع ،يرتدي فسقوط األمطار يمثل حدث ( )Eventواستجابة هذا الكائن (اإلنسان) للحدث بشكل معين مثل اإلسراع لتفادي األمطار وارتداء مالبس ثقيلة هي عبارة عن وسائل (.)Methods • مثال :عند فتح ملف نصي والتعديل فيه وعند الضغط على عالمة اإلغالق (×) فإن صندوق الحوار يظهر للتأكد منك على حفظ الملف أو عدم الحفظ أو إلغاء األمر ماذا حدث؟! عند ضغطك على اإلغالق فإنك بذلك قمت بتشغيل حدث إغالق الملف فوجد تغيير في الملف ولم يحفظ بعد واستجابة لهذا الحدث تم تنفيذ وسيلة عرض صندوق الحوار التالي: • وفي لغة الـ Visual Basicتظهر األحداث بوضوح ،فمثالً النموذج ( )Formلها أحداث كثيرة تقع عليها من غلق النموذج ،حركة الماوس على النموذج.......إلخ • مقارنة بين النموذج ( )Form1وجهاز الكاسيت (: )Cassette وجه المقارنة خصائص Properties وسائل Methods أحداث Events حجم Size لون Color مستوى الصوت Volume تضخيم الصوت Base فتح )(Open إغالق )(Close تشغيل )(Play إيقاف )(Stop الضغط بالفأرة Click صوت الموسيقي Play Music الفئة أو التصنيف ()Class • الفئة ( :)Classهي عبارة عن قالب أو مخطط يتم منه إنشاء كائن معين ،وهو يمثل جميع الخصائص والوظائف التي سوف يحتويها الكائن بعد ذلك. • أما الكائن ( )Objectفهو يمثل وحدة مستقلة تم إنشاؤها من الفئة ( )Classوهي التي تستخدم فعالً ألداء الوظائف المختلفة للفئة (.)Class مثال • إذا أردت أن تبني منزالً فإنك تطلب أوالً من المهندس عمل رسم هندسي (قالب أو نموذج) للمنزل الذي تريده وعندما تريد أن تسكن فإنك تسكن المنزل الحقيقي المبني وليس المنزل الذي على الرسم. • فالرسم الهندسي للمنزل يعتبر فئة أو تصنيف Class والمنزل الحقيقي المبني بالفعل يعتبر كائن من هذا التصنيف Objectوأنك إذا أردت بناء منزل آخر مثل منزلك فإنك تستعين بالـرسم الهندسي ( )Classمرة أخرى لتنفيذ المنزل ()Object المنزل بالفعل بعد بناءه الرسم الهندسي للمنزل • يحتوي التصنيف ( )Classعلى خصائص ()Properties ووظائف ( )Methodsوأحداث ( )Eventsوهي التي سوف يتضمنها بعد ذلك أي كائن سوف يتم إنشاءه من هذا التصنيف. • فعند استخدام قالب الرسم الهندسي لبناء منزل ممكن أن نبني منزالً لونه أبيض وآخر لونه أصفر وآخر لونه بني وهذا ما نسميه في البرمجة خصائص الكائن ( Object .)Properties House1.Color = Yellow مثال • صمم أحمد على ورقة شكالً لمكتبة ثم أرسلها إلى ورشة نجارة وقامت الورشة بتصنيعها من الخشب والزجاج وبعض األدوات األخرى. • أكمل مستخدما ً الكلمات اآلتية لجعل الجملة صحيحة: Class – Event – Property - Object • ما قام أحمد بتصميمه يعتبر Class .............. Object ........ • أما المكتبة التي قامت الورشة بإنتاجها تعتبر..... Property • طول المكتبة 2متر يعتبر ............... بعض المصطلحات الهامة في البرمجة الشيئية •مفهوم التغليف ()Encapsulation •مفهوم التوريث ()Inheritance مفهوم التغليف ()Encapsulation • التغليف :يعني إخفاء بيانات داخل الكائن أو التصنيف بحيث ال يتم الوصول إليها إال بصالحيات معينة. • أمثلة: – جهاز الهائتف المحمول الذي نستخدمه ال نعرف تفاصيل عمله ،ومع ذلك فنحن نستخدمه ونتعامل معه في حدود المسموح لنا ،وهو بذلك يمثل مفهوم التغليف من حيث عدم ظهور المعلومات الداخلية للهاتف ....وهكذا. • وكذلك في جهاز الكمبيوتر عند إخفاء الملفات الهامة لعدم العبث بها أو حذفها عن طريق الخطأ. • أما في البرمجة الشيئية يمكنك إنشاء زر Button وبالتالي يمكنك تعديل بعض خواصه مثل لونه واسمه ونصه ،..ولكن ال يمكن إضافة خواص جديدة له. مفهوم التوريث ()Inheritance • التوريث :يقصد به أن تصنيف ( )Classمعين ( )Derivedيرث ( )Inheritخصائص ووظائف تصنيف آخر ( )Baseوهذا التصنيف الجديد يكون لديه جميع خصائص التصنيف األساسي باإلضافة إلى خصائص اإلضافية. • أمثلة: – هب أنك مهندس معماري وطلب أحد األشخاص منك رسم هندسي لفيال وقد أعجب التصميم صاحب هذا الشخص وطلب منك تصميم فيال مثلها مع إضافة حمام سباحة في سطح الفيال، ماذا كنت ستفعل؟ • الذي سوف تفعله هو أنك تأخذ نسخة من نفس الرسم الهندسي للفيال ثم تضيف إلى الرسم حمام السباحة في السطح كمثال. • فيكون الرسم الهندسي األول للفيال يمثل ( )Base Classأو ( )Parent Classوالرسم الهندسي الثاني يمثل ( )Derived Classأو ()Child Class • الغرض من التغليف :Encapsulation الحفاظ على بيانات التصنيف وحمايتها و التركيز فقط على ما يراد استخدامه فعالً. • الغرض من التوريث :Inheritance هو إعادة استعمال ما تم تصميمه من فئات ()Classes والتعديل فيها حسب الحاجة بدالً من إعادة كتابة الفئة من جديد ،وهذا من أهم مميزات البرمجة الشيئية.