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
والتعديل فيها حسب الحاجة بدالً من إعادة كتابة الفئة
من جديد ،وهذا من أهم مميزات البرمجة الشيئية.