0% found this document useful (0 votes)
1K views47 pages

Pseudo Code

يقدم المستند مقدمة عن تقنية البرمجة الشيئية. يناقش المستند فوائد البرمجة الشيئية مقارنة بالبرمجة التقليدية، مع التركيز على مفاهيم مثل الكائنات والصفوف والوراثة.

Uploaded by

hmasry
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views47 pages

Pseudo Code

يقدم المستند مقدمة عن تقنية البرمجة الشيئية. يناقش المستند فوائد البرمجة الشيئية مقارنة بالبرمجة التقليدية، مع التركيز على مفاهيم مثل الكائنات والصفوف والوراثة.

Uploaded by

hmasry
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 47

‫المحاضرة الثانية‬

‫الفصل الثالث‬
‫سودوكود (‪)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‬تحدد شكل وسمة الكائن‬
‫وكل كائن له مجموعة من الخصائص‪.‬‬
‫• لكل كائن خصائص معينة تميزه وتحدد مالمحه مثل‬
‫اسمه‪ ،‬وحجمه‪ ،‬ولونه ومكانه‪.‬‬
‫• مثال‪:‬السيارة لها خصائص متعددة مثل‪ :‬النوع‪،‬‬
‫الماركة‪ ،‬اللون‪ ،‬عدد األبواب‪......‬إلخ‪.‬‬
‫قيمة الخاصية‬ ‫الخاصية‬ ‫الكائن‬
‫(‪)Value‬‬ ‫(‪)Property‬‬ ‫(‪)Object‬‬
‫‪BMW1‬‬ ‫‪Name‬‬
‫السيارة‬
‫‪Red‬‬ ‫‪Color‬‬
‫‪4‬‬ ‫‪Doors‬‬

‫في بعض األحيان قد يحتاج الشخص إلى معرفة إحدى خصائص‬


‫الكائن (قيمة الخاصية) أو تغيير قيمة الخاصية فمثالً لتغيير خاصية‬
‫لون السيارة التي بأعلى إلى اللون األزرق فنقولها هكذا‪:‬‬
‫السيارة ‪ 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‬‬

‫وجه المقارنة‬

‫مستوى الصوت ‪Volume‬‬ ‫حجم ‪Size‬‬ ‫خصائص‬


