Professional Documents
Culture Documents
Algorithms Final
Algorithms Final
2017- 2016
أهـداف المـادة-:
العـاااااااااااامـاااااااااااة -:تعريف الطالب بماهية برنامج الحاسببببب والدوالت التا تسببببالت حا حلم وحة المابببب ة و تابة
الخوارزميات ومراحة تطوير البرنامج والتعرف ل ى الروتينات والتعرف ل ى أسببببببب وب ت بببببببميم
الوحتات البرمجية وبناء هرمية الوحتات وتدسيم البرنامج إلى وحتات.
المفردات النظرية
المفردات األسبوع
مبادئ أولية عن البرمجة/تعريف البرنامج/لغات البرمجة(/لغات البرمجة العليا High األول
level languageولغات البرمجة الدنيا -)low level languageتعريف برنامج
المستخدم (-)User programالبرامج التطبيقية (-)Application programs
برامجيات المنظومة ()Operating system
أنواع البيانات والمتغيرات المستخدمة في لغات البرمجة وتعريفها في البرنامج /الثوابت الثالث
والمتغيرات/Constants &variableالحرفية Stringوالرقمية Numeric
السادس والسابع المخططات االنسيابية المتفرعة (-)Branched flow chartالمخططات االنسيابية ذات
الحلقات ((Loop flow chart
كتابة البرنامج ,التنفيذ وإيجاد األخطاء ()Implemention & debugge الحادي عشر
دورة حياة العملية (البرنامج)داخل الحاسوب ( )Process life cycleأوال/االستعداد السادس عشر
(/)Readyثانيا/االنتظار()waitingثالثا التنفيذ ()Runningرابعا
االنتهاء((Complete
مقدمة ألسلوب البرمجة المهيكلة /التراكيب المستخدمة في البرمجة المهيكلة التاسع عشر
الثامن والعشرون األسلوب المتبع في بناء هرمية الوحدات (أوال /طريقة المجرى الرئيسي/والمسار
الفرعي ثانيا /طريقة هرمية –الطبقات)
أسس تقسيم البرنامج إلى وحدات /الفوائد الناجمة عن استخدام أسلوب تصميم التاسع
الوحدات /حجم الوحدة البرمجية والعشرون
-1مالمقصود بالبرنامج؟
-2ماهي البرمجة ،وما هي انواعها؟
-3مالمقصود بالبرامجيات؟
هي عملية كتابة ،اختبار ،تصحيح لألخطاء وتطوير للشيفرة المصدرية لبرنامج حاسوبي يقوم بها
اإلنسان ،تهدف البرمجة إلى إنشاء برامج تقوم بتطبيق وتنفيذ خوارزميات لها سلوك معين بمعنى
أن لها وظيفة محددة مسبقا ومتوقعة النتائج .تتم هذه العملية باستخدام إحدى لغات البرمجة .الهدف
من البرمجة هو إنشاء برنامج حيث ينفذ عمليات محددة أو يظهر سلوك مطلوب محدد .بشكل عام
البرمجة عملية تستلزم معرفة في مجاالت مختلفة منها معرفة بالرياضيات والمنطق
والخوارزميات.
يعرف على انه سلسلة من الخطوات المترابطة منطقيا والمكتوب طبقا لقواعد لغة برمجة معينة
بحيث يمكن تنفيذه في حاسوب له مترجم لتلك اللغة ،ان كل خطوة في البرنامج يجب ان تتوائم
وقواعدية تلك اللغة بحيث أي خطأ في القواعد يؤدي الى خطأ في التنفيذ أو ايقاف التنفيذ طالما
الخطأ موجود.
مثال:
في لغة Basic and Cاشارة المساواة هي =
في لغة Pascalهي =:
في لغة APLهي
فيجب كتابة صيغة االيعاز بشكل صحيح وتصحيح اخطاء البرنامج وبهذا يتم تنفيذ البرنامج واال
فانه سيتوقف عن التنفيذ.
لغات الربجمة ( لغات الربجمة العليا والدنيا) High and Low Languages
ان مة لغة Languageها طريدة االت اة والتفاهم بين األاخاص لندة المع ومة الى حالة
الحاسوب وها الطريدة التا يفلم بلا الحاسوب ط ب اإلنسان .لذلك نجت حا حياتنا مجمولة
م ط حات و مات يخت ف استختاملا حسب الحاجة .لغات البرمجة المخت فة تتمتع بلذه الخا ية
أيضا .حلناك ال ثير من ال غات البرمجية الموجوتة وهذه ال غات تخت ف من ناحية لم لا وهتحلا ول ن
حا النلاية ة هذه ال غات تترجم إلى لغة اآللة 0 Machine Languageو.1
لذلك يجب ل ى المبرمج أن ي ون م ما ببعض لغات البرمجة وأن يعرف ما ها ال غة المناسبة لتطبيق
هذا البرنامج .لغة البرمجة الوحيتة التا يفلملا الحاسوب ويستطيع أن يتعامة معلا ها لغة اآللة-
.language- machine
حا البتاية لمة المبرمجون ل ى تح ية ايفرة الحاسوب –machine code-والتعامة معلا
با لا الجامت وغير المفلوم وهو ( .)0،1ول ن هذه العم ية معدتة جتا وي عب التعامة معلا لعتم
حلملا الواضح ل بار ولغموضلا لذلك تم ابت ار لغات راقية تعمة وسيط بين لغة اإلنسان ولغة اآللة
وها لغة التجميع Assemblyثم تطورت ل غات لالية المستوى مثة لغة Cولغة .Basicثم
ة يتم تاغية البرامج الم توبة بلذه ال غات لن طريق أحت البرامج المتخ
مثة المترجم Compilerوالمفسر ،Interpreterهذه البرامج تعمة ل ى ترجمة أسطر لغة
البرمجة إلى لغة الحاسوب مما يسلة ل ى الحاسوب تنفيذ هذه األوامر وإخراج نتائج التنفيذ.
Example:
ال غات االجرائية Procedural Languageمثة الفورتران وال وبوة ولغة البس اة.
لغات االنحياز ل ما الت Problem Oriented Languageوتمث لا لغات البرمجة الايئية
Object Oriented Languageوال غات الطبيعية Natural Languageوهى تعتمت ل ى
استختام الدوالت العاتية ل غة المستفيت.
يم ن تعريف اة Programل ى أنه "مجمولة من التع يمات واألوامر Instruction and
Commandsالتا توضح ل حاسب تس سة الخطوات التا ينبغا الديام بلا ألتاء ملام معينة لحة
الما ة المطروحة واستخراج النتائج .ويخزن البرنامج حا الذا رة الرئيسية ل حاسب Main
)Memory(M.Mلتوجله إلنجاز العم يات المط وبة وتم نه أيضا من إتارة ومراقبة وتنظيم
م وناته الماتية لتحديق الملمة المط وبة .
وتتوحر هذه البرامج لاتة ل ى اسطوانات متمجة CDأو أقراص DVDأو حتى أحيانا ً ل ى أقراص
قاب ة لالزالة ) . Removable disk(USBما إن هناك تاابه إلى حت م حوظ بين ثير من
ة البرامج ،حع ا سبية المثاة ،يوجت لارات البرمجيات (التا يم ن االختيار حيما بينلا) والمتخ
حا تحرير ال ور ،معالجة األحالم المتحر ة ،البرامج الخا ة بت فح الاب ة العن بوتية (الويب)
و ذلك ال ثير منلا لتاغية الفيتيو...و ة ت ك البرمجيات متاابلة إلا حت بير حا الوظائف والملام
التا تستطيع الديام بلا.
ها مجمولات البرامج التا تعت خ ي ا لحة ما ة أو ماا ة معينة يرغب المستفيت حا
استختام الحاسب حا ح لا .ت مم وت تب لاتة بواسطة المستفيت Userأو الح وة ل يلا من ذوي
ة او ار ات ت ميم البرامجيات. الخبرة المتخ
او ما يسمى ببرنامج الدياتة وهو لبارة لن برنامج تنتجه الار ة الم نعة ل م ون الماتي ،وير ب
حا الحاسب ليتيح له حر ة التعرف ل ى وجوته و التعامة مع م ون ماتي معين Hardware
ول ة جزءمن الم ونات الماتية برنامج تعريف خاص به ،مثال بطاقة الفيتيو للا برنامج تعريف
خاص بلا و ذلك الطابعات وغيرها.
برمجيات الحاسب
تندسم برمجيات الحاسب إلا قسمين أساسيين ،بالنسبة ل دسم األوة حيط ق ل يه برمجيات النظم والذي
يندسم بتوره إلا برمجيات نظم التاغية و مترجمات ال غات وبرمجيات الختمة ،بالنسبة ل دسم الثانا
حيتع ق ببرمجيات التطبيدات والتا من أبرز أمث تلا برامج معالجة الن وص وبرامج الجتاوة
الحسابية وبرامج قوالت البيانات ......وحيما ي ا نتناوة معالجة ة قسم من هذه األقسام.
حاول االجابة عن االسئلة االتية اذا كانت اجابتك اقل من %75يرجى اعادة قراءة المحاضرة.
قبة البتء بت ميم خوارزمية ومخطط انسيابا للا البت من حلم المسألة وهذا يتط ب قراءتلا وتراستلا بتمعن،
حيث ال يم ن حة مسألة أو محاولة ح لا وها غير مفلومة با ة امة ،وبذلك سيؤتي ح لا بتون استيعاب
الى نتائج خاطئة وربما ناق ة او نتائج لتيمة الفائتة؟ ال توجت نتائج.
حيحة. وبذلك يجب قراءة امسألة اوال وثانيا وثالثا حتى نفلملا لت ميم خوارزمية
-1تحديد النتائج
حا حالة حلم المسألة يتم تحتيت اللتف من ح لا ،ويفترض تحتيت النتائج التا تح ة ل يلا ويط ق ل يلا (
بالمخرجات).
-2تحديد المعطيات
من الطبيعا لنت ت ميم خوارزمية الح وة ل ى المخرجات ،سواء قمنا بالحة بانفسنا أو قام به الحاسب
وال يم ن تحدق ذلك بفراغ وانما يتوجب توحير المع ومات (االرقام) التا تحتاجلا المسألة مسبدا.
ومن الملم تحتيت طبيعة هذه المع ومات ول يلا سيعتمت اس وب وضع طريدة الحة وتسمى هذه المعطيات
( بالمتخالت).
-3طريقة الحل
بعت معرحة المعطيات ( تحتيتها) لمعرحة النتائج المط وبة (المخرجات) تأتا مرح ة ملمة وها التو ة
الى طريدة مناسبة لحساب النتائج المط وبة وهذا يعنا وضع خطوات مناسبة ل حة بااللتمات ل ى
المعطيات و وال الى النتائج.
لتوضيح ذلك-:
Example 1:
Calculate X value from the function below:
X+y+3=y
X=y^2+1
Solution:
طريدة الحة:
Example 2:
احسب راتب منتسب ما اذا علمت ان:
وهناك امثلة كثيرة تم توضيحها وحلها داخل الدرس وضحنا فيها كيفية تحديد
وتحليل وحل المشكلة اضافة الى كيفية تعريف المتغيرات الالزمة للحل.
حاول االجابة عن االسئلة االتية اذا كانت اجابتك اقل من %75يرجى اعادة قراءة المحاضرة.
-1لنت ت ميم خوارزمية لما ة ما يجب (حلم الما ة ،الديام بوضع خطة لح لا ،ح لا حوراً)
-2حا حالة حلم المسألة جيتا يتم تحتيت (الحة ،اللتف من الحة ،المتغيرات)
-3اوجد معطيات ومخرجات والعمليات من المعادالت االتية:
a) Y=b/9
b) A=PI/3*r^5
-1هل تعرف شيئا ً عن :الثابت الرقمي ،المتغير ،البرنامج ،لغة البرمجة ،المصفوفة؟
وتعريفها يف الربنامج:
االنواع االساسية
االنواع االضافية:
حيح موجب طوية اليحمة ااارة حجمه 4بايت unsigned long: لتت
حيح موجب طوية اليحمة ااارة حجمه 8بايت unsigned long long: لتت
لتت لاري موجب طوية اليحمة ااارة حجمه 8بايت long double:
المصفوفات :ها لبارة لن حاوي تدوم بتخزين لتت من العنا ر من نفس النوع وبترتيب محتت,أي ها لبارة
لن خانات حا الذا رة متجاورة مع بعضلا العض ,وألجة الرجوع إلى خانة معينة ي فا ذ ر اسم الم فوحة مع
رقم الخانة ،اسم الم فوحة.
Example:
الثوابت والمتغيرات
الثوابت :هي قيم المعرفات التي ال تتغير خالل فترة تنفيذ البرنامج في الحاسب مثل النسبة الثابتة وهي حقيقة
غير متغيرة.
المتغير :قت تتعرض البيانات /المعرحات الى تغيرات مستمرة خالة مراحة تنفيذ البرنامج حع ى سبية المثاة حا
برنامج ايجات مجموع ارقام لتتية لدائمة حانه يخت ف باختالف قيمة التخة المدروءة حيث حا ة مرة يضاف رقم.
أي ها لبارة لن حاويات للا حجم معين ( ة نوع له حجم) تدوم بتخزين البيانات ،تعت من أساسيات البرمجة
واليم ن لبرنامج أن يعمة من تونلا ،تت ون من لتة انواع ل ة نوع حجم مخ ص له حا الذا رة اليم ن أن
يتجاوز هذا الحجم ,إال إذا ان يستختم أنواع تينامي ية تستختم معلا المؤارات.
اذا وجتنا ا ثر من لم ية حا اجراء واحت يتم التنفيذ من اليسار ل يمين بعت االنتلاء من االولويات
بعتما تعرحنا ل ى انواع البيانات الرقميه ..اما اذا قمنا بجمع قيمة intمع floatما الذي سيحتث؟.
سيتم التحوة ت دائيا َ الى قيمة من النوع floatحا النتيجه ..وذلك الن مجاله ا بر
اي اننا لن نستطيع تخزين النتيجه حا متغير من النوع . int
الثوابت
اذا ارتنا ان نضع قيمة حا متغير تون السماح بتغييرها حيما بعت ;final double PI = 3.14159
finalتعنا ان قيمة المتغير ثابته اليم ن تعتي لا..مناظره بين الثوابت (البتائيه ) Primitiveو
المرجعReference
primitive data types انواع البيانات الرقميه تتلى انواع البيانات البتائيه
ال ائنات Objectsتتلى انواع بيانات مرجعreference data types
مثال توضيحي
اما هنا اسنتنا قيمة حا المتغير numالذي سيعوت بالديمه الى الذا ره
;num = 3 -
ومن اسمه متغير ) ( Variableاي انه ما تمت ال تابه ل يه ..سيتم مسح الديمه السابده من الذا ره ..
وتتغير الى الديمه الجتيته
''z
''p
""Hello world
"?"How do you do
الكلمة المحجوزةconst
ل ثوابت لتة أنواع ,النوع األوة يعت نوع لاتي اائع االستختام:
اليم ن تغير قيمة الثابت إال لن الطريق الموارات ,واليم نك أيضا تعريف ثابت بتون اسنات قيمة له ,لذلك ينبغا
ل يك تعين قيمة الثابت من البتاية حدط.
التالا: بالنسبة لتغير قيمة الثابت لن طريق المؤارات ,تابع المثاة
حيحة ,وتدوم بنفس العمة.: الدالتة النحوية األخرى لـ const,ال الجم تين
المؤشرات الثابتة حا السطر التالا ,المؤار متغير (لنوان الذا رة) وقيمته ثابتة ,أي اليم ن تغير قيمته:
في الحالة األخيرة ،المؤشر ثابت وقيمته ثابتة ،أي اليمكن تغير االثنين:
الثوابت الرمزية
عناوين المتغيرات
يم نك إنااء ثوابت اليخ ص للا م ان حا الذا رة ،حالمترجم يدوم بالبحث لن اسم الثابت واستبتاله بالديمة
المذ ورة ،يعنا مجرت استبتاة حدط
#define PI 3.14159
'#define NEWLINE '\n
>#include <stdio.h
; #define oo
{ #define begin
} #define end
)(int t
begin
;)"printf("hello
end
)(int main
{
t() oo
int x = 1 oo
;return 0
}
ل ة متغير مخزن حا الذا رة لنوان ياير إلى الم ان الذي يوضع حيه ،ت من حائتة المؤارات حا سرلة التنفيذ
ولبناء حاويات تينامي ية يتتغير حجملا أثناء تنفيذ البرنامج ،أما بالنسبة ل مراجع حت من حائتتلا لنتما تمرر وسيط
لبر التواة ،إذا نا نريت أن نرسة وسيط ذات حجم بير مثة الم فوحات والنريت أن يرسة بديمته (نسخة جتيتة
من الوسيط) ندوم باستختم المراجع ،ل ى أية حاة المراجع ليست إال مؤارات ثابتة.
حاول االجابة عن االسئلة االتية اذا كانت اجابتك اقل من %75يرجى اعادة قراءة المحاضرة.
-1نستخدم المخطط االنسيابي لـ (النه يحتوي على اشكال متعددة ،يبين العالقة بين
االشكال ،لزيادة وضوح أي خوارزمية)
-2هناك عدة انواع من المخططات وهي 3( :انواع ،اكثر من ،3نوع واحد تندرج تحته
االنواع االخرى)
-3يتم رسم المخطط االنسيابي وذلك لغرض (وضوح المسألة ،ان يكون طريقة لالتصال،
لوصف المعالجة ،كل ما ذكر)
وهذه المخططات تسمى (المخططات االنسيابية) وتبنى بواسطة سلسلة من االشكال وكل شكل
يمثل وصفا لعملية معينة وتتصل هذه االشكال بواسطة خطوط اتجاهات تدفقية.
يمكن تعريف المخطط االنسيابي بأنه رسم تخطيطي للمنطق المستعمل في حل المسألة ،
ويتألف من مجموعه من األشكال والرموز الخاصة المرتبة حسب ترتيب معين تفرضه المسألة
ومرتبطة مع بعضها بخطوط مستقيمة .هذه األشكال والرموز متعارف عليها وتمثل أنواع
مختلفة من الفعاليات .يتم رسم المخطط االنسيابي للمسالة وذلك لعدة أسباب منها:
اتجاهات التتحق
Start
Enter
number a
Enter
number b
Sum=a+b
Print sum
end
مثال :أرسم المخطط االنسيابي لبرنامج يقوم بقراءة درجة الحرارة (بمقياس المئوي )C
وحساب قيمتها وطباعتها (بمقياس الكلفن ) Kو(بمقياس الفهرنهايت ) .) F
البداية
أقرا C
K=273.15+C
F= 1.8*C+32
أطبع K,F
النهاية
مثال :أرسم المخطط االنسيابي لبرنامج يقوم بفرز األعداد الزوجية عن األعداد الفردية
باالستفادة من القانون التالي:-
Y=X-2*INT(X/2)+1
IF Y=1 Then X is even number
مكونات .2توضيح
ما هي مكونات المخطط
المخطط أناقش الطلبة في مكوناته وباستخدام اللوحة أعرض االنسيابي؟ورقة عمل (
االنسيابي هذه المكونات عليها مع توضيح وظيفة كل منها. ).1
أنواع .4نذكر
المخطط أذكر للطلبة أنواع المخطط مع كتابتها على السبورة المخطط أنواع أذكر
االنسيابي وإعطاء نبذة بسيطة عن كل نوع. االنسيابي؟
حاول االجابة عن االسئلة االتية اذا كانت اجابتك اقل من %75يرجى اعادة قراءة المحاضرة.
-1هل يمكن استخدام انواع المخططات االنسيابية في مخطط انسيابي واحد ) نعم ،كال)
-2للمخطط االنسيابي البسيط خطوات مع دة تصل الى مخططات اخرى( .نعم ،كال)
Start
Enter
number a
Enter
number b
Print div
end
i=1
Amly=1
Amly=amly*i
i=i+1
i<=5
Print error
end
وها تستختم من اجة تمثية لمة البرامج ذات التتحق المع وم و التا يم ن حيلا التنبؤ بالخطوة التالية ل برنامج و
بالتالا حان البرامج المداتة باألحتاث ي عب التعبير لنلا باستختام المخططات التتحدية بسبب تعتت األحتاث التا
تغير حا مسار لمة البرنامج.
يستختم حا هذه المخططات رموز معينة تعبر ة منلا لن احت العم يات المم نة حا البرنامج.
Read
a,b
X=a+b
Print x
end
تمرين /2ارسم المخطط االنسيابي اليجاد مساحة أي مستطيل معلوم طوله وعرضه؟
begin
Read length,width
Area=length* width
Print Area
end
begin
Read x,y
Average= (x+y)/2
Print average
end
تمرين /4ارسم المخطط االنسيابي لجمع ثالث اعداد مع بيان هل سيكون المجموع اكثر من 500؟
begin
Sum= first+second+third
yes
end
تمرين /5ارسم المخطط االنسيابي لحساب قيمة x=a-bاذا كان a>bوإال فان ،y=a+b-cثم اطبع القيمة
الناتجة؟
begin
Read a,b,c
yes
If a>b X=a-b Print x
no
y=a+b-c
Print y
end
حاول االجابة عن االسئلة االتية اذا كانت اجابتك اقل من %75يرجى اعادة قراءة المحاضرة.
تمرين /6لديك عدد اختبره اذا كان اكبر من 40فاوجد مربعة واذا كان اقل فاوجد مكعبه؟
تمرين 30 /14عددا سالبا وموجبا ،ارسم المخطط االنسيابي لطباعة عدد االعداد السالبة وعدد االعداد
الموجبة؟
-1هل يمكن استخدام المخططات االنسيابية كوثي ة لكتابة خوارزمية (نعم ،كال).
-3الخوارزمية هي لغة يكتب ا ب ا المبرمج قبل البدء بكتابة البرنامج (نعم ،كال).
اخلوارزميات ALGORITHMS
مجمولة من الخطوات او العم يات تعطى ل حاسوب تؤتي بمجموللا الى حة الما ة ،حعنتما نح ة ل ى حة
لمسألة ما ،سواء انت بسيطة او معدتة ،ن ون قت انجزنا الخطوات التالية:
الحة /هناك اح ار لتيتة لتحديدلا ،منلا الذهاب اليه اخ يا او بواسطة رسالة الو االت اة لبر اللاتف ..الخ.
الحة /االح ار ثيرة حا هذا المثاة منلا ي حبك احت اال تقاء الى الم ان المخ ص لذلك ،ثم تنفيذ الخطة الثانية
بااراحه:
نالحظ حا ال المثالين وجوت خطة ،لذا يم ن ان ندوة ان أي نتيجة نريت الو وة اليلا يجب ان نم ك ح رة اوال،
ثم خطة ل و وة الى اللتف ،هذه الخطة تسمى الخوارزمية وها ماخوذة من لدب العالم الرياضا الخوارزما.
املتسلسلة Sequential
وها خوارزمية تحتوي ل ى خطوات متس س ة ال يم ن ان يؤتي تنفيذ أي منلا الى تفرع خارج الس س ة.
Step-1
Step-2
Step-n
:Ex
الحل:
الخوارزمية
البتاية -1
اقرأ الترجات والتا تمثة ))a1,a2,a3 -2
احسب المعتة اآلتاaverage= (a1+a2+a3)/3 : -3
اطبع قيمة المعتة وهو اة Average -4
النلاية -5
الشرطية Conditional
النوع 1-
النوع 2-
yes
yes
if خطوات
if خطوات 1-
No
No
خطوات 2-
Ex:
لتى طالب 3موات ،ا تب خوارزمية لحساب المعتة مع تابة مة "ناجح" حا حالة نجاحه و مة "راسب"
حا حالة رسوبه؟
الخوارزمية
-1البتاية
-2اقرأ الترجات ()a,b,c
-3احسب المعتة ولي ن averageما ي اaverage= (a+b+c)/3 :
املتكررة Repetition
في هذه الخوارزمية يتم تكرار تنفيذ مجموعة من الخطوات حسب الحالتين التاليتين:
No yes
مالحظة :يمكن استخدام جميع الخوارزميات بانواعها في خوارزمية واحدة اذ ان الهياكل تعالج اجزاء
الخوارزمية وال تقتصر على انواع محددة.
Ex:
لثالث مواد دراسية ضع خوارزمية الحتساب المعدل لمجموعة من الطلبة حيت تكتب كلمة ناجح او راسب؟
الخوارزمية
-1البداية
-2افرض ( n=0اجعل قيمة العداد لعدد الطلبة صفرا)
-3اقرأ ( nameاقرأ اسم الطالب)
-4بينما “ ”>< nameنفذ
حاول االجابة عن االسئلة االتية اذا كانت اجابتك اقل من %75يرجى اعادة قراءة المحاضرة.
-1اكتب خوارزمية لطبع اسم الب ومعدله.
-4يمكن كتابة الخوارزمية باالعتماد على (البرنامج ،المخطط االنسيابي ،الم ابلة الشخصية مع
صاحب المشكلة)
-5يجب على المبرمج كتابة الخوارزمية اوال قبل البدء باي اجراء اخر (نعم ،ال)
هناك مواصفات محددة يجب أن ُيحققها البرنامج حتى نقول أنه جيد وهي:
حيح :حال يجب أن يدوم البرنامج بطبالة ناتج ضرب رقمين مثالً بتة جمع رقمين. .1يُنفذ با ة
.2حعّاة :ند ت ب مة حعّاة أن البرنامج يجب أن يستغرق أقة وقت مم ن و حا بعض األحيان هناك أمور
أخرى هامة يجب أن ُتأخذ بعين اإللتبار (مثة استختام أقة قتر مم ن من ذا رة ال ومبيوتر) حتى
يُداة أن البرنامج حعاة.
.3من السلة قراءته و حلمه :حتى من قِبة اخص آخر غير ذلك الذي قام ب تابة البرنامج.
حة البرنامج و من أنه يدوم بالمط وب. .4من السلة حح ه و تتقيده :حالبت من التأ ت من
.5من السلة تعتي ه :حلناك تائما ً إ تارات جتيتة و نسخ معتلة من البرامج.
ان الح وة ل ى البرنامج ال حيح و الفعّاة يم ن تحديده باستختام الخوارزميات و بناء المعطيات المناسبة (و
هذا ما يميز المبرمجين المحترحين لن هواة البرمجة).
ال فات 5،4،3من فات البرنامج الجيت لم ت ن واضحة ل مخت ين حا البتايات حين ان ل م البرمجة حا الملت
غيراً ( ثيرون يعتدتون أنه ما زاة حا الملت و يدولون أن ل م برمجة ال ومبيوتر لم ينضج بعت) حدت ان إهتمام
أوائة المبرمجين من ب ل ى حة الما ة و انوا يستختمون ما يستختمه اآلن هواة المبرمجين مما يتلى
clever codingأو التتوين الذ ا ل برامج حيث ان يتم بلتف الح وة ل ى برنامج سريع و غير الحجم
تمج بعض التع يمات مع بعضلا البعض بطريدة ي عب قراءتلا أو حلملا أحيانا ً حتى من قبة من قام ب تابة
البرنامج إذا أرات بعت حترة من الزمن إلاتة قراءة البرنامج لسبب ما .و ل ن التجارب العم ية أثبتت أهمية هذه
ال فات.
لنأخذ ل ى سبية المثاة ما ة العام 2000الاليرة ناأت هذه الما ة نتيجة قيام أوائة المبرمجين بتسجية
الخانتين األخيرتين من التاريخ حدط بلتف إخت ار حجم الذا رة المط وبة و للم لذرهم حدت انت أسعار وسائة
التخزين األل ترونا غالية الثمن .إذاً حة هذه الما ة ي ون و ب ة بساطة بتعتية طريدة حفظ التاريخ حتى تدبة
الخانات األربعة و تعتية التع يمات التا تتعامة مع التاريخ .هذا حيح من الناحية النظرية و ل ن ال عوبة لم يا ً
ت من حا عوبة قراءة و ححص و تعتية البرامج التا تعانا من هذه الما ة و التا تمت تابتلا تون األخذ بعين
اإللتبار الدوالت السابدة.
حاول االجابة عن االسئلة االتية اذا كانت اجابتك اقل من %75يرجى اعادة قراءة المحاضرة.
-1اختبار البرنامج (لم ية توليت نماذج بيانية ،توليت نتائج)
-2تحتيت مواقع الخطأ ها مسؤولية ( )Debugging ،Coding ،Testing
-3تنفيذ البرنامج با ة حيح يعنا لتم وجوت اخطاء اثناء التنفيذ (نعم ،ال).
عند البدء بكتابة برنامج يجب اوال تحديد (المدخالت ،المتغيرات ،لغة البرنامج) -1
تفضل البرمجة الحديثة استخدام لغة (تستخدم واج ات ،ال تستخدم واج ات ،تخدم المشكلة) -2
االولوية في الحساب تعني (ترجيح برنامج على اخر ،تنفيا برنامج قبل خر ،ترجيح عملية -3
خانة نص text1
ضبط الخصائص
قبل
وضبط االتوات
بعد
كتابة التعليمات
تنفيذ البرنامج
بعت الح وة ل ى البرنامج اللتحا ،تتم تجربته ل تأ ت من حته منطديا ً وذلك باستختام لينة من المعطيات
االختبارية Test Dataحإذا ثبت حة طريدة الحة بمطابدة النتائج الخارجة من الحاسب مع النتائج التا تم
الح وة ل يلا يتويا ً ل ى سبية المثاة ،يم ن تنفيذ البرنامج ل ى المعطيات الحديدية.
حا ل م الحاسوب ،يعرّف الخطأ المنطقي ل ى أنه خطأ حا البرنامج يجع ه يعمة بطريدة غير حيحة ،و ل نه ال
يتوقف لن العمة با ة مفاجئ .الخطأ المنطدا ينتج لنه مخرجات غير مد وتة أو غير مرغوب بلا أو أي
س وك آخر ،رغم أنلا قت ال ت تاف حا حينلا.
الخطأ المنطدا يم ن أن يحتث حا ال نولا لغات البرمجة :المترجمة ) (compiledو المفسرة
(interpreted).ل ى ل س البرنامج الذي يحتوي ل ى خطأ قوالتي) ، (syntax errorحإن البرنامج الذي
يحتوي ل ى خطأ منطدا يعتبر برنامجا ً الحا ً طبدا ل غة البرمجة ،رغم أنه ال يعمة بالا ة المرغوب به .الطريدة
الوحيتة الست ااف األخطاء المنطدية هو استخراج ح وة خاطئة (أي تنفيذ البرنامج و تتبع بعض الخطوات التا
من المفترض أن تخرج نتائج معينة ثم ا تااف أنلا تخرج نتائج مغايرة).
اسباب شائعة
حيحة) أو خ ة يم ن أن يعوت الخطأ إلى غ طة حا تابة جم ة برمجية (معاتلة خاطئة أو غير
حا خوارزمية أو ربما أنه تم اخيار الخوارزمية الخطأ أو غير المناسبة ل حالة.
{
;return a + b / 2 (a + b) / 2 */ان يجب أن ت ون */
}
-األخطاء المنطدية ) (logical errorsوهو أخطر األخطاء ،وت من خطورة األخطاء المنطدية حا لتم
قترة المترجم ) (compilerل ى افلا .لذا حدت يرت بلا المبرمج تون ق ت و ينجح حا بناء برنامجه
بتون أي تحذير .
يبذة مترجم ال غات البرمجية ق ارى جلته ل اف لن مثة هذه األخطاء و التنبيه للا .و تنترج ال ثير
من تحذيراته ) (compiler warningsتحت هذا الموضوع .مثال ُ التحذير رقم C4700يظلر لينبلنا
حا لغة Cأو C++إلى أننا قت قرأنا قيمة من متغير غير مليأ ). (uninitialized
وتظلر لنتما ي ون التطبيق قيت االستختام .و ت ون معظم نتائج غير المتوقعة أو غير المرغوب حيلا
غالبًا حا االستجابة ل ى إجراءات المستختم .و ل ى سبية المثاة ،قت يتسبب المفتاح الم توب با ة غير
حيح أو تأثير خارجا آخر حا توقف التطبيق الخاص لن العمة ضمن المع مات المتوقعة أو يسبب
ذلك تماما ً .
-أخطاء وقت التاغية : Run Time Errorوها ت ك التا تظلر حدط بعت التحوية البرمجا ل تع يمات
البرمجية و تاغي لا .و تتضمن هذه التع يمات البرمجية التا قت تبتو حيحة من حيث لتم احتواءها ل ى
أخطاء حا بناء الجم ة ل ن لن يتم تنفيذها .و ل ى سبية المثاة ،قت ت تب خط من التع يمات البرمجية با ة
حيح لفتح م ف .و ل ن إذا ان الم ف تالفا ً ،التطبيق ال يم نه تنفيذ تالة Openو يتوقف لن التاغية .و
يم نك إ الح معظم أخطاء وقت التاغية لن طريق إلاتة تابة التع يمات البرمجية الخاطئة و ثم يعيت
التحوية البرمجا و يعيت التاغية.
-االخطاء المعنوية :Semantic Errorبعد طلب التنسيق تكتشف األخطاء النحوية إن وجدت ,وتصحيحها
يتم ابتداء من المحرّر ,وتتكرّر العملية حتّى تصحّح كلّها ,أما األخطاء المعنوية فتكتشف أثناء التنفيذ.
االختبارTesting
يعتبر إختبار البرامج من األجزاء الرئيسة في المشاريع البرمجية ،وهو يأخذ حيز كبير من الزمن ،لكن ميزته
أنه يمكن أن يقوم به غير المبرمجين .وينتج عن اإلختبارات معرفة المشاكل الفنية في البرامج إلصالحها ،مما ينتج
عنه نظام يُعتمد عليه .وكلما زاد اإلستثمار في اإلختبار وإصالح المشاكل كما زادت إعتمادية المنتج ،وخاصة في
المشاريع مفتوحة المصدر حيث يُساهم معظم المستخدمون في اإلختبار ،ويعتبر االختبار هو تجمع الكتل مع بعضها
ويختبر النظام للتأكد من موافقته لجدول الشروط والمواصفات ،وخاصة إذا كانت الكتل قد كتبت من قبل عدة أعضاء
في الفريق ،وهناك بعض األسباب التي تجعل البرامج ينتج عنها علل وتحتاج إلختبار هي:
إضافة ميزات أو أجزاء جديدة في البرامج ،حيث أن هذه الميزات الجديدة ربما تتسبب في بعض التغييرات في
البرنامج وينتج عنها سلوك غير متوقع.
تعديل بعض األجراءات لتحسينها مثالً ،ربما ينتج عنه تأثير غير متوقع على بعض اإلجراءات األخرى.
تغيير بيئة استخدام البرنامج ،مثالً تغيير أنظمة التشغيل أو إختالف هيكلية تطوير البرنامج أو التي تم اختباره فيها.
فعند التشغيل في بيئة مختلفة يُمكن أن تظهر مشكلة لم تكن تظهر في البيئات أو أنظمة التشغيل األخرى.
إدخال نوع جديد من البيانات ،أحيانا ً عند استخدام بيانات جديدة تظهر بعض المشاكل او التوقفات ،مثالً في التقارير
يحدث أحيانا ً تداخل البيانات بسبب زيادة طولها ،أو استخدام لغة أو خط مختلف.
أحيانا ً يقوم المبرمج بعمل عدة اختبارات دون أن تظهر له مشاكل ،لكن كتجربة ،إذا أردت أن تكتشف أكبر
عدد من االمشاكل ،قم بعرض البرنامج على مجموعة من المستخدمين أو الزمالء ،في هذه الحال تأكد من أنه سوف
تظهر لك مشكلة محرجة لم تمر علينا من قبل.
يختلف حجم االختبار باختالف حجم التغيير ،فكلما كانت اإلضافة أو التغيير في النظام كبير ،كلما كانت هُناك حاجة
إلجراء اختبار أكبر لوقت أطول.
ومن األساليب الفاعلة في عملية االختبار ،هي أن يقوم المبرمج نفسه باستخدام البرنامج الذي قام بتطويره إستخداما ً
حقيقياً .فإذا كان برنامج لتسجيل الواجبات والمهام مثالً فعليه استخدامه في حياته العملية باعتباره مستخدم حقيقي.
في هذه الحال كل المشاكل التي سوف تظهر يُمكن أن يقوم بمعالجتها مباشرة .وعند عمل إضافات يكون هو أول
من جرب هذه اإلضافات قبل تحديثها عند باقي المستخدمين .فأفضل له أن يكون هو ضحية األولى للمشاكل الناتجة
عن اإلضافات والميزات الجديدة من أن يكون الضحية مستخدميه وزبائنه.
الثوثيق Documentation
وهي م رحلة هامة من مراحل بناء النظام البرمجي حيث يتم توثيق البناء الداخلي للبرنامج؛ وذلك بغرض
الصيانة والتطوير .يفضل عادة أن يترافق التوثيق مع كل مرحلة من المراحل السابقة والالحقة ،وأن يكون هناك
فريق خاص يهتم بعملية التوثيق لجميع المشاكل والحلول التي يمكن أن تظهر أثناء بناء البرمجية .وبدون التوثيق
قد يصل المبرمج إلى مرحلة ال يعود بعدها قادراً على متابعة صيانتها وتطويرها؛ مما يزيد الكلفة المادية والزمنية
الخاصة بهذا البرنامج إلى حدود غير متوقعة ،أو بمعنى آخر الفشل في بناء برامج ذات جودة عالية ودورة حياة
طويلة .وهناك أكثر من طريقة للتوثيق:
-توثيق المبرمج وهو ممكن أن يكون بأضافة تعليقات داخل الشفرة البرمجية.
الصيانة Maintenance
ان هذه المرحلة هي المرحلة األطول في حياة النظام البرمجي لبقاء النظام قادراً على مواكبة التطورات
والمعدات الحديثة ،جزء من هذه المرحلة يكون في تصحيح األخطاء ،والجزء اآلخر يكون في التطوير وإضافة
تقنيات جديدة.
سؤال اختباري /حلل مشكله درس الخوارزميات بطريقة التصميم من االعلى الى االسفل
تعتبر طريقتا التصميم من أعلى ألسفل ،ومن أسفل ألعلى من اإلستراتيجيات التي تستخدم في معالجة
المعلومات وترتيب المعرفة وغالبا ما تتطلب استخدام البرمجيات ونظريات إنسانية وعلمية كذلك .ويمكن النظر
إلى هاتين الطريقتين عمليا كنظامي تفكير وتعليم .تستخدم طريقة التصميم من أعلى إلى أسفل في كثير من
الحاالت كمرادف لمصطلح التحليل أو تقسيم المشكلة إلى وحدات صغيرة بينما تستخدم طريقة التصميم من أسفل
إلى أعلى كمرادف لمفهوم التخليق أو االصطناع.
إن طريقة التصميم من أعلى ألسفل ( وتعرف أيضا بالتصميم المتدرج) هي أساسا عبارة عن تحليل النظام
بهدف اكتساب المعرفة بالنظم الفرعية التركيبية الخاصة به .تصاغ النظرة العامة للنظام في طريقة التصميم من
أعلى ألسفل بحيث تحدد وال تفصل أي أنظمة فرعية من المستوى األول .تتم بعد ذلك تنقية النظام الفرعي بتفصيل
أكبر وأحيانا في مستويات فرعية إضافية إلى أن يتم تقليص كامل المواصفات إلى العناصر األساسية .غالبا ما يتم
تحديد مواصفات نموذج التصميم من أعلى إلى أسفل بمساعدة "الصناديق السوداء" مما يساعد في تسهيل معالجتها.
ومع ذلك قد يفشل اختبار الصناديق السوداء في توضيح اآلليات األساسية لعمل هذه الطريقة أو في أن يكون مفصال
كفاية لتقييم صحة النموذج بشكل واقعي.
تعتبر هذه الطريقة أسلوبا برمجيا من حيث أنها عماد لغات البرمجة اإلجرائية التقليدية التي يبدأ فيها التصميم
عن طريق تحديد األجزاء المعقدة ومن ثم تقسيمها إلى أجزاء أصغر تباعا .إن التقنية المتبعة في كتابة البرنامج
باستخدام طرق التصميم من أعلى ألسفل هي كتابة إجراء يعمل على تسمية كل الوظائف الرئيسية التي يحتاجها.
يقوم فريق البرمجة فيما بعد باالطالع على متطلبات كل من هذه الوظائف ويتم تكرار هذه العملية .ستقوم هذه
اإلجراءات الفرعية المجزأة في النهاية بأداء األفعال بطريقة بسيطة جدا بحيث يمكن كتابة الشيفرة الخاصة بها
بسهولة وإيجاز .يكون البرنامج جاهزا الختباره عندما تتم برمجة مختلف الروتينات الفرعية الخاصة به .يمكن أن
يكون العمل في المستوى المنخفض مستقال عن طريق تعريف كيفية دمج التطبيق معا في المستوى األعلى .يمكن
ت عريف الواجهات بشكل أكثر وضوحا عن طريق تعريف التوقعات الخاصة بتكامل تجريدات المستوى المنخفض
مع تلك ذات المستوى األعلى.
السؤال االختباري /حلل مشكلتك الدراسية بطريق التصميم من االسفل الى االعلى -1
أما طريقة التصميم من األسفل ألعلى فهي عبارة عن دمج أجزاء األنظمة معا إلنشاء نظم أكثر ضخامة وبذا يتكون
نظام ناشئ هو عبارة عن تجميع لألنظمة الفرعية الخاصة باألنظمة األصلية .يتم في هذا التصميم تحديد العناصر
األساسية المنفردة للنظام أوال في تفصيل كبير ،من ثم ربطها معا لتكون أنظمة فرعية أكبر حجما يتم ربطها بدورها
مع بعضها على مستويات عدة أحيانا إلى أن يتم تشكيل نظام مكتمل عالي المستوى في النهاية.
في هذه الطريقة يتم تحديد عناصر القاعدة المنفردة للنظام في تفصيل كبير حيث يتم ربط هذه العناصر معا
لتكون أنظمة فرعية أكبر إلى أن يكتمل النظام .تشبه هذه الطريقة في عملها نموذج "البذرة" حيث تكون البدايات
صغيرة ولكنها تنمو لتصبح في النهاية أكثر تعقيدا واكتماال.
إن البرمجة كائنية التوجه هي نموذج برمجي يستخدم "الكائنات" لتصميم التطبيقات وبرامج الحاسوب .في الهندسة
الميكانيكية التي تحوي برمجيات مثل Pro/ENGINEERو Solidworksو Autodeskيكون بإمكان
المستخدمين الذين يتمتعون بروح االبتكار تصميم منتجات على شكل أجزاء ال تنتمي لكامل النظام ومن ثم إضافة
هذه القطع معا لتشكل تراكيب مختلفة ،ويسمي المهندسون هذه الطريقة بالتصميم جزئي القطعة .غير أن لطريقة
التص ميم هذه من أسفل ألعلى نقطة ضعف وحيدة وهي أن الحدس الجيد أمر ضروري لتقرير الوظيفة التي يجب
أن توفرها الوحدة .فإن كان النظام سيبنى من نظام قائم أصال فإن هذه الطريقة هي أكثر مالئمة بما أنها تبدأ من
وحدات موجودة أصال.
على كل فإن برنامج Pro/ENGINEERكما باقي برامج التصميم بالحاسوب CADيتوافر على احتمال القيام
بالتصميم من أعلى ألسفل باستخدام الطريقة المعروفة باسم الهياكل .وتوجد هياكل عامة تحوي معلومات عن
التخطيط الكامل للمنتج ويمكن أن ترث األجزاء الواجهات والعوامل من هذا التركيب العام .وكمثل األجزاء فإنه
يمكن وضع الهياكل في تسلسل هرمي وبذا يكون من الممكن بناء تخطيط كامل للمنتج قبل تصميم أجزائه.
-1السؤال االختباري /حلل مشكلتك الدراسية بطريق التصميم من االسفل الى االعلى
حنعنا به ها بناء البرنامج منذة لحظة وروت الف رة حا الذهن إلا خروج البرنامج ل عمية بة و ختمة ما
بعت البيع وهذا تعريدف مخت ر جتاً و إال حإن تورة الحياة ل نظام البرمجا طوي ة و تمر بمراحة مخت فة و لتيتة
ليخرج ل نور و ي ة حا أيتي العمالء و ما ذ رنا حا المداة السابق أنة ليست تابة األ وات و الافرات Coding
هو الندطة الرئيسة حا تورة الحياة ت ك بة مم ن أن ت ون أق لا و قتالً و مجلوتا
-1االستعداد Ready
وهو لم ية اتخاذ قرار البتأ حا برنامج معين ؟ وهذا يتم لسببين رئيسيين و هما:
-1الف رة ،حيبتأ البرنامج حا أالذهان بمجرت ح رة و بمجرت وضعلا ل ا الورق ت بح الف رة قيت التنفيذ.
-2احتياجات السوق ،و بح ر ت ك االحتياجات حتبتأ العدوة حا احذ أح ارها إلخراج البرنامج المط وب لست
ت ك االحتياجات.
و بمجرت وجوت ح رة البرنامج سواء انت من أي سبب حأننا نم ك الارارة األولى التا نظنلا حا منتلى
ال غر و ل نلا ستاعة االح ار و األتوات و الدوى البارية و التا تو نا حا النلاية الستخراج برنامج قوي.
ربما نظن أن اآلن يبتأ العمة ...ال ‚ بة قت بتأ بالفعة و نحن حا الارارة األولى ‚و ال نظن لزيزي الطالب
أن هذا وقت التافير أو تابة األ وات ‚ Codingو هذا ما يحتث لألسف لنت معظم المبرمجين إال المحترحين
والار ات ال بيرة ل برامجيات منلا حدط الذي يتنبنى العمة بـ نموج بناء لعم ية إنتاج نظام برمجا software
processحننتدة بعت االتفاق ل ا الف رة مراحة االنتاج الفع ا و ها التخطيط مروراً بالت ميم ثم تابة األ وات
و تبتأ مراحة االختبار بأنواللا ثم التدييم ثم البيع ،و ة هذه المراحة تخت ف حا االحتياجات من حيث الموارت
البارية و الوقت و باختالف النموذج المتبع النتاج نظام برمجا Software processستخت ف مراحة االنتاج
و أوقاتلا بة و أهميتلا أيضا ً.
-3التنفيذ Running
-aنموذج المراحة المتتابعة Stage wise model
يعت هذا النوذج بأنة هو النموذج التد يتي لتورة حياة النظم البرمجية ‚ و تعتمت ل يه ح رة تدسيم خطوات إنااء
برنامج حاسوبا إلا مراحة تتم بالتتابع و ال يتم االنتداة من مرح ة إال بعت است ماة المرح ة السابدة للا تماما ً،
ما حا الا ة اتناه:
حعم ية إنااء برنامج حاسوبا تبتأ من مرح ة التخطيط و ها تامة جمع قائمة بالمتط بات
Requirementsو بخ ائص البرنامج و مميزاتة Featuresو ما انت ت ك المرح ة مح مة و م تم ة
انت حر ة نجاح البرنامج بيرة ،ثم يتم االنتداة إلا مرح ة الت ميم و ها مثة المرح ة السابدة حا ونلا البت
أن ت ون محم ة و م تم ة ثم تابة الافرات ثم االختبار ثم التدييم.
معظم المااريع تبتأ بنفس الطريدة و ها حدط إلتات قائمة بالمتط بات والخ ائص و المميزات و ت ون
نسبة نجاح ت ك الطريدة (النموذج) أ بر ما ان الماروع (المنتج ) غيراً .
مالحظة /أحترس دائما من تعديالت و طلبات العميل الجديدة ففي كثيراً من األحيان ال يكون هدف البرنامج
متضح كامالً في ذهن العميل فبالتالي تطرأ التعديالت و التحسينات و يمكنك نموذج الشالل في أن ترجع إلي
مرحلة سابقة و هي مرحلة التصميم و تنظر أنت كمدير للمشروعات أن التعديل متاح و سهل ثم تنزلق قدمك
في تعديالت و تحسينات ال تنتهي و بالتالي تستمر الدائرة إلي ما ال نهاية مما ينذر بتأخر المشروع أو عدم
تسليمه بالمرة.
و تظلر هنا ليوب ذلك النموذج حيث أنه الي ون بالتينامي ية ال احية لتواجه ت ك التعتيالت التا ال تنتلا و
لن تستطيع التجاوزات و الترا يب Overlapبعمة رت امة لجزء بير من مرح ة لتوا ب ت ك التعتيالت أو
المط ب الجتيت ل عمية.
ان التاحع لتدتيم ت ك الطريدة هو التعرف ل ى األخطاء و الماا ة الغير متوقعة و التعتيالت حا المتط بات التا
غالبا ً ما ت يب تدتم الماروع.
و تعت الطريدة الح زونية حرت من أحرات لائ ة إتارة هنتسة البرمجيات بطريدة العم يات الت رارية Iterative
processو ها ت رار خوارزم ة مسألة محتتة بحيث ي ون المخرج من أي مرح ة هو المتخة ل مرح ة
الثانية.
و ما هو موضح حا الا ة الاله حالح زون يت ون من لتت من التورات )(Cycle ‚ spinو ة تورة مرتبطة
بالتورة التا ت يلا و التورة التالية تائما أ بر من التورة السابدة و ه ذا حتى ينتلا الح زون ،
من هنا يتضح بأن ة تورة ست ون وحتة مت ام ة إلنتاج مرح ة من مراحة الماروع و بالتالا حإن الف رة الرئيسية
للذه الطريدة ها أنك ال تد ق بأن يحتث خطأ ما أو تعتية ما حأنك سوف ت ون قاتراً ل ى إ الحه و الديام به حا
التورة الداتمة و ه ذا حتى تنتلا التورات و يخرج الماروع ل نور.
و تعتمت مراحة الطريدة الح زونية تدريبا ل ا نفس مراحة الطرق السابدة ل ن مع بعض التعتيالت ‚ حتأتا مرح ة
االست ااف discoveryأوة مرح ة و ها المتع دة بجمع المتط بات و تحتيت األهتاف Objectives .و حا
خالة مرح ة االست ااف ربما نضطر ل تابة بعض األ وات األوليةPrototypes
أما المرحلة الثانية و هي أكبر المراحل أهمية هي الت ييم ، Evaluationبتدتير الملام األ ثر خطورة حا
التورة الحالية ،أما المرح ة الثالثة ها مرح ة البناء و التطوير Developmentو يتم حيلا بناء الملمات التا
تم توضيح خطورتلا حا مرح ة التدييم ( المرح ة الثانية ) و نضرب لذلك مثاالً :لو نتج لن مرح ة التدييم أن
الخوارزمية Algorithmالم توبة يحتمة أن ت ون عبة جتاً أو ربما مستحي ة حست ون الملمة الرئيسية حا
المرح ة الثالثة حا التورة الحالية ها تمثية او بناء و اختبار ت ك الخوارزمية
و ن ة إلا المرح ة الرابعة و ها التح ية و التخطيط و بلذا ن ون قت أنلينا تورة ام ة حا الح زون و ننتدة
ل تروة التالية و ه ذا حتى ننتلا و من المتوقع أن ي ون ة تورة ق يرة الوقت و هذا يعتمت ل ا نتائج التورة
السابدة للا .
االنتهاء Complete
عند االنت اء تتم مرحلة التسليم الن ائي للعمل وبالك قد انت ينا من تنفيا ت ييم كافة مراحل دورة
البرنامج وهنا يتم التنفيا اما ان يكون التنفيا صحيحا ومنت يا تماما او يكون هناك خطا اريء
بالبرنامج مما يؤدي الى توقفه لحين استدعاءأل وتصليح الخطأ الناتج واعادته للتنفيا مرة اخرى
ليتم تنفياأل من جديد.
ارساة
االنااء متنفذ ومنتلا
نفاذ الوقت
منع
هو نمط برمجة ماتق من البرمجة الهيكلية يستنت إلى مفلوم استتلاء اإلجراء ،وما اإلجراء إال س س ة من
الخطوات الحسابية التا يتعين حلملا ،والتا يم ن استتلاؤها حا أي وقت أثناء تنفيذ البرنامج ،من قبة إجراءات
أخرى أو من قبة اإلجرائية ذاتلا.
هذا النمط من انماط البرمجة يم ك لتة أسماء حالتسمية الرئيسية للذا النمط من انماط لغات البرمجة يتلى
ال غة اإلجرائية ) (Proceduralونلا تعتمت االجرائيات ويم ن ان تتلى بال غة األمرية ) (imperativeوذلك
من ونلا لغة أوامر بحيث تعتمت ل ى ت دين الحاسب الحة خطوة بخطوة ما قت نجت تسمية البرمجة اللي ية
)(structuredبحيث تعتمت ل ى مفلوم استتلاء االجرائيات أو ما ها معروحة بالروتين.
تعتمت هذه ال غة لتة مباتئ :تدسيم البرنامج إلى لتة اقسام جزئية لتسلية الدراءة والاتة االستختام تسمى هذه
االجزاء بعتة أسماء:
Proceduresاجراءات
functionsتوابع
methodsمنلجيات
routinesروتينات
subroutinesروتينات حرلية
تو يف حة الما ة خطوة بخطوة والتا تعت من مساوئ هذا النمط حيث يجب ل ى المبرمج ان يدوم بحة الما ة
المتناولة بنفسه وليس لن طريق الحاسب.
من هذا يتضح ان التواة الفرلية subroutinesها ابه برنامج غير اذا ان لنتك س س ه
لم يات متاابله سوف تجريلا تاخة البرنامج ثيرا وت ررها ثيرا حال تالا اللاتة تابتلا ة مرة بة ي فيك ان
ت تبلا مرة واحتة وتط ق ل يلا اسم و ما ذ رت هذا االسم تاخة البرنامج تتم ت ك العم يات وي بح هذا االسم
أنه من اوامر ال غة .
مثاة /لنفرض ان هناك اوامر لرسم جتواة بأبعات ومساحة معينة وتحتاج الى رسمه ثيرا ح يس معنى هذا انك
ة مرة تريت رسم الجتوة ستعيت تابة اوامره ال ثيرة حا ة م ان تاخة البرنامج حدط جمع اوامر رسمه حا
روتين حرلا وسميه اسم و ما ذ رت االسم يتم رسم الجتوة.
با ة لام ،التواة والبرامج الفرلية لبارة لن برامج -او اجزاء برامج -ثانوية يتم استختاملا التاء غرض
معين ومن حوائتها:
-تد ية وتالحا الت رار حا بناء البرامج مرة اخرى.
-تد ية الوقت المط وب لبناء البرامج والمااريع.
-التد ية من الذا رة المط وبة لافرات وبيانات الماروع.
-الوحتات النمطية :Moduleوها تمثة احت ال يانات االساسية التا تدتملا لغة VBل مبرمجين حيث
يتم إنااؤها من خالة قائمة ، project\add new moduleحا هذه الوحتة النمطية يتم تعريف
المتغيرات وال يانات التا يتم استختاملا حدط ويتم تابة البرامج المرات اجراءها ام ة.
-البرامج الفرلية الخا ة بالماروع المرات لم ه وها تاتمة ل ى التواة والبرامج الفرلية ،ويتم تعريفلا
حا الجزء Generalالموجوت حا ة نموذج (حا ناحذة الافرات . )Code Window
الفرق بين هذين النولين هو ان الوحتات النمطية Moduleيم ن استختاملا حا أي يان باي نموذج
موجوت ضمن الماروع اما النوع االخر حانة يم ن استختامه حدط ضمن ال يانات التابعة لنموذج واحت
حدط.
ويتم استتلاء البرنامج الفرلا اما ب تابة اسمه حدط اذا أن اليحتوي ل ى معامالت او ب تابة التالة call
ثم اسم البرنامج الفرلا ووضع قوسين هالليين بعت اسم البرنامج ؛ اوب تابة اسم البرنامج الفرلا حدط ثم
وضع المعامالت بين اقواس .ويم ن استختام ال يغه الاله حا وحتة نمطية مستد ة او حا نفس ناحذة
الافرات التابعه لنفس النموذج وذلك حا الجزء .General
An Bm C w
=)F(A,B,C لو ان لتينا ملمة إيجات قيمة التالة التالية
(3 A! C !) 1
إن الحة األمثة لبرمجة هذه التالة يتم بواسطة تدسيملا إلى مجمولة من الملام الجزئية subtaskومن ثم
التترج حا تدسيم ة ملمة جزئية (إذا تط ب األمر أي مازالت الملمـــــــــــة تحتوي ل ى بعض التعديت ) إلى
أجزاء أخرى حتى ننتلا من التدسيم التالا :
Program find
Main task
)F(A,B,C Subtasks
الملمة الرئيسية
الملام الجزئية
w
Find An Find B m Find C !Find A !Find C
التدسيم ألاله يبين بأن البرنامج سوف ي مم من الملمة الرئيسية ونزوالً الى الملام الجزئية ،هذا الت ميم يسمى
بالت ميم من أل ى إلى أسفة . Top-Down Designولم ية تطوير البرنامج الذي ير ز حا بناءه ل ى الملام
الجزئية (الفرلية) تسمى بالبرمجة الملي ة . Structured Programming
ة ملمة جزئية (حرلية) حا البرنامج تسمى بالبرنامج الفرلا , subprogramحا لغة C++تستختم التالة
functionبرنامج حرلا .وتعرف الدالة بأنلا مجمولة من االيعازات التا يم ن أن تستتلى من أي م ان حا
التالة الرئيسية لألتاء ملمة معينة .تتميز التواة الفرلية (البرامج الفرلية) بأن للا نفس اللي ة العام ل تالة الرئيسية
mainمن حيث تعريف المتغيرات و تابة االيعازات .و ما بينا سابدا حا اللي ة العام ل برنامج بأن موقع تابة
التواة الفرلية functionsيدع قبة التالة الرئيسية . mainومن حوائت استختام التواة الفرلية :
-1لتبسيط الما ة المرات ح لا وذلك بواسطة تدسيملا إلى ملام جزئية (تواة حرلية) أبسط يسلة برمجتلا .
-2تد ية حجم البرنامج :حا بعض األحيان نضطر حا البرنامج إلى ت رار مدطع أو أ ثر لتت من المرات ،
لذلك حأن البرامج الفرلية (التواة الفرلية) تسالتنا بأن نستتلا هذا المدطع حا ة مرة بواسطة خطوة
واحتة حدط .
مالحظات :
: return_type_valueوها تامة النوع البيانا ل ديمة التا ترجعلا التالة الى -1نوع الديمة الراجعة
البرنامج الرئيسا ,مثة . int ,char, flaot,void
-2اسم التالة : Function_nameوهو اسم التالة الذي يتم تسمية التالة به من قبة المبرمج والذي يجب ان ي ون
اسم معرف . identifier
-3قائمة المعامالت : parameters listوها تامة قائمة المتغيرات المست مة من التالة الرئيسية .
-4تعريف المتغيرات المح ية : local variable declarationوها تمثة المتغيرات المعرحة تاخة التالة حسب
حاجة المبرمج ,وبنفس الطريدة المجوتة حا التالة . main
-5جزء تابة جمة التالة : statements codeوها تامة الجمة البرمجية الخا ة بالتالة .
-6الديمة الراجعة > : return <valueوها تمثة الديمة التا سوف ترجعلا التالة إلى التالة الرئيسية main
،وهذه الديمة يجب ان ت ون من نفس نوع التالة المعرحة حا بتايتلا .يم ن
ل تالة أن ال ترجع قيمة إذا ان نوللا . void
-6تتميز التواة الفرلية حا لغة C++بأنلا ترجع قيمة واحتة حدط أو ال ترجع ااء .
االسبوع التاسع عشر /النظري
ما معنى مة برمجة ....البرمجة ها لغة التخاطب بين اإلنسان و اآللة تت ون هذه ال غة من العتيت من
االيعازات لتنفيذ ملمه معينه .حما هى اال لم ية بسيطة تدوم حيلا ب تابة بعض ال مات ل مبيوتر ليدوم بتنفيذها
وتندسم البرمجة الى :
-برمجة مرئية مثة الفيجوة بيسك visual basic
-برمجة اللي ية مثة الفيجوة سا اارب )(structured programming
حالبرمجة المرئية تعنا لنتما يحتاج المستختم إلى إنااء تطبيداته الخا ة تحت بيئة النظام وينتوز Windows
حإنه البت له من لغة برمجة جيتة تسالته حا إنااء هذه التطبيدات و ُتعتبر Visual Basicمن ال غات العالمية
العالية المستوى والسل ة االستختام والتا يجت حيلا المبرمجون غايتلم ل تابة معظم التطبيدات العام ة تحت بيئة
وينتوز .Windows
البرمجه اللي يه ببساطه هى تدسيم البرنامج الى وظائف او تواة يم ن استتلائلا حى اى جزء من البرنامج
ياغة البرنامج المضبوط الذي يبتأ بمتخة واحت هناك نظرية اساسية ل برمجة الملي ة ترت ز ل ى مبتأ ام انية
ومخرج واحت باستختام ثالث ترا يب اساسية:
Sequence -1التتابع او الس س ة
Conditional -2الارطية او االختبار
Repetition -3
وتتمثة هذه التر يب باستختام المخططات االنسيابية التا ملما انت ترجة تعديت برامجلا حانه يجب ان
ت ون قاب ة لالختزاة ل ترا يب الاله.
ن جأ الى هذه الترا يب من ناحيتين:
-1أي برنامج ي تب يحتاج ان ت ون هناك ام انية تون ال جوء الى االستختام الواضح لالمر .GOTO
-2هي ة ة تر يب سي ون له ندطة تخوة ( )Entryواحتة وندطة خروج ( )Exitواحتة.
تركيب السلسلة:
ياير الى المجرى المنطدا المتتالا ل برامج.
)(Private Sub cmdNewRecord_Click
Data1.Recordset.AddNew
_ Data1.Caption = Data1.Recordset.RecordCount + 1
_ & " & " of
Data1.Recordset.RecordCount + 1
End Sub
سيتم هنا تنفيذ االيعازات واحتا ت و االخر ،حيث يمثة االجراء لم ية اضاحة سجة جتيت الى قالتة البيانات باستختام
.Visual Basic
برنامج لجمع رقمين و باعة الناتج على الشاشة // Program 2: Addition program
>#include<iostream.h
>#include<conio.h
{ ) ( main
;int integer1, integer2, sum
;"cout <<"Enter first integer\n
;cin >> integer1
;"cout <<"Enter second integer\n
;cin >> integer2
;sum= integer1+integer2
;cout <<"sum="<<sum<<endl
;)(getch
;return 0
}
تركيب االختبار:
يتعرض مجرى البرنامج تر يب ارطا يؤتي الى تفرع البرنامج الى حرلين يجب االختبار بينلما.
يتم اختبار التس سة المنطدا المالئم تبعا ل ارط حاما ان ي بح الارط Falseاو .True
Else
Value:= function2
وقت ت اتف حا بعض االحيان حاالت ارطية ابسط يترتب ل يلا تفرع واحت يتبعه مجرى البرنامج الذي ي حح
حيه الارط واال حان البرنامج يوا ة تنفيذه النجاز االيعاز التالا.
#include <iostream.h>
main ( )
{
int num1 , num2;
cout << " Enter two integers, and I will tell you\n"
<<" the relation ships they satisfy: ";
cin >> num1>> num2;
if (num1== num2)
cout << num1 << " is equal to " << num2 << endl;
if (num1!= num2)
cout << num1 << " is not equal to " << num2 << endl;
if (num1< num2)
cout << num1 << " is less than " << num2 << endl;
if (num1> num2)
cout << num1 << " is greater than " << num2 << endl;
if (num1<= num2)
cout << num1 << " is less than or equal to " << num2
<< endl;
if (num1>= num2)
cout << num1 << " is greater than or equal to " << num2
<< endl;
return 0;
}
يسمح بعم يات الت رار التائري LOOPاو بمعنى اخر يسمح بمجمولة ايعازات ان يت رر تنفيذها لتة مرات.
والجة ايداف الت رار التائري يوضع ارط حا هذه الترا يب سيتم اختياره قبة البتء بتنفيذ التورة.
وهناك تر يب(اختبار) اخر الختبار الت رار وهو اة ( Caseالت رار المتعتت) مالئما جتا حا حالة لتت بير من
البتائة التا يرات تنفيذها مرة حا ة تنفيذ.
وحا مثة هذه الحالة نستختم االيعاز Switchحا لغة اة C++ما حا موضح اتناه:
{
;case constant1 : statement1; break
;case constant2 : statement2; break
.
.
;case constant n : statement n; break
;default : last statement
}
ال اعدة العامة ت ول Every things is an Object :كل شيء عبارة عن كائن
يعتبر تدنية سالتت المبرمجين ل ى لمة البرامج با ة هي ى Modelingوابه إلى حت ما االاياء الموجوته
حى حياتنا Like Real-Life Objects,وسالتت أيضا ار ات البرمجه ل ى توحير الوقت والمجلوت حى لتم
تابة األ وات المت رره مرات لتيته حى ثير ماارللا..
لو نظرنا حى لالمنا سوف نجت مجموله من الفئات objectsتاترك حى الخ ائص Attributesمثة الطوة
الوزن ال ون والس و يات Behaviorsيماى يأ ة يام يرى ،مثة اإلنسان أو الحيوان أو النبات و لا تحمة
فات مميزه ل ة حئه same characteristicنفس الاىء حى البرمجة الايئية حلناك مجموله من اة
Classesتحمة مجموله من الخ ائص dataومجموله من الس و يات Methodsتحمة فاتلا المميزه.
ها لبارة لن أس وب جتيت من أساليب البرمجة حيث أ بحت وحتة بناء البرنامج ها ال نف classوالذي
يحوي ل ى البيانات dataوالعم يات او التواة functionsوللا لتة مسميات منلا:
لاتة ما ت ون البرامج من هذا األس وب معدتة با ة بير حيث تدسيم البرنامج إلى مجمولة من الملام الرئيسية
ومن ثم تدسم إلى ملام حرلية ل ى حسب ترجة التعديت ل ملام الرئيسية لذلك حان البرمجة اللي ية تنتلج النلج (
من األل ى إلى األسفة) Top Down .
ال ائنات ذات الخ ائص واألحعاة الماتر ة بحاجة آلن تجمع مع بعضلا البعض حتى يم ن استختاملا حا
برنامج ما .وبالتالا حإن ال نف :لبارة لن مجمولة من ال ائنات التا تاترك حا الخ ائص والعم يات .
مثاة/
نف. >>الموظفين ائن الموظف - نف >>الطالب ائن الطالب
*مزايا البرمجة الشيئية ):. Features of (opp
-التجريت abstraction :وهو لم ية تحتيت الخ ائص والعم يات التا تنتما ل نف معين وها نولان.
أ -تجريت البيانات Data abstraction :وها لم ية التعرف ل ى الخ ائص المرتبطة ب ائن معين.
ب -تجريت العم يات Methods abstraction:وهو لم ية تحتيت العم يات واإلجراءات تون ذ ر ااء
لن يفية أتائلا .