‫تضخيم الصوت ‪Base‬‬ ‫لون ‪Color‬‬ ‫‪Properties‬‬
‫تشغيل )(‪Play‬‬ ‫فتح )(‪Open‬‬ ‫وسائل ‪Methods‬‬
‫إيقاف )(‪Stop‬‬ ‫إغالق )(‪Close‬‬
‫صوت الموسيقي ‪Play Music‬‬ ‫الضغط بالفأرة ‪Click‬‬ ‫أحداث ‪Events‬‬
‫الفئة أو التصنيف (‪)Class‬‬
‫• الفئة (‪ :)Class‬هي عبارة عن قالب أو مخطط يتم‬
‫منه إنشاء كائن معين‪ ،‬وهو يمثل جميع الخصائص‬
‫والوظائف التي سوف يحتويها الكائن بعد ذلك‪.‬‬
‫• أما الكائن (‪ )Object‬فهو يمثل وحدة مستقلة تم‬
‫إنشاؤها من الفئة (‪ )Class‬وهي التي تستخدم فعالً‬
‫ألداء الوظائف المختلفة للفئة (‪.)Class‬‬
‫مثال‬
‫• إذا أردت أن تبني منزالً فإنك تطلب أوالً من المهندس عمل‬
‫رسم هندسي (قالب أو نموذج) للمنزل الذي تريده وعندما‬
‫تريد أن تسكن فإنك تسكن المنزل الحقيقي المبني وليس‬
‫المنزل الذي على الرسم‪.‬‬
‫• فالرسم الهندسي للمنزل يعتبر فئة أو تصنيف ‪Class‬‬
‫والمنزل الحقيقي المبني بالفعل يعتبر كائن من هذا التصنيف‬
‫‪ Object‬وأنك إذا أردت بناء منزل آخر مثل منزلك فإنك‬
‫تستعين بالـرسم الهندسي (‪ )Class‬مرة أخرى لتنفيذ‬
‫المنزل (‪)Object‬‬
‫المنزل بالفعل بعد بناءه‬

‫الرسم الهندسي للمنزل‬


‫• يحتوي التصنيف (‪ )Class‬على خصائص (‪)Properties‬‬
‫ووظائف (‪ )Methods‬وأحداث (‪ )Events‬وهي التي‬
‫سوف يتضمنها بعد ذلك أي كائن سوف يتم إنشاءه من هذا‬
‫التصنيف‪.‬‬
‫• فعند استخدام قالب الرسم الهندسي لبناء منزل ممكن أن نبني‬
‫منزالً لونه أبيض وآخر لونه أصفر وآخر لونه بني وهذا ما‬
‫نسميه في البرمجة خصائص الكائن ( ‪Object‬‬
‫‪.)Properties‬‬
‫‪House1.Color = Yellow‬‬
‫مثال‬
‫• صمم أحمد على ورقة شكالً لمكتبة ثم أرسلها إلى ورشة‬
‫نجارة وقامت الورشة بتصنيعها من الخشب والزجاج‬
‫وبعض األدوات األخرى‪.‬‬
‫• أكمل مستخدما ً الكلمات اآلتية لجعل الجملة صحيحة‪:‬‬
‫‪Class – Event – Property - Object‬‬
‫• ما قام أحمد بتصميمه يعتبر ‪Class‬‬
‫‪..............‬‬
‫‪Object‬‬
‫‪........‬‬‫• أما المكتبة التي قامت الورشة بإنتاجها تعتبر‪.....‬‬
‫• طول المكتبة ‪ 2‬متر يعتبر ‪...............‬‬
‫‪Property‬‬
‫بعض المصطلحات الهامة في البرمجة‬
‫الشيئية‬

‫•مفهوم التغليف (‪)Encapsulation‬‬


‫•مفهوم التوريث (‪)Inheritance‬‬
‫مفهوم التغليف (‪)Encapsulation‬‬
‫• التغليف‪ :‬يعني إخفاء بيانات داخل الكائن أو التصنيف‬
‫بحيث ال يتم الوصول إليها إال بصالحيات معينة‪.‬‬
‫• أمثلة‪:‬‬
‫– جهاز الهائتف المحمول الذي نستخدمه ال نعرف تفاصيل‬
‫عمله‪ ،‬ومع ذلك فنحن نستخدمه ونتعامل معه في حدود‬
‫المسموح لنا‪ ،‬وهو بذلك يمثل مفهوم التغليف من حيث‬
‫عدم ظهور المعلومات الداخلية للهاتف‪ ....‬وهكذا‪.‬‬
‫• وكذلك في جهاز الكمبيوتر عند إخفاء الملفات الهامة‬
‫لعدم العبث بها أو حذفها عن طريق الخطأ‪.‬‬
‫• أما في البرمجة الشيئية يمكنك إنشاء زر ‪Button‬‬
‫وبالتالي يمكنك تعديل بعض خواصه مثل لونه واسمه‬
‫ونصه‪ ،..‬ولكن ال يمكن إضافة خواص جديدة له‪.‬‬
‫مفهوم التوريث (‪)Inheritance‬‬
‫• التوريث‪ :‬يقصد به أن تصنيف (‪ )Class‬معين‬
‫(‪ )Derived‬يرث (‪ )Inherit‬خصائص ووظائف‬
‫تصنيف آخر (‪ )Base‬وهذا التصنيف الجديد يكون‬
‫لديه جميع خصائص التصنيف األساسي باإلضافة إلى‬
‫خصائص اإلضافية‪.‬‬
‫• أمثلة‪:‬‬
‫– هب أنك مهندس معماري وطلب أحد األشخاص منك رسم‬
‫هندسي لفيال وقد أعجب التصميم صاحب هذا الشخص وطلب‬
‫منك تصميم فيال مثلها مع إضافة حمام سباحة في سطح الفيال‪،‬‬
‫ماذا كنت ستفعل؟‬
‫• الذي سوف تفعله هو أنك تأخذ نسخة من نفس الرسم‬
‫الهندسي للفيال ثم تضيف إلى الرسم حمام السباحة في السطح‬
‫كمثال‪.‬‬
‫• فيكون الرسم الهندسي األول للفيال يمثل (‪ )Base Class‬أو‬
‫(‪ )Parent Class‬والرسم الهندسي الثاني يمثل‬
‫(‪ )Derived Class‬أو (‪)Child Class‬‬
‫• الغرض من التغليف ‪:Encapsulation‬‬
‫الحفاظ على بيانات التصنيف وحمايتها و التركيز فقط‬
‫على ما يراد استخدامه فعالً‪.‬‬
‫• الغرض من التوريث ‪:Inheritance‬‬
‫هو إعادة استعمال ما تم تصميمه من فئات (‪)Classes‬‬
‫والتعديل فيها حسب الحاجة بدالً من إعادة كتابة الفئة‬
‫من جديد‪ ،‬وهذا من أهم مميزات البرمجة الشيئية‪.‬‬

You might also like