0% found this document useful (0 votes)
256 views68 pages

Algorithms Final

Uploaded by

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

Algorithms Final

Uploaded by

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

‫جامعة الفرات االوسط التقنية‬

‫المعهد التقني ‪ /‬النجف‬


‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫وزارة التعليم العالي والبحث العلمي‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫قسم تقنيات انظمة الحاسوب ‪ /‬المرحلة االولى‬

‫احلقيبة التعليمية ملادة اخلوارزميات‬

‫مدرس املادة ‪ :‬سهاد عبد الزهرة‬

‫ماجستري علوم حاسبات‬

‫‪2017- 2016‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫الساعات األسبوعية‬ ‫لغة‬


‫السنة‬
‫التدريس‬ ‫اسم المادة‬
‫الدراسية‬
‫المجموع‬ ‫العم ا‬ ‫النظري‬

‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫العربية‬ ‫األولى‬ ‫الخوارزميات‬

‫أهـداف المـادة‪-:‬‬

‫العـاااااااااااامـاااااااااااة‪ -:‬تعريف الطالب بماهية برنامج الحاسببببب والدوالت التا تسببببالت حا حلم وحة المابببب ة و تابة‬
‫الخوارزميات ومراحة تطوير البرنامج والتعرف ل ى الروتينات والتعرف ل ى أسببببببب وب ت بببببببميم‬
‫الوحتات البرمجية وبناء هرمية الوحتات وتدسيم البرنامج إلى وحتات‪.‬‬

‫المفردات النظرية‬
‫المفردات‬ ‫األسبوع‬
‫مبادئ أولية عن البرمجة‪/‬تعريف البرنامج‪/‬لغات البرمجة‪(/‬لغات البرمجة العليا ‪High‬‬ ‫األول‬
‫‪level language‬ولغات البرمجة الدنيا ‪-)low level language‬تعريف برنامج‬
‫المستخدم (‪-)User program‬البرامج التطبيقية (‪-)Application programs‬‬
‫برامجيات المنظومة (‪)Operating system‬‬

‫حل المشكلة ‪:Problem Solving‬‬ ‫الثاني‬

‫فهم المشكلة‪ /‬تقسيم المشكلة ‪ /‬عملية حل المشاكل‬

‫أنواع البيانات والمتغيرات المستخدمة في لغات البرمجة وتعريفها في البرنامج ‪/‬الثوابت‬ ‫الثالث‬
‫والمتغيرات‪/Constants &variable‬الحرفية ‪ String‬والرقمية ‪Numeric‬‬

‫الرابع و الخامس المخططات االنسيابية (‪-)Flow chart‬فوائد المخططات االنسيابية‪-‬األشكال المستخدمة‬


‫في رسم المخططات االنسيابية‪ ,‬أنواع المخططات االنسيابية‪-‬المخططات االنسيابية‬
‫البسيطة (‪)Simple flow chart‬‬

‫السادس والسابع المخططات االنسيابية المتفرعة (‪-)Branched flow chart‬المخططات االنسيابية ذات‬
‫الحلقات (‪(Loop flow chart‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫الخوارزميات ‪/Algorithms‬تعريف الخوارزمية‪ /‬تصميم الخوارزمية( ‪Algorithm‬‬ ‫الثامن و التاسع‬


‫‪ ,)design‬أنواع الخوارزميات المتسلسلة (‪ )Sequential‬والشرطية‬
‫(‪, )Conditional‬والمتكررة (‪)Repetition‬‬

‫صفات البرنامج الجيد –مراحل تطور البرنامج(‪)program development stages‬‬ ‫العاشر‬

‫كتابة البرنامج‪ ,‬التنفيذ وإيجاد األخطاء (‪)Implemention & debugge‬‬ ‫الحادي عشر‬

‫أنواع األخطاء البرمجية (‪/)Types of errors‬األخطاء اإلمالئية و القواعدية‬ ‫الثاني عشر‬


‫(‪/)Syntax errors‬األخطاء التنفيذية (‪/)Run time errors‬األخطاء المعنوية‬
‫(‪)Semantic errors‬‬

‫االختبار ‪,Testing‬التوثيق والصيانة ‪Documentation &maintenance‬‬ ‫الثالث عشر‬

‫التصميم من األعلى إلى األدنى (‪)Top-down design‬‬ ‫الرابع عشر‬

‫التصميم من األدنى إلى األعلى ‪Bottom-up design‬‬ ‫الخامس عشر‬

‫دورة حياة العملية (البرنامج)داخل الحاسوب (‪ )Process life cycle‬أوال‪/‬االستعداد‬ ‫السادس عشر‬
‫(‪/)Ready‬ثانيا‪/‬االنتظار(‪)waiting‬ثالثا التنفيذ (‪)Running‬رابعا‬
‫االنتهاء(‪(Complete‬‬

‫الروتينات الفرعية ‪Subroutines‬‬ ‫السابع عشر‬

‫البرامج الفرعية ‪Subprograms‬‬ ‫الثامن عشر‬

‫مقدمة ألسلوب البرمجة المهيكلة ‪/‬التراكيب المستخدمة في البرمجة المهيكلة‬ ‫التاسع عشر‬

‫تراكيب السلسلة ‪ /Sequence‬تركيب االختيار‪IF-THEN -else‬‬ ‫العشرون‬

‫تركيب التكرار‪Do-While‬‬ ‫الحادي‬


‫والعشرون‬

‫الثاني والعشرون عمليات معالجة البيانات‪/‬الفرز(‪/ )Sort‬فوائد عملية الفرز ‪/‬الترتيب‬


‫الخارجي( ‪/(External sort‬الترتيب الداخلي(‪)Internal sort‬‬

‫الثالث والعشرون خوارزميات الفرز‪Sorting algorithms‬أوال‪/‬طريقة االختيار(‪)Selection method‬‬

‫ثانيا‪/‬فرز الفقاعة(‪)Bubble sort‬‬ ‫الرابع والعشرون‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫خوارزميات البحث ‪ /‬البحث المتسلسل (‪ )Sequential search‬البحث‬ ‫الخامس‬


‫الثنائي(‪)Binary search‬‬ ‫والعشرون‬

‫خوارزميات معالجة الملفات‪/File processing Algorithms‬تعريف الملف(‪-)Files‬‬ ‫السادس‬


‫القيد(‪-)Record‬الحقل (‪ -)Field‬أنواع الملفات أوال‪ /‬الملفات التسلسلية ‪Sequential‬‬ ‫والعشرون‬
‫‪/files‬ثانيا ‪/‬الملفات العشوائية ‪Random files‬‬

‫تصميم الوحدات البرمجية ‪-Modularization‬أهم الصفات التي تمتاز بها‬ ‫السابع‬


‫الوحدات‪/‬مكونات الوحدات البرمجية‬ ‫والعشرون‬

‫الثامن والعشرون األسلوب المتبع في بناء هرمية الوحدات (أوال ‪/‬طريقة المجرى الرئيسي‪/‬والمسار‬
‫الفرعي ثانيا ‪ /‬طريقة هرمية –الطبقات)‬

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

‫مدخل إلى أسلوب البرمجة الكائنية الموجهة( ‪Object – oriented‬‬ ‫التاسع‬


‫‪/)programming‬فوائد استخدام هذا األسلوب في البرمجة الحديثة‬ ‫والعشرون‬

‫مفاهيم وأساسيات في أسلوب البرمجة الكائنية الموجهة تعاريف ‪ /‬الصنف‬ ‫الثالثون‬


‫(‪/)Class‬الكائن (‪/)Object‬الوراثة (‪)inheritance‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫االسبوع االول‪ :‬النظري‬

‫امتحان قبلي ‪Pre test‬‬

‫‪ -1‬مالمقصود بالبرنامج؟‬
‫‪ -2‬ماهي البرمجة‪ ،‬وما هي انواعها؟‬
‫‪ -3‬مالمقصود بالبرامجيات؟‬

‫مباديء أولية عن الربجمة‬

‫هي عملية كتابة‪ ،‬اختبار‪ ،‬تصحيح لألخطاء وتطوير للشيفرة المصدرية لبرنامج حاسوبي يقوم بها‬
‫اإلنسان‪ ،‬تهدف البرمجة إلى إنشاء برامج تقوم بتطبيق وتنفيذ خوارزميات لها سلوك معين بمعنى‬
‫أن لها وظيفة محددة مسبقا ومتوقعة النتائج‪ .‬تتم هذه العملية باستخدام إحدى لغات البرمجة ‪.‬الهدف‬
‫من البرمجة هو إنشاء برنامج حيث ينفذ عمليات محددة أو يظهر سلوك مطلوب محدد‪ .‬بشكل عام‬
‫البرمجة عملية تستلزم معرفة في مجاالت مختلفة منها معرفة بالرياضيات والمنطق‬
‫والخوارزميات‪.‬‬

‫تعريف الربنامج‪Program Definition‬‬

‫يعرف على انه سلسلة من الخطوات المترابطة منطقيا والمكتوب طبقا لقواعد لغة برمجة معينة‬
‫بحيث يمكن تنفيذه في حاسوب له مترجم لتلك اللغة‪ ،‬ان كل خطوة في البرنامج يجب ان تتوائم‬
‫وقواعدية تلك اللغة بحيث أي خطأ في القواعد يؤدي الى خطأ في التنفيذ أو ايقاف التنفيذ طالما‬
‫الخطأ موجود‪.‬‬
‫مثال‪:‬‬
‫في لغة ‪ Basic and C‬اشارة المساواة هي =‬
‫في لغة ‪ Pascal‬هي =‪:‬‬
‫في لغة ‪ APL‬هي‬
‫فيجب كتابة صيغة االيعاز بشكل صحيح وتصحيح اخطاء البرنامج وبهذا يتم تنفيذ البرنامج واال‬
‫فانه سيتوقف عن التنفيذ‪.‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫لغات الربجمة ( لغات الربجمة العليا والدنيا) ‪High and Low Languages‬‬

‫ان مة لغة ‪ Language‬ها طريدة االت اة والتفاهم بين األاخاص لندة المع ومة الى حالة‬
‫الحاسوب وها الطريدة التا يفلم بلا الحاسوب ط ب اإلنسان‪ .‬لذلك نجت حا حياتنا مجمولة‬
‫م ط حات و مات يخت ف استختاملا حسب الحاجة‪ .‬لغات البرمجة المخت فة تتمتع بلذه الخا ية‬
‫أيضا‪ .‬حلناك ال ثير من ال غات البرمجية الموجوتة وهذه ال غات تخت ف من ناحية لم لا وهتحلا ول ن‬
‫حا النلاية ة هذه ال غات تترجم إلى لغة اآللة‪ 0 Machine Language‬و‪.1‬‬
‫لذلك يجب ل ى المبرمج أن ي ون م ما ببعض لغات البرمجة وأن يعرف ما ها ال غة المناسبة لتطبيق‬
‫هذا البرنامج‪ .‬لغة البرمجة الوحيتة التا يفلملا الحاسوب ويستطيع أن يتعامة معلا ها لغة اآللة‪-‬‬
‫‪.language- machine‬‬
‫حا البتاية لمة المبرمجون ل ى تح ية ايفرة الحاسوب ‪ –machine code-‬والتعامة معلا‬
‫با لا الجامت وغير المفلوم وهو (‪ .)0،1‬ول ن هذه العم ية معدتة جتا وي عب التعامة معلا لعتم‬
‫حلملا الواضح ل بار ولغموضلا لذلك تم ابت ار لغات راقية تعمة وسيط بين لغة اإلنسان ولغة اآللة‬
‫وها لغة التجميع ‪ Assembly‬ثم تطورت ل غات لالية المستوى مثة لغة ‪ C‬ولغة ‪ .Basic‬ثم‬
‫ة‬ ‫يتم تاغية البرامج الم توبة بلذه ال غات لن طريق أحت البرامج المتخ‬
‫مثة المترجم‪ Compiler‬والمفسر‪ ،Interpreter‬هذه البرامج تعمة ل ى ترجمة أسطر لغة‬
‫البرمجة إلى لغة الحاسوب مما يسلة ل ى الحاسوب تنفيذ هذه األوامر وإخراج نتائج التنفيذ‪.‬‬

‫تنقسم لغات البرمجيات إلي‪:‬‬


‫• لغات المستوى الواطاء ‪ Low Level Language‬وها تندسم الى لغة اآللة ‪Machine‬‬
‫‪Language‬وال غة الرمزية أو لغة التجميع‪Symbolic Or Assembly‬‬
‫• لغات المستوى العالا‪High Level Language‬‬
‫وهى لغات تستختم الحروف واألرقام التا نتعامة بلا حا لغتنا العاتية ولذا سل ت لم ية التعامة مع‬
‫الحاسب‪.‬‬

‫‪Example:‬‬

‫ال غات االجرائية ‪ Procedural Language‬مثة الفورتران وال وبوة ولغة البس اة‪.‬‬
‫لغات االنحياز ل ما الت ‪ Problem Oriented Language‬وتمث لا لغات البرمجة الايئية‬
‫‪ Object Oriented Language‬وال غات الطبيعية ‪ Natural Language‬وهى تعتمت ل ى‬
‫استختام الدوالت العاتية ل غة المستفيت‪.‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫مميزات اللغات ذات المستوى العالي‪:‬‬


‫• سلولة ال تابة وسلولة ت حيح األخطاء‬
‫• سلولة تع ملا وسلولة تابة البرامج التطبيدية بلا‬
‫• لتم ارتباطلا بنولية معينة من الحاسبات‬
‫• استختاملا حا تنفيذ البرامج التطبيدية التا تت تى لمعالجة الما الت المعدتة‬
‫•توحير الوقت والجلت الذي ان يدوم به مخططوا البرامج أثناء تابتلا ل برامج ب غة اآللة أو التجميع‬

‫تعريف برنامج املستخدم‪User Program Definition‬‬

‫يم ن تعريف اة ‪ Program‬ل ى أنه "مجمولة من التع يمات واألوامر ‪Instruction and‬‬
‫‪ Commands‬التا توضح ل حاسب تس سة الخطوات التا ينبغا الديام بلا ألتاء ملام معينة لحة‬
‫الما ة المطروحة واستخراج النتائج‪ .‬ويخزن البرنامج حا الذا رة الرئيسية ل حاسب ‪Main‬‬
‫)‪Memory(M.M‬لتوجله إلنجاز العم يات المط وبة وتم نه أيضا من إتارة ومراقبة وتنظيم‬
‫م وناته الماتية لتحديق الملمة المط وبة ‪.‬‬
‫وتتوحر هذه البرامج لاتة ل ى اسطوانات متمجة ‪ CD‬أو أقراص ‪ DVD‬أو حتى أحيانا ً ل ى أقراص‬
‫قاب ة لالزالة )‪ . Removable disk(USB‬ما إن هناك تاابه إلى حت م حوظ بين ثير من‬
‫ة‬ ‫البرامج‪ ،‬حع ا سبية المثاة‪ ،‬يوجت لارات البرمجيات (التا يم ن االختيار حيما بينلا) والمتخ‬
‫حا تحرير ال ور‪ ،‬معالجة األحالم المتحر ة‪ ،‬البرامج الخا ة بت فح الاب ة العن بوتية (الويب)‬
‫و ذلك ال ثير منلا لتاغية الفيتيو‪...‬و ة ت ك البرمجيات متاابلة إلا حت بير حا الوظائف والملام‬
‫التا تستطيع الديام بلا‪.‬‬

‫الربامج التطبيقية ‪Application Programs‬‬

‫ها مجمولات البرامج التا تعت خ ي ا لحة ما ة أو ماا ة معينة يرغب المستفيت حا‬
‫استختام الحاسب حا ح لا‪ .‬ت مم وت تب لاتة بواسطة المستفيت ‪ User‬أو الح وة ل يلا من ذوي‬
‫ة او ار ات ت ميم البرامجيات‪.‬‬ ‫الخبرة المتخ‬

‫براجميات منظومة احلاسب ‪Operating System‬‬

‫او ما يسمى ببرنامج الدياتة وهو لبارة لن برنامج تنتجه الار ة الم نعة ل م ون الماتي‪ ،‬وير ب‬
‫حا الحاسب ليتيح له حر ة التعرف ل ى وجوته و التعامة مع م ون ماتي معين ‪Hardware‬‬
‫ول ة جزءمن الم ونات الماتية برنامج تعريف خاص به‪ ،‬مثال بطاقة الفيتيو للا برنامج تعريف‬
‫خاص بلا و ذلك الطابعات وغيرها‪.‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫برمجيات الحاسب‬
‫تندسم برمجيات الحاسب إلا قسمين أساسيين‪ ،‬بالنسبة ل دسم األوة حيط ق ل يه برمجيات النظم والذي‬
‫يندسم بتوره إلا برمجيات نظم التاغية و مترجمات ال غات وبرمجيات الختمة‪ ،‬بالنسبة ل دسم الثانا‬
‫حيتع ق ببرمجيات التطبيدات والتا من أبرز أمث تلا برامج معالجة الن وص وبرامج الجتاوة‬
‫الحسابية وبرامج قوالت البيانات‪ ......‬وحيما ي ا نتناوة معالجة ة قسم من هذه األقسام‪.‬‬

‫‪ -1‬برمجيات النظام‪System Software‬‬


‫ها البرامج التا تتح م وتارف ل ى منظومة لمة الحاسب بأ م ه من م ونات ماتية وتنظيمية‬
‫(برمجيات) وتعمة ل ى التنسيق والتناغم بينلما‪ .‬ولاتة ما تأتى برمجيات النظام مختزنة بذا رة‬
‫الحاسب الرئيسية حا الجزء الخاص بذا رة الدراءة حدط ‪ ROM‬وتدوم بإلتاتها واختزانلا الار ات‬
‫الم نعة ل حاسبات‪.‬‬
‫وتندسم برمجيات النظم إلى ثالثة أنواع رئيسية‪:‬‬
‫نظام التاغية – مترجمات ال غات – برامج الختمة‬
‫‪1.1‬برامج نظم التشغيل)‪Operating System (OS‬‬
‫يتم التعامة مع الحاسب من خالة نظام التاغية الذي يت ون من برامج منف ة ‪ Modules‬والتا‬
‫تعمة مت ام ة ومنسجمة مع بعضلا‪.‬‬
‫مهام نظام التشغيل األساسية‬
‫•تحمية برامج التطبيدات من وحتة التخزين الثانوية إلا وحتة الذا رة الرئيسية وإلتاتها ل تاغية‬
‫•تاغية البرامج واستتلاء أي برنامج من برامج الختمة تحتاجلا لم يات التاغية‬
‫•التح م حا اختيار ولمة وحتات اإلتخاة واإلخراج‬
‫•التح م حا تاغية مجمولة برامج حا وقت واحت وتحتيت اولويات التاغية ل ة برنامج‪.‬‬
‫• إخطار المستفيت بأي لطة يحتث لألجلزة أثناء التاغية وذلك حتى يتم ن من ت حيح األخطاء‬
‫وإزالة الخ ة وتراسة حالة النظام ب فة لامة‬
‫•تامين وحماية بيانات وبرامج مستختم الحاسب‬
‫•تزويت المستختم بتدارير لن تاغية برامجلم وبياناتلم‬
‫خصائص نظام التشغيل‬
‫•برامج تاخ ية خا ة تتير وتراقب نظام الحاسب‪.‬‬
‫•متنولة وتخت ف باختالف نوع وطراز الحاسب والار ة الم نعة‬
‫•غير مسموح ل مستختم أجراء أي تعتيالت حا برنامج نظام التاغية‬
‫•تفرض خ ائص معينة ل ى برامج التطبيق المستختم معلا‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫مكونات نظام التشغيل‬


‫•المارف أو الموجه‪Supervisor‬‬
‫هو البرنامج الرئيسا الذي يستدبة البيانات ويوجه ويراقب سير العمة بالحاسب والتح م حا لم ياته‬
‫والتتخة لمدطالة وتوقيف لم ياته لنت ال زوم‪.‬‬

‫• مدير اإلدخال‪/‬اإلخراج‪I/O Manager‬‬


‫هو البرنامج المخ ص ل تعامة مع وحتات اإلتخاة واإلخراج ل حاسب‪.‬‬
‫•متير الم فات‪Files Manager‬‬
‫هو البرنامج الذي يتعامة مع الم فات وم ونات بنائلا من ‪(Record‬سجة) ف‪( Field‬حدة) ف‬
‫‪( Elements‬لن ر بيانا) وأطواة ة حدة‪.‬‬
‫•برنامج أوامر‪Command Program‬‬
‫يت ون من أوامر وتع يمات مباارة توجه إلى نظام التاغية ل تنفيذ المباار‪.‬‬
‫‪1.2‬مترجمات اللغات‪Compilers / Interpreters‬‬
‫ال غة التا يتعامة معلا الحاسب ها ال غة الثنائية لذا حيجب ترجمة البيانات والتع يمات الخا ة‬
‫بالبرامج التا ت تب ب غات األتاء العالا إلى ال غة الثنائية حا مرح ة اإلتخاة ومرح ة اإلخراج‪ .‬ولذا‬
‫يتم تجليز الحاسب ببرنامج مترجم )‪ (Compiler‬وهو برنامج يعت خ ي ا ل ديام بعم ية حك الافرة‬
‫الخا ة بالبيانات والتع يمات ووضع المدابة للا حا ال غة الثنائية تمليتا لديام الحاسب بمعالجة‬
‫البيانات وتنفيذ التع يمات‪ .‬يسمى هذا البرنامج لنت ترجمته ب وت الم تر‪(Source Code).‬‬
‫تتم لم ية الترجمة مرة واحتة وخزنلا بذا رة الحاسب ويط ق ل يلا بعت التخزين ببرنامج اللتف‬
‫)‪ (Object Program‬ويستختم لنت الحاجة‪ .‬الحاسب أيضا يجلز ببرنامج المفسر‬
‫‪Interpreter‬ويدوم بترجمة وت الم تر خطوة بخطوة أثناء تنفيذ البرنامج‪.‬‬
‫برنامج المترجم أسرع من برنامج المفسر وذلك لديامه بترجمة برنامج الم تر مرة واحتة ولذا حلو‬
‫ياغة حيث بير حا ذا رة الحاسب‪ .‬أما برنامج المفسر حأنه يترجم وت الم تر خطوة بخطوة أثناء‬
‫تنفيذ البرنامج لذا حانه يتط ب حيز أقة حا ذا رة الحاسب من برنامج المترجم‪ .‬ما أن برنامج المفسر‬
‫يم ن إيداحه أثناء التاغية لنت أي وضع ثم ألاتة التاغية مرة اخرى ل ى ل س برنامج المترجم‪.‬‬
‫ولذا حان برنامج المفسر يعتبر مناسب أثناء تابة برامج التطبيق وا تااف أخطائه وت حيحه وبعت‬
‫التأ ت من خ وه من األخطاء يحوة إلى برنامج الم تر‪.‬‬
‫‪1.3‬البرامج المساعدة‪Utility Programs‬‬
‫البرامج المسالتة أو برامج الختمة أو برامج المنفعة العامة جميعلا متراتحات لمجمولة من البرامج‬
‫المنف ة التا يؤتى ة منلا ملام أو وظائف محتتة تستختم ل سيطرة ل ى الم ونات الماتية‬
‫والبرمجيات الخا ة بتنفيذ وظائف نظام التاغية ‪ DOS‬ومن أهم وظائف البرامج المسالتة (الفرز‬
‫والتمج‪ ،‬البحث‪ ،‬النسخ‪.)...‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫االمتحان البعدي ‪Post test‬‬

‫حاول االجابة عن االسئلة االتية اذا كانت اجابتك اقل من ‪ %75‬يرجى اعادة قراءة المحاضرة‪.‬‬

‫‪ -1‬البرمجة ها لم ية ( تابة لبرنامج‪ ،‬تابة واختبار‪ ،‬تابة واختبار وت حيح لالخطاء)‬


‫‪ -2‬لنت تابة برنامج ما اوال‪( :‬يجب ت حيح الخطا‪ ،‬يجب تنفيذه‪ ،‬يجب خزنه)‬
‫‪ -3‬لغة البرمجة ها من ال غات (‪)Low level ،high level‬‬
‫‪ -4‬برنامج المستختم مم ن خزنه ل ى (قرص ب‪ ،‬ليزري‪ ،‬قابة لالزاله‪ ،‬ل ى االنواع)‬
‫‪ -5‬احت م ونات نظام التاغية هو برنامج ‪ Supervisor‬يحتوي ل ى (‪،Records‬‬
‫‪)Controls ،Commands‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫االسبوع الثاني‪ :‬النظري‬

‫امتحان قبلي ‪Pre test‬‬

‫‪ -1‬للمعادلة التالية ‪ ،Y=a+b*c/n‬اوجد مدخالت ومخرجات الدالة؟‬

‫تعريف وحتليل املشكلة ‪Definition and Problem Solving‬‬

‫قبة البتء بت ميم خوارزمية ومخطط انسيابا للا البت من حلم المسألة وهذا يتط ب قراءتلا وتراستلا بتمعن‪،‬‬
‫حيث ال يم ن حة مسألة أو محاولة ح لا وها غير مفلومة با ة امة‪ ،‬وبذلك سيؤتي ح لا بتون استيعاب‬
‫الى نتائج خاطئة وربما ناق ة او نتائج لتيمة الفائتة؟ ال توجت نتائج‪.‬‬

‫حيحة‪.‬‬ ‫وبذلك يجب قراءة امسألة اوال وثانيا وثالثا حتى نفلملا لت ميم خوارزمية‬

‫فهم املشكلة ‪ /‬تقسيم املشكلة ‪ /‬حل املشكلة‪:‬‬

‫‪ -1‬تحديد النتائج‬

‫حا حالة حلم المسألة يتم تحتيت اللتف من ح لا‪ ،‬ويفترض تحتيت النتائج التا تح ة ل يلا ويط ق ل يلا (‬
‫بالمخرجات)‪.‬‬

‫‪ -2‬تحديد المعطيات‬

‫من الطبيعا لنت ت ميم خوارزمية الح وة ل ى المخرجات‪ ،‬سواء قمنا بالحة بانفسنا أو قام به الحاسب‬
‫وال يم ن تحدق ذلك بفراغ وانما يتوجب توحير المع ومات (االرقام) التا تحتاجلا المسألة مسبدا‪.‬‬
‫ومن الملم تحتيت طبيعة هذه المع ومات ول يلا سيعتمت اس وب وضع طريدة الحة وتسمى هذه المعطيات‬
‫( بالمتخالت)‪.‬‬

‫‪ -3‬طريقة الحل‬
‫بعت معرحة المعطيات ( تحتيتها) لمعرحة النتائج المط وبة (المخرجات) تأتا مرح ة ملمة وها التو ة‬
‫الى طريدة مناسبة لحساب النتائج المط وبة وهذا يعنا وضع خطوات مناسبة ل حة بااللتمات ل ى‬
‫المعطيات و وال الى النتائج‪.‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫لتوضيح ذلك‪-:‬‬
‫‪Example 1:‬‬
‫‪Calculate X value from the function below:‬‬
‫‪X+y+3=y‬‬
‫‪X=y^2+1‬‬
‫‪Solution:‬‬

‫‪The output is: X‬‬

‫‪The inputs are: X,Y‬‬

‫طريدة الحة‪:‬‬

‫المتخالت قيمة ‪X,Y‬‬

‫نستخرج قيمة ‪ Y‬الجتيتة من المعاتلة ‪y=x+y+3‬‬

‫ثم نستخرج قيمة ‪ X‬بااللتمات ل ى قيمة ‪ Y‬الدتيمة ما ي ا‪X=Y^2+1 :‬‬

‫‪Example 2:‬‬
‫احسب راتب منتسب ما اذا علمت ان‪:‬‬

‫الراتب الصافي= الراتب االسمي ‪ +‬المخصصات ‪ -‬االستقطاعات‬

‫حيث يجب اعطاء اسماء لمتغيرات تمثل تفاصيل المعادلة؟‬

‫وهناك امثلة كثيرة تم توضيحها وحلها داخل الدرس وضحنا فيها كيفية تحديد‬
‫وتحليل وحل المشكلة اضافة الى كيفية تعريف المتغيرات الالزمة للحل‪.‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫امتحان بعدي ‪Post test‬‬

‫حاول االجابة عن االسئلة االتية اذا كانت اجابتك اقل من ‪ %75‬يرجى اعادة قراءة المحاضرة‪.‬‬

‫‪ -1‬لنت ت ميم خوارزمية لما ة ما يجب (حلم الما ة‪ ،‬الديام بوضع خطة لح لا‪ ،‬ح لا حوراً)‬
‫‪ -2‬حا حالة حلم المسألة جيتا يتم تحتيت (الحة ‪ ،‬اللتف من الحة‪ ،‬المتغيرات)‬
‫‪ -3‬اوجد معطيات ومخرجات والعمليات من المعادالت االتية‪:‬‬

‫‪a) Y=b/9‬‬

‫‪b) A=PI/3*r^5‬‬

‫)‪c) X=x^2/ X^3-X*(X^2‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫االسبوع الثالث‪ :‬النظري‬

‫امتحان قبلي ‪Pre test‬‬

‫‪ -1‬هل تعرف شيئا ً عن‪ :‬الثابت الرقمي‪ ،‬المتغير‪ ،‬البرنامج‪ ،‬لغة البرمجة‪ ،‬المصفوفة؟‬

‫انواع البيانات واملتغريات املستخدمة يف لغات الربجمة‬

‫وتعريفها يف الربنامج‪:‬‬

‫البيانات تقسم الى قسمين ‪:‬‬

‫‪ -‬بيانات رقمية حيث تسند القيمة اليها كارقام‪.‬‬


‫‪Examples:‬‬
‫‪X=1‬‬
‫‪X=10‬‬
‫‪X=100‬‬
‫‪X=0.34‬‬
‫‪X=-366‬‬
‫‪X=-3.78‬‬

‫‪ -‬بيانات حرفية وتكون قيمتها حرف او سلسلة حروف‪.‬‬


‫‪X=Ali‬‬
‫‪X= a‬‬
‫‪X=A‬‬

‫االنواع االساسية‬

‫حيح حجمه ‪ 4‬بايت ‪int:‬‬ ‫لتت‬


‫حيح حجمه ‪ 2‬بايت ‪short:‬‬ ‫لتت‬

‫حيح حجمه ‪ 4‬بايت ‪long:‬‬ ‫لتت‬

‫منطدا حجمه ‪ 1‬بايت ‪bool:‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫لتت لاري حجمه ‪ 4‬بايت ‪float:‬‬

‫لتت مضالف حجمه ‪ 4‬بايت‪double:‬‬

‫حرحا من جتوة االس ا ‪char:‬‬

‫أوسع من األس ا ‪ unicode‬حرحا واسع يضم جتوة ‪wchar_t:‬‬

‫نوع يم ن أن يستعمة مع ة األنواع ‪void:‬‬

‫االنواع االضافية‪:‬‬

‫حيح حجمه ‪ 4‬بايت ‪ int,‬يساوي ‪signed int :‬‬ ‫لتت‬

‫حيح موجب اليحمة ااارة حجمه ‪ 4‬بايت ‪unsigned int:‬‬ ‫لتت‬

‫حيح موجب ق ير اليحمة ااارة حجمه ‪ 2‬بايت ‪unsigned short:‬‬ ‫لتت‬

‫حيح موجب طوية اليحمة ااارة حجمه ‪ 4‬بايت ‪unsigned long:‬‬ ‫لتت‬

‫حرحا من جتوة األس ا ‪ char,‬يساوي ‪signed char:‬‬

‫حرحا موجب من ‪ 0‬إلى ‪unsigned char : 255‬‬

‫حيح موجب طوية حجمه ‪ 8‬بايت ‪long long:‬‬ ‫لتت‬

‫حيح موجب طوية اليحمة ااارة حجمه ‪ 8‬بايت ‪unsigned long long:‬‬ ‫لتت‬

‫لتت لاري موجب طوية اليحمة ااارة حجمه ‪ 8‬بايت ‪long double:‬‬

‫االنواع المركبة وهي المصفوفات‪:‬‬

‫المصفوفات‪ :‬ها لبارة لن حاوي تدوم بتخزين لتت من العنا ر من نفس النوع وبترتيب محتت‪,‬أي ها لبارة‬
‫لن خانات حا الذا رة متجاورة مع بعضلا العض‪ ,‬وألجة الرجوع إلى خانة معينة ي فا ذ ر اسم الم فوحة مع‬
‫رقم الخانة ‪ ،‬اسم الم فوحة‪.‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫‪Example:‬‬

‫;}‪int Arr[ ] = {1, 2, 3, 4, 5, 6‬‬

‫الثوابت والمتغيرات‬
‫الثوابت‪ :‬هي قيم المعرفات التي ال تتغير خالل فترة تنفيذ البرنامج في الحاسب مثل النسبة الثابتة وهي حقيقة‬
‫غير متغيرة‪.‬‬

‫المتغير‪ :‬قت تتعرض البيانات‪ /‬المعرحات الى تغيرات مستمرة خالة مراحة تنفيذ البرنامج حع ى سبية المثاة حا‬
‫برنامج ايجات مجموع ارقام لتتية لدائمة حانه يخت ف باختالف قيمة التخة المدروءة حيث حا ة مرة يضاف رقم‪.‬‬

‫أي ها لبارة لن حاويات للا حجم معين ( ة نوع له حجم) تدوم بتخزين البيانات‪ ،‬تعت من أساسيات البرمجة‬
‫واليم ن لبرنامج أن يعمة من تونلا‪ ،‬تت ون من لتة انواع ل ة نوع حجم مخ ص له حا الذا رة اليم ن أن‬
‫يتجاوز هذا الحجم‪ ,‬إال إذا ان يستختم أنواع تينامي ية تستختم معلا المؤارات‪.‬‬

‫‪ ( ) , /‬و * ‪ + ,‬و– )‬ ‫( اولوية العمليات (االسبقية بالتنفيذ) ‪:‬‬

‫اذا وجتنا ا ثر من لم ية حا اجراء واحت يتم التنفيذ من اليسار ل يمين بعت االنتلاء من االولويات‬
‫بعتما تعرحنا ل ى انواع البيانات الرقميه ‪ ..‬اما اذا قمنا بجمع قيمة ‪ int‬مع ‪ float‬ما الذي سيحتث؟‪.‬‬
‫سيتم التحوة ت دائيا َ الى قيمة من النوع ‪ float‬حا النتيجه ‪ ..‬وذلك الن مجاله ا بر‬
‫اي اننا لن نستطيع تخزين النتيجه حا متغير من النوع ‪. int‬‬

‫الثوابت‬
‫اذا ارتنا ان نضع قيمة حا متغير تون السماح بتغييرها حيما بعت ;‪final double PI = 3.14159‬‬
‫‪ final‬تعنا ان قيمة المتغير ثابته اليم ن تعتي لا‪..‬مناظره بين الثوابت (البتائيه )‪ Primitive‬و‬
‫المرجع‪Reference‬‬
‫‪primitive data types‬‬ ‫انواع البيانات الرقميه تتلى انواع البيانات البتائيه‬
‫ال ائنات ‪ Objects‬تتلى انواع بيانات مرجع‪reference data types‬‬

‫اذن الثوابت ها لناوين تعوت الى م ان ال ائن حا الذا ره‪.‬‬

‫مثال توضيحي‬

‫هنا حجزنا م ان بالذا ره حجمه ‪Integer‬‬

‫;‪int num‬‬ ‫‪-‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫اما هنا اسنتنا قيمة حا المتغير ‪ num‬الذي سيعوت بالديمه الى الذا ره‬
‫;‪num = 3‬‬ ‫‪-‬‬

‫ومن اسمه متغير )‪ ( Variable‬اي انه ما تمت ال تابه ل يه ‪ ..‬سيتم مسح الديمه السابده من الذا ره ‪..‬‬
‫وتتغير الى الديمه الجتيته‬

‫;‪num = 3‬‬ ‫‪-‬‬


‫;‪num = 5‬‬ ‫‪-‬‬

‫لنتما نت م لن الثوابت ح ة قيمة لتتية أو ن ية تعتبر ثابت‪.‬‬

‫‪75‬‬ ‫‪// decimal‬‬


‫‪0113‬‬ ‫‪// octal‬‬
‫و تابة انواللا أيضا‪:‬‬

‫‪75‬‬ ‫‪// int‬‬


‫‪75u‬‬ ‫‪// unsigned int‬‬
‫‪75l‬‬ ‫‪// long‬‬
‫‪75ul‬‬ ‫‪// unsigned long‬‬

‫واألرقام العشرية أيضا‪:‬‬

‫‪3.14159‬‬ ‫‪// 3.14159‬‬


‫‪6.02e23‬‬ ‫‪// 6.02 x 10^23‬‬
‫‪1.6e-19‬‬ ‫‪// 1.6 x 10^-19‬‬
‫‪3.0‬‬ ‫‪// 3.0‬‬
‫‪3.14159L‬‬ ‫‪// long double‬‬
‫‪6.02e23f‬‬ ‫‪// float‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫والثوابت النصية أيضا‪:‬‬

‫'‪'z‬‬
‫'‪'p‬‬
‫"‪"Hello world‬‬
‫"?‪"How do you do‬‬

‫الكلمة المحجوزة‪const‬‬
‫ل ثوابت لتة أنواع‪ ,‬النوع األوة يعت نوع لاتي اائع االستختام‪:‬‬

‫;‪const float PI = 3.14159‬‬

‫اليم ن تغير قيمة الثابت إال لن الطريق الموارات‪ ,‬واليم نك أيضا تعريف ثابت بتون اسنات قيمة له‪ ,‬لذلك ينبغا‬
‫ل يك تعين قيمة الثابت من البتاية حدط‪.‬‬
‫التالا‪:‬‬ ‫بالنسبة لتغير قيمة الثابت لن طريق المؤارات‪ ,‬تابع المثاة‬

‫;‪const int con = 10‬‬


‫;‪int *ptr = &con‬‬
‫;)‪printf("%d\n", con‬‬
‫;‪*ptr = 5‬‬
‫;)‪printf("%d\n", con‬‬

‫حيحة‪ ,‬وتدوم بنفس العمة‪.:‬‬ ‫الدالتة النحوية األخرى لـ ‪ const,‬ال الجم تين‬

‫;‪const int t = 10‬‬ ‫يمكن كتابتها بالشكل ‪//‬‬


‫;‪int const d = 10‬‬ ‫او بالشكل ‪//‬‬

‫المؤشرات الثابتة حا السطر التالا‪ ,‬المؤار متغير (لنوان الذا رة) وقيمته ثابتة‪ ,‬أي اليم ن تغير قيمته‪:‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫;‪const *int first‬‬

‫في هذه الحالة‪ ،‬المؤشر ثابت وقيمته متغيرة‪:‬‬

‫;‪int *const second‬‬

‫في الحالة األخيرة‪ ،‬المؤشر ثابت وقيمته ثابتة‪ ،‬أي اليمكن تغير االثنين‪:‬‬

‫;‪const int *const third‬‬

‫الثوابت الرمزية‬

‫عناوين المتغيرات‬
‫يم نك إنااء ثوابت اليخ ص للا م ان حا الذا رة‪ ،‬حالمترجم يدوم بالبحث لن اسم الثابت واستبتاله بالديمة‬
‫المذ ورة‪ ،‬يعنا مجرت استبتاة حدط‬

‫‪#define PI 3.14159‬‬
‫'‪#define NEWLINE '\n‬‬

‫وبالتالا يم نك التوسع حا ذلك حتى حا رموز ال غة نفسلا‪،‬‬

‫>‪#include <stdio.h‬‬

‫; ‪#define oo‬‬
‫{ ‪#define begin‬‬
‫} ‪#define end‬‬
‫)(‪int t‬‬
‫‪begin‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫;)"‪printf("hello‬‬
‫‪end‬‬
‫)(‪int main‬‬
‫{‬
‫‪t() oo‬‬
‫‪int x = 1 oo‬‬
‫;‪return 0‬‬
‫}‬

‫ل ة متغير مخزن حا الذا رة لنوان ياير إلى الم ان الذي يوضع حيه‪ ،‬ت من حائتة المؤارات حا سرلة التنفيذ‬
‫ولبناء حاويات تينامي ية يتتغير حجملا أثناء تنفيذ البرنامج‪ ،‬أما بالنسبة ل مراجع حت من حائتتلا لنتما تمرر وسيط‬
‫لبر التواة‪ ،‬إذا نا نريت أن نرسة وسيط ذات حجم بير مثة الم فوحات والنريت أن يرسة بديمته (نسخة جتيتة‬
‫من الوسيط) ندوم باستختم المراجع‪ ،‬ل ى أية حاة المراجع ليست إال مؤارات ثابتة‪.‬‬

‫‪int var‬‬ ‫;‪= 10‬‬ ‫‪// variable‬‬


‫;‪int* varPtr = &var‬‬ ‫‪// Pointer‬‬
‫;‪int& varRef = var‬‬ ‫‪// Reference <=> const Pointer e.g.‬‬
‫)‪( int* const p) <=> (int& p‬‬

‫امتحان بعدي ‪Post test‬‬

‫حاول االجابة عن االسئلة االتية اذا كانت اجابتك اقل من ‪ %75‬يرجى اعادة قراءة المحاضرة‪.‬‬

‫‪ X=-67.78 -1‬هو ثايت (حرحا‪ ،‬رقما حيح‪ ،‬رقما لاري)‬


‫‪ Int -2‬لتت حيح حجمه (‪)4 byte, 2 byte, 1 byte‬‬
‫‪ -3‬االنواع المر بة من المتغيرات ها (‪)array ،void ،unsigned char‬‬
‫‪ -4‬االسبدية ها اجراء العم يات (با ة مرتب حسب وروتها بالمعاتلة‪ ،‬من اليسار الى‬
‫اليمين‪ ،‬من اليسار الى اليمين مع االهتمام باولوية العم يات)‬
‫‪ -5‬الم فوحة لبارة لن‪( :‬لتت من العنا ر من نفس النوع والتر يب‪ ،‬لتت من العنا ر‬
‫المرتبة‪ ،‬لتت من الخانات تحمة اسما واحتا‪ ،‬ة الذي ذ ر)‬
‫‪-6‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫االسبوع الرابع والخامس ‪ /‬النظري‬

‫امتحان قبلي ‪Pre test‬‬

‫‪ -1‬نستخدم المخطط االنسيابي لـ (النه يحتوي على اشكال متعددة‪ ،‬يبين العالقة بين‬
‫االشكال‪ ،‬لزيادة وضوح أي خوارزمية)‬
‫‪ -2‬هناك عدة انواع من المخططات وهي‪ 3( :‬انواع‪ ،‬اكثر من ‪ ،3‬نوع واحد تندرج تحته‬
‫االنواع االخرى)‬
‫‪ -3‬يتم رسم المخطط االنسيابي وذلك لغرض (وضوح المسألة‪ ،‬ان يكون طريقة لالتصال‪،‬‬
‫لوصف المعالجة‪ ،‬كل ما ذكر)‬

‫املخططات االنسيابية ‪FLOW CHART‬‬

‫‪ -‬فوائد املخططات االنسيابية‬


‫لزيادة وضوح أي خوارزمية يعبر عنها باشكال ومخططات يمكن من خاللها مالحظة‬
‫الخطوات بوضوح وتحديد االخطاء بالتالي تصحيحها بسهولة‪.‬‬

‫وهذه المخططات تسمى (المخططات االنسيابية) وتبنى بواسطة سلسلة من االشكال وكل شكل‬
‫يمثل وصفا لعملية معينة وتتصل هذه االشكال بواسطة خطوط اتجاهات تدفقية‪.‬‬
‫يمكن تعريف المخطط االنسيابي بأنه رسم تخطيطي للمنطق المستعمل في حل المسألة ‪،‬‬
‫ويتألف من مجموعه من األشكال والرموز الخاصة المرتبة حسب ترتيب معين تفرضه المسألة‬
‫ومرتبطة مع بعضها بخطوط مستقيمة ‪.‬هذه األشكال والرموز متعارف عليها وتمثل أنواع‬
‫مختلفة من الفعاليات ‪.‬يتم رسم المخطط االنسيابي للمسالة وذلك لعدة أسباب منها‪:‬‬

‫لكي ي سم الم سألة الكبيرة إلى‬ ‫لكككككي يككوفككر ككريك كككة‬


‫المنطق‬ ‫يمثل‬ ‫لكي‬ ‫عدة أجزاء صككغيرة من السك ل‬
‫اتصككككككككال بين منطق‬
‫المستخدم في حل‬ ‫التعككامككل مع ككا ويمكن برمجككة‬
‫هكككاأل ااجزاء دون قلق على‬ ‫المسألة واإلنسان‪.‬‬
‫المسألة بشكل تخطيطي ‪.‬‬
‫المسألة بشكل ا الكامل‪.‬‬
‫لكي يبين العالقكككة‬
‫لكي يوفر رؤيا واضكككككحة‬ ‫بين جزء وأخر من‬
‫لوصكككككع المعالجة و ذلك‬ ‫المسألة ‪.‬‬
‫يعطي سيطرة أفضل على‬ ‫لكي يوفر برنامج عمل‬
‫العمليات المشككككار ل ا في‬
‫حل المسألة ‪.‬‬
‫تفصيلي لحل المسألة‪.‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫‪ -‬االشكال املستخدمة يف رسم املخططات االنسيابية‬


‫هناك اشكال عديدة تستخدم في رسم المخططات االنسيابية واهمها‪:‬‬

‫و فا لعم يات االتخاة واالخراج‬

‫و فا لعم يات التاغية والمعالجة‬

‫و فا لعم يات اتخاذ الدرار‬

‫و فا لعم يات البتاية والنلاية‬

‫و فا لعم ية سابدة التعريف‬

‫و فا لروابط االا اة‬

‫اتجاهات التتحق‬

‫‪ -‬انواع املخططات االنسيابية‬

‫و يم ن ت نيفلا إلى أ ناف ثالثة ها‪:‬‬

‫‪ .‬مخططات سير العمليات التتابعية ()‪.)Sequential Flowcharts( Simple Flowchart‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫‪Start‬‬

‫‪Enter‬‬
‫‪number a‬‬

‫‪Enter‬‬
‫‪number b‬‬

‫‪Sum=a+b‬‬

‫‪Print sum‬‬

‫‪end‬‬

‫مخططات سير العمليات ذات التفرع (‪.)Flowcharts Branched‬‬ ‫‪.‬‬

‫‪ .‬مخططات سير العمليات ذات التكرار والدوران (‪.)Loop Flowcharts‬‬

‫املخططات االنسيابية البسيطة ‪Simple Flow Chart‬‬


‫امثلة متنوعة لرسم مخططات انسيابية‪:‬‬

‫مثال ‪ :‬أرسم المخطط االنسيابي لبرنامج يقوم بقراءة درجة الحرارة (بمقياس المئوي )‪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‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫‪Y=2 Then X is odd number‬‬

‫األهداف التعليمية‬ ‫خطوات التنفيذ‬ ‫التقويم‬

‫أمهد للموضوع من خالل المواضيع السابقة و الربط‬


‫بينهما‬ ‫متابعة إجابات الطلبة‬

‫أطرح سؤال على الطلبة (ما هو المخطط‬


‫االنسيابي؟) ومن ثم اقوم باالستماع الى اجابات ‪ .1‬لمعرفة المخطط‬
‫االنسيابي‬ ‫الطلبة ثم يتم توضيح لهم‬ ‫عرف المخطط االنسيابي؟‬

‫مكونات‬ ‫‪ .2‬توضيح‬
‫ما هي مكونات المخطط‬
‫المخطط‬ ‫أناقش الطلبة في مكوناته وباستخدام اللوحة أعرض‬ ‫االنسيابي؟ورقة عمل (‬
‫االنسيابي‬ ‫هذه المكونات عليها مع توضيح وظيفة كل منها‪.‬‬ ‫‪).1‬‬

‫فوائد‬ ‫‪ .3‬أن تعدد‬


‫المخطط‬ ‫بطرح بعض األسئلة واألمثلة على الطلبة أناقشهم‬ ‫المخطط‬ ‫فوائد‬ ‫عدد‬
‫االنسيابي‬ ‫في أهمية المخطط االنسيابي بالنسبة للمبرمج‪.‬‬ ‫االنسيابي؟‬

‫أنواع‬ ‫‪ .4‬نذكر‬
‫المخطط‬ ‫أذكر للطلبة أنواع المخطط مع كتابتها على السبورة‬ ‫المخطط‬ ‫أنواع‬ ‫أذكر‬
‫االنسيابي‬ ‫وإعطاء نبذة بسيطة عن كل نوع‪.‬‬ ‫االنسيابي؟‬

‫‪ .5‬أن ترسم مخططاً‬


‫أكتب للطلبة مثال على السبورة وبمشاركة الطلبة‬
‫انسيابياً من نوع‬
‫أطلب منهم كتابة الخوارزمية ومن ثم نرسم المخطط‬ ‫اكتب خوارزمية ونقوم‬
‫البسيط‬ ‫التتابع‬ ‫‪.‬مثال‪ :‬اكتبي خوارزمية وارسمي مخططاً انسيابياً‬ ‫برسم مخططاً انسيابياً‬
‫بكل صحيح‬ ‫لحساب محيط الدائرة؟‬ ‫لحساب مساحة المربع؟‬

‫متابعة إجابات الطلبة‬

‫امتحان بعدي ‪Post test‬‬

‫حاول االجابة عن االسئلة االتية اذا كانت اجابتك اقل من ‪ %75‬يرجى اعادة قراءة المحاضرة‪.‬‬

‫‪ X=-67.78 -1‬هو ثايت (حرحا‪ ،‬رقما حيح‪ ،‬رقما لاري)‬


‫‪ -2‬لو ف العم يات حا المخطط االنسيابا نستعمة الا ة (السلم‪ ،‬المستطية‪ ،‬التائرة)‬
‫‪ -3‬انواع المخططات االنسيابية (‪)5 ،2 ،3‬‬
‫‪ -4‬المخطط االنسيابا مجمولة من اة (العم يات‪ ،‬االا اة‪ ،‬االيعازات)‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫االسبوع السادس والسابع‪ :‬النظري‬

‫االمتحان ال بلي ‪Pre test‬‬

‫‪ -1‬هل يمكن استخدام انواع المخططات االنسيابية في مخطط انسيابي واحد ) نعم‪ ،‬كال)‬

‫‪ -2‬للمخطط االنسيابي البسيط خطوات مع دة تصل الى مخططات اخرى‪( .‬نعم ‪ ،‬كال)‬

‫‪ -3‬للمخطط االنسيابي المتفرع حالة واحدة‪( .‬نعم‪ ،‬كال)‬

‫املخططات االنسيابية املتفرعة وذات احللقات‬

‫‪Branched flowchart and Loop Flow chart‬‬

‫مخططات سير العمليات ذات التفرع (‪.)Flowcharts Branched‬‬ ‫‪.‬‬

‫‪Start‬‬

‫‪Enter‬‬
‫‪number a‬‬

‫‪Enter‬‬
‫‪number b‬‬

‫‪Print error‬‬ ‫‪B=0‬‬ ‫‪Div=a/b‬‬

‫‪Print div‬‬

‫‪end‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫‪ .‬مخططات سير العمليات ذات التكرار والدوران (‪.)Loop Flowcharts‬‬

‫‪i=1‬‬

‫‪Amly=1‬‬

‫‪Amly=amly*i‬‬

‫‪i=i+1‬‬

‫‪i<=5‬‬

‫‪Print error‬‬

‫‪end‬‬

‫وها تستختم من اجة تمثية لمة البرامج ذات التتحق المع وم و التا يم ن حيلا التنبؤ بالخطوة التالية ل برنامج و‬
‫بالتالا حان البرامج المداتة باألحتاث ي عب التعبير لنلا باستختام المخططات التتحدية بسبب تعتت األحتاث التا‬
‫تغير حا مسار لمة البرنامج‪.‬‬

‫يستختم حا هذه المخططات رموز معينة تعبر ة منلا لن احت العم يات المم نة حا البرنامج‪.‬‬

‫امثلة متنوعة على المخططات االنسيابية‪:‬‬

‫تمرين ‪ /1‬ارسم المخطط االنسيابي لجمع عددين‬


‫‪begin‬‬

‫‪Read‬‬
‫‪a,b‬‬

‫‪X=a+b‬‬

‫‪Print x‬‬

‫‪end‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫تمرين ‪ /2‬ارسم المخطط االنسيابي اليجاد مساحة أي مستطيل معلوم طوله وعرضه؟‬

‫‪begin‬‬

‫‪Read length,width‬‬

‫‪Area=length* width‬‬

‫‪Print Area‬‬

‫‪end‬‬

‫تمرين ‪ /3‬جد المعدل الحسابي لعددين؟‬

‫‪begin‬‬

‫‪Read x,y‬‬

‫‪Average= (x+y)/2‬‬

‫‪Print average‬‬

‫‪end‬‬

‫تمرين ‪ /4‬ارسم المخطط االنسيابي لجمع ثالث اعداد مع بيان هل سيكون المجموع اكثر من ‪500‬؟‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫‪begin‬‬

‫‪Read first, second, third‬‬

‫‪Sum= first+second+third‬‬

‫‪yes‬‬

‫‪If sum>500‬‬ ‫”‪Print “sum is greater than 500‬‬


‫‪no‬‬

‫”‪Print “sum is less than 500‬‬

‫‪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‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫امتحان بعدي ‪Post test‬‬

‫حاول االجابة عن االسئلة االتية اذا كانت اجابتك اقل من ‪ %75‬يرجى اعادة قراءة المحاضرة‪.‬‬
‫تمرين ‪ /6‬لديك عدد اختبره اذا كان اكبر من ‪ 40‬فاوجد مربعة واذا كان اقل فاوجد مكعبه؟‬

‫تمرين ‪ /7‬اقرأ عشرة اعداد واطبعها؟‬

‫تمرين ‪ /8‬احسب مساحة عشرون مربعا مختلف اطوال االضالع؟‬

‫تمرين ‪ /9‬جد مفكوك العدد ‪50‬؟‬

‫تمرين ‪/10‬اطبع االعداد من ‪ 5‬الى ‪50‬؟‬

‫تمرين ‪ /11‬اوجد معدل ‪ 70‬عددا مختلفا؟‬

‫تمرين ‪ /12‬جد مجموع عدة اعداد مختلفة؟‬

‫تمرين ‪ /13‬ارسم مخططا انسيابيا لطباعة ‪ 10‬اعداد سالبة فقط ؟‬

‫تمرين ‪ 30 /14‬عددا سالبا وموجبا‪ ،‬ارسم المخطط االنسيابي لطباعة عدد االعداد السالبة وعدد االعداد‬
‫الموجبة؟‬

‫تمرين ‪ 30 /15‬عددا مختلفا‪ ،‬ارسم مخططا انسيابيا لطباعة مجموع االعداد؟‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫االسبوع الثامن والتاسع‪ :‬النظري‬

‫امتحان قبلي ‪Pre test‬‬

‫‪-1‬هل يمكن استخدام المخططات االنسيابية كوثي ة لكتابة خوارزمية (نعم‪ ،‬كال)‪.‬‬

‫‪-2‬للخوارزمية انواع عديدة وعددها (‪.)3،7،1‬‬

‫‪-3‬الخوارزمية هي لغة يكتب ا ب ا المبرمج قبل البدء بكتابة البرنامج (نعم‪ ،‬كال)‪.‬‬

‫اخلوارزميات ‪ALGORITHMS‬‬

‫تعريف اخلوارزمية ‪Algorithm Definition‬‬

‫مجمولة من الخطوات او العم يات تعطى ل حاسوب تؤتي بمجموللا الى حة الما ة‪ ،‬حعنتما نح ة ل ى حة‬
‫لمسألة ما‪ ،‬سواء انت بسيطة او معدتة‪ ،‬ن ون قت انجزنا الخطوات التالية‪:‬‬

‫ايجات الف رة التا يم ن استختاملا ل و وة الى الحة‪.‬‬ ‫‪-1‬‬


‫خطة لتنفيذ ت ك الف رة‪.‬‬ ‫‪-2‬‬
‫و ف تقيق ل ة خطوة من خطوات الخطة‪.‬‬ ‫‪-3‬‬
‫التنفيذ والو ة الى النتيجة‪.‬‬ ‫‪-4‬‬
‫حا ل م الحاسوب تتم هذه الخطوات ام ة حا ة مسألة يرات ح لا‪ .‬حالتف ير حا المسألة واقتناص الف رة‬
‫لح لا مسؤولية االنسان وها الخطوة االولى‪ .‬بعتها نضع خطة ل حة وهذا ما نعنا بالخوارزمية ثم تأتا‬
‫الخطوة التالية وها ما ند ت بالبرنامج ـ الذي يم ن ان ي تب بأية لغة من لغات البرمجة الع يا ـ والخطوة‬
‫االخيرة اتخاة البرنامج الى الحاسوب لتنفيذه ا نح ة ل ى النتيجة‪.‬‬

‫ل ة مسألة ح رة حة قت تخت ف لن ح رة حة مسألة مسألة اخرى‪ ،‬ما ان ل ة مسألة يم ن ان يوجت ا ثر من ح رة‬


‫ل حة‪ ،‬و ة ح رة تعتمت ل ى اس وب معين او قوانين معينة‪ .‬لذلك نحتاج الى اح ار متنولة ل حة‪ .‬واذا وجتنا الف رة‬
‫ل ينا وضع خطة الحة‪.‬‬

‫مثاة ‪ /1‬االت اة باحت اال تقاء‬

‫الحة‪ /‬هناك اح ار لتيتة لتحديدلا‪ ،‬منلا الذهاب اليه اخ يا او بواسطة رسالة الو االت اة لبر اللاتف‪ ..‬الخ‪.‬‬

‫مثاة ‪ /2‬البتء حا تع م قياتة السيارة‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫الحة‪ /‬االح ار ثيرة حا هذا المثاة منلا ي حبك احت اال تقاء الى الم ان المخ ص لذلك‪ ،‬ثم تنفيذ الخطة الثانية‬
‫بااراحه‪:‬‬

‫نالحظ حا ال المثالين وجوت خطة‪ ،‬لذا يم ن ان ندوة ان أي نتيجة نريت الو وة اليلا يجب ان نم ك ح رة اوال‪،‬‬
‫ثم خطة ل و وة الى اللتف‪ ،‬هذه الخطة تسمى الخوارزمية وها ماخوذة من لدب العالم الرياضا الخوارزما‪.‬‬

‫اذن الخوارزمية ‪ :‬س س ة من الخطوات المترابطة منطديا ل و وة الى نتيجة معينة‪.‬‬

‫تصميم اخلوارزمية ‪Algorithm Design‬‬

‫تمتاز الخوارزميات بما ي ا‪:-‬‬


‫‪ -1‬ت ون لبارة لن مجمولة من الخطوات المتس س ة والمرقمة‪.‬‬
‫‪ -2‬ت ون أهتاف هذه الخطوات واضحة‪.‬‬
‫‪ -3‬ت تب ب غة س س ة وبسيطة ما يفضة االبتعات لن التاعب والحرص ل ى التقة حا ارح طريدة الحة‪.‬‬

‫انواع اخلوارزميات ‪Algorithms Types‬‬

‫املتسلسلة ‪Sequential‬‬

‫وها خوارزمية تحتوي ل ى خطوات متس س ة ال يم ن ان يؤتي تنفيذ أي منلا الى تفرع خارج الس س ة‪.‬‬

‫‪Step-1‬‬

‫‪Step-2‬‬

‫‪Step-n‬‬

‫‪:Ex‬‬

‫ضع خوارزمية ل ح وة ل ى معتة ترجات طالب ما بثالثة موات تراسية؟‬

‫الحل‪:‬‬

‫نفرض ان الترجات ها ‪ A1,A2,A3‬والمعتة هو ‪.Average‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫الخوارزمية‬

‫البتاية‬ ‫‪-1‬‬
‫اقرأ الترجات والتا تمثة )‪)a1,a2,a3‬‬ ‫‪-2‬‬
‫احسب المعتة اآلتا‪average= (a1+a2+a3)/3 :‬‬ ‫‪-3‬‬
‫اطبع قيمة المعتة وهو اة ‪Average‬‬ ‫‪-4‬‬
‫النلاية‬ ‫‪-5‬‬

‫الشرطية ‪Conditional‬‬

‫تحتوي خطواتلا ل ى اوامر ارطية من الحالتين التاليتين‪:‬‬

‫النوع االوة‪ :‬اذا (ارط) نفذ خطوات متس س ة‬

‫النوع الثانا‪ :‬اذا ارط اذن خطوات (‪ )1‬واال خطوات (‪)2‬‬

‫النوع ‪1-‬‬
‫النوع ‪2-‬‬
‫‪yes‬‬
‫‪yes‬‬
‫‪if‬‬ ‫خطوات‬
‫‪if‬‬ ‫خطوات ‪1-‬‬
‫‪No‬‬
‫‪No‬‬

‫خطوات ‪2-‬‬

‫‪Ex:‬‬

‫لتى طالب ‪ 3‬موات ‪ ،‬ا تب خوارزمية لحساب المعتة مع تابة مة "ناجح" حا حالة نجاحه و مة "راسب"‬
‫حا حالة رسوبه؟‬

‫الخوارزمية‬

‫‪ -1‬البتاية‬
‫‪ -2‬اقرأ الترجات (‪)a,b,c‬‬
‫‪ -3‬احسب المعتة ولي ن ‪ average‬ما ي ا‪average= (a+b+c)/3 :‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫‪ -4‬اذا اة ‪ average>= 50‬اطبع "ناجح" واق ت خطوة ‪6‬‬


‫‪ -5‬اطبع "حااة"‬
‫‪ -6‬النلاية‬

‫املتكررة ‪Repetition‬‬

‫في هذه الخوارزمية يتم تكرار تنفيذ مجموعة من الخطوات حسب الحالتين التاليتين‪:‬‬

‫النوع االول ‪ :‬بينما شرط حالة قائمة نفذ خطوات‬

‫النوع الثاني‪ :‬اعد خطوات حتى يتحقق الشرط‬

‫النوع ‪1-‬‬ ‫النوع ‪2-‬‬


‫‪yes‬‬ ‫‪No‬‬

‫‪if‬‬ ‫خطوات‬ ‫خطوات‬ ‫‪if‬‬

‫‪No‬‬ ‫‪yes‬‬

‫مالحظة‪ :‬يمكن استخدام جميع الخوارزميات بانواعها في خوارزمية واحدة اذ ان الهياكل تعالج اجزاء‬
‫الخوارزمية وال تقتصر على انواع محددة‪.‬‬

‫‪Ex:‬‬

‫لثالث مواد دراسية ضع خوارزمية الحتساب المعدل لمجموعة من الطلبة حيت تكتب كلمة ناجح او راسب؟‬

‫الخوارزمية‬

‫نفرض عدد الطلبة ‪ n‬واالسم ‪ name‬والمعدل ‪ av‬والدرجات ‪a,b,c‬‬

‫‪ -1‬البداية‬
‫‪ -2‬افرض ‪( n=0‬اجعل قيمة العداد لعدد الطلبة صفرا)‬
‫‪ -3‬اقرأ ‪ ( name‬اقرأ اسم الطالب)‬
‫‪ -4‬بينما “ ”><‪ name‬نفذ‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫‪ -5‬اقرأ ‪( a,b,c‬اقرأ درجات الطالب)‬


‫‪(N=n+1 -6‬اضف واحد الى قيمة العداد )‬
‫‪ -7‬احسب ‪( av=(a+b+c)/3‬احسب قيمة المعدل حسب المعادلة)‬
‫‪ -8‬اذا كان ‪ av>=50‬اطبع "ناجح" واقصد خطوة ‪3‬‬
‫واال اطبع "راسب" واقصد خطوة ‪3‬‬
‫‪ -9‬النهاية‬

‫امتحان بعدي ‪Post test‬‬

‫حاول االجابة عن االسئلة االتية اذا كانت اجابتك اقل من ‪ %75‬يرجى اعادة قراءة المحاضرة‪.‬‬
‫‪-1‬اكتب خوارزمية لطبع اسم الب ومعدله‪.‬‬

‫‪-2‬اكتب مثاال لخوارزمية متفرعة‪.‬‬

‫‪-3‬الخوارزمية هي عدد من (االشكال‪ ،‬الخطوات‪ ،‬االيعازات)‬

‫‪-4‬يمكن كتابة الخوارزمية باالعتماد على (البرنامج‪ ،‬المخطط االنسيابي‪ ،‬الم ابلة الشخصية مع‬
‫صاحب المشكلة)‬

‫‪-5‬يجب على المبرمج كتابة الخوارزمية اوال قبل البدء باي اجراء اخر (نعم ‪ ،‬ال)‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫االسبوع العاشر ( النظري)‬

‫امتحان قبلي ‪Pre test‬‬

‫‪ -1‬من صفاته (يتنفا‪ ،‬واضح‪ ،‬االثنان معا)‬


‫‪ -2‬ان الحصول على البرنامج الصحيح و الف ّعال يمكن تح ي ه باستخدام الخوارزميات و بناء‬
‫المعطيات البسيطة ( نعم‪ ،‬كال)‬
‫‪ -3‬التحليل للبرنامج هو المفاضلة بين الخوارزميات المتوفرة لحل نفس المسألة تبعا لم اييس‬
‫مفاضلة متفق علي ا الختيار (ابسط ا‪ ،‬االكثر ف ما‪ ،‬أفضل ا)‬

‫صفات الربنامج اجليد‪Qualities of a good program‬‬

‫هناك مواصفات محددة يجب أن ُيحققها البرنامج حتى نقول أنه جيد وهي‪:‬‬

‫حيح ‪ :‬حال يجب أن يدوم البرنامج بطبالة ناتج ضرب رقمين مثالً بتة جمع رقمين‪.‬‬ ‫‪ .1‬يُنفذ با ة‬

‫‪ .2‬حعّاة ‪ :‬ند ت ب مة حعّاة أن البرنامج يجب أن يستغرق أقة وقت مم ن و حا بعض األحيان هناك أمور‬
‫أخرى هامة يجب أن ُتأخذ بعين اإللتبار (مثة استختام أقة قتر مم ن من ذا رة ال ومبيوتر) حتى‬
‫يُداة أن البرنامج حعاة‪.‬‬

‫‪ .3‬من السلة قراءته و حلمه ‪ :‬حتى من قِبة اخص آخر غير ذلك الذي قام ب تابة البرنامج‪.‬‬

‫حة البرنامج و من أنه يدوم بالمط وب‪.‬‬ ‫‪ .4‬من السلة حح ه و تتقيده ‪ :‬حالبت من التأ ت من‬

‫‪ .5‬من السلة تعتي ه ‪ :‬حلناك تائما ً إ تارات جتيتة و نسخ معتلة من البرامج‪.‬‬

‫ان الح وة ل ى البرنامج ال حيح و الفعّاة يم ن تحديده باستختام الخوارزميات و بناء المعطيات المناسبة (و‬
‫هذا ما يميز المبرمجين المحترحين لن هواة البرمجة‪).‬‬

‫ال فات ‪ 5،4،3‬من فات البرنامج الجيت لم ت ن واضحة ل مخت ين حا البتايات حين ان ل م البرمجة حا الملت‬
‫غيراً ( ثيرون يعتدتون أنه ما زاة حا الملت و يدولون أن ل م برمجة ال ومبيوتر لم ينضج بعت) حدت ان إهتمام‬
‫أوائة المبرمجين من ب ل ى حة الما ة و انوا يستختمون ما يستختمه اآلن هواة المبرمجين مما يتلى‬
‫‪ clever coding‬أو التتوين الذ ا ل برامج حيث ان يتم بلتف الح وة ل ى برنامج سريع و غير الحجم‬
‫تمج بعض التع يمات مع بعضلا البعض بطريدة ي عب قراءتلا أو حلملا أحيانا ً حتى من قبة من قام ب تابة‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫البرنامج إذا أرات بعت حترة من الزمن إلاتة قراءة البرنامج لسبب ما‪ .‬و ل ن التجارب العم ية أثبتت أهمية هذه‬
‫ال فات‪.‬‬

‫لنأخذ ل ى سبية المثاة ما ة العام ‪ 2000‬الاليرة ناأت هذه الما ة نتيجة قيام أوائة المبرمجين بتسجية‬
‫الخانتين األخيرتين من التاريخ حدط بلتف إخت ار حجم الذا رة المط وبة و للم لذرهم حدت انت أسعار وسائة‬
‫التخزين األل ترونا غالية الثمن‪ .‬إذاً حة هذه الما ة ي ون و ب ة بساطة بتعتية طريدة حفظ التاريخ حتى تدبة‬
‫الخانات األربعة و تعتية التع يمات التا تتعامة مع التاريخ‪ .‬هذا حيح من الناحية النظرية و ل ن ال عوبة لم يا ً‬
‫ت من حا عوبة قراءة و ححص و تعتية البرامج التا تعانا من هذه الما ة و التا تمت تابتلا تون األخذ بعين‬
‫اإللتبار الدوالت السابدة‪.‬‬

‫مراحل تطور النظام ‪Program Development Stages‬‬

‫تمر عملية تطوير البرامج بخمس خطوات رئيسية‪:‬‬

‫تو يف المتط بات )‪ : (Requirements Specification‬تحتيت (حلم) المتخالت والمخرجات‪.‬‬ ‫‪-1‬‬


‫الت ميم ‪ (Design) :‬تحتيت العم يات الرئيسية التا تطبق ل ى ة يان بيانا واحتراض وجوت اجلزة‬ ‫‪-2‬‬
‫معالجة لتنفيذ هذه العم يات ‪.‬‬
‫التح ية )‪ : (Analysis‬المفاض ة بين الخوارزميات المتوحرة لحة نفس المسألة تبعا لمداييس مفاض ة‬ ‫‪-3‬‬
‫متفق ل يلا (تعديتات الوقت‪ ،‬تعديتات الخزن) الختيار أحض لا‪.‬‬
‫تحسين وترميز )‪ : (Refinement & coding‬حا هذه الخطوة يتم تحتيت التمثية البيانا ل ة يان ثم‬ ‫‪-4‬‬
‫آتابة إجراءات ل ة لم ية ل ى ت ك ال يانات وت وين نسخة مت ام ة ل برنامج ‪.‬‬
‫التحدق من ال الحية )‪ : (Verification‬تتضمن هذه الخطوة ثالث جوانب مخت فة‪.‬‬ ‫‪-5‬‬
‫أ) البرهنة ل ى ال حة )‪ :(Proving‬يجب إثبات ان البرنامج حيح قبة استختامه‪ ،‬حيث يتم استختام‬
‫طرق معينة ل برهنة ل ى ال حة ‪.‬‬
‫ب) االختبار )‪ : (Testing‬ها لم ية توليت نماذج بيانية يعمة ل يلا البرنامج حيث إن اللتف منلا هو‬
‫إلطاء إاارة ل ى وجوت أخطاء حا البرنامج‬
‫جـ) تاخيص األخطاء )‪ : (Debugging‬ها لم ية تحتيت مواقع األخطاء حا البرنامج وت حيح‬
‫االيعازات التا سببت ت ك األخطاء‪.‬‬

‫امتحان بعدي ‪Post test‬‬

‫حاول االجابة عن االسئلة االتية اذا كانت اجابتك اقل من ‪ %75‬يرجى اعادة قراءة المحاضرة‪.‬‬
‫‪ -1‬اختبار البرنامج (لم ية توليت نماذج بيانية ‪ ،‬توليت نتائج)‬
‫‪ -2‬تحتيت مواقع الخطأ ها مسؤولية ( ‪)Debugging ،Coding ،Testing‬‬
‫‪ -3‬تنفيذ البرنامج با ة حيح يعنا لتم وجوت اخطاء اثناء التنفيذ (نعم ‪ ،‬ال)‪.‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫االسبوع الحادي عشر ( النظري)‬

‫امتحان قبلي ‪Pre test‬‬

‫عند البدء بكتابة برنامج يجب اوال تحديد (المدخالت‪ ،‬المتغيرات‪ ،‬لغة البرنامج)‬ ‫‪-1‬‬

‫تفضل البرمجة الحديثة استخدام لغة (تستخدم واج ات‪ ،‬ال تستخدم واج ات‪ ،‬تخدم المشكلة)‬ ‫‪-2‬‬

‫االولوية في الحساب تعني (ترجيح برنامج على اخر‪ ،‬تنفيا برنامج قبل خر‪ ،‬ترجيح عملية‬ ‫‪-3‬‬

‫حسابية على اخرى)‬

‫كتابة الربنامج‪Writing Program‬‬

‫تصميم واجهة البرنامج‬

‫حتت م ناحذة تحتاج لبرنامجك وماها االتوات التا تحتاجلا‬

‫احتاج الى ناحذة واحتة حدط وها ‪Form1‬‬


‫احتاج الى ‪:‬‬

‫وخانة لنوان ‪label1‬‬

‫خانة نص ‪text1‬‬

‫و زري تح م ‪Comman1 , Command2‬‬

‫نضع هذة االتوات ل ى الناحذة‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫ضبط الخصائص‬

‫قبل‬

‫ضبط حجم وموقع االتوات ل ى‬ ‫‪‬‬


‫الناحذة‬
‫ضبط حجم االتوات وذلك بوضع مؤار الفارة‬ ‫‪‬‬

‫ل ى زاوية االتاة ثم السحب مع اإلبداء‬

‫بعت‬ ‫ل ى زر الفارة مضغوط مثة ت بير الناحذة‬

‫وضبط االتوات‬

‫قبل‬ ‫ضبط خصائص هذة االدوات‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫بعد‬

‫حدد اداة ولتكن اداة العنوان وذلك بالضغط عليها‬

‫مث اذهب اىل قائمة اخلصائص ‪properties‬‬

‫غري ‪caption= label1‬‬

‫اىل اهالوسهال = ‪،caption‬‬

‫وعمل ذلك مع باقي االدوات فتصبح النافذة بشكلها أعاله‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫كتابة التعليمات‬

‫انقر على على زر السالم عليكم نقراً مزدوجاً مث تظهر‬


‫لك النافذة التالية‬

‫مث اكتب االيت‬

‫"السالم عليكم " = ‪Text1.text‬‬

‫انقر على على زر خروج نقراً مزدوجاً مث تظهر‬


‫لك النافذة التالية‬

‫مث اكتب االيت ‪End‬‬

‫تنفيذ البرنامج‬

‫اما من خالة المفتاح ‪F5‬‬

‫او من خالة قائمة ‪ Start‬ثم ‪Run‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫التنفيذ واجياد االخطاء ‪Implementation & Debugger‬‬

‫تجربة البرنامج و تنفيذه‪:‬‬

‫بعت الح وة ل ى البرنامج اللتحا‪ ،‬تتم تجربته ل تأ ت من حته منطديا ً وذلك باستختام لينة من المعطيات‬
‫االختبارية ‪Test Data‬حإذا ثبت حة طريدة الحة بمطابدة النتائج الخارجة من الحاسب مع النتائج التا تم‬
‫الح وة ل يلا يتويا ً ل ى سبية المثاة‪ ،‬يم ن تنفيذ البرنامج ل ى المعطيات الحديدية‪.‬‬

‫حا ل م الحاسوب‪ ،‬يعرّف الخطأ المنطقي ل ى أنه خطأ حا البرنامج يجع ه يعمة بطريدة غير حيحة‪ ،‬و ل نه ال‬
‫يتوقف لن العمة با ة مفاجئ‪ .‬الخطأ المنطدا ينتج لنه مخرجات غير مد وتة أو غير مرغوب بلا أو أي‬
‫س وك آخر‪ ،‬رغم أنلا قت ال ت تاف حا حينلا‪.‬‬
‫الخطأ المنطدا يم ن أن يحتث حا ال نولا لغات البرمجة ‪:‬المترجمة )‪ (compiled‬و المفسرة‬
‫‪(interpreted).‬ل ى ل س البرنامج الذي يحتوي ل ى خطأ قوالتي)‪ ، (syntax error‬حإن البرنامج الذي‬
‫يحتوي ل ى خطأ منطدا يعتبر برنامجا ً الحا ً طبدا ل غة البرمجة‪ ،‬رغم أنه ال يعمة بالا ة المرغوب به‪ .‬الطريدة‬
‫الوحيتة الست ااف األخطاء المنطدية هو استخراج ح وة خاطئة (أي تنفيذ البرنامج و تتبع بعض الخطوات التا‬
‫من المفترض أن تخرج نتائج معينة ثم ا تااف أنلا تخرج نتائج مغايرة)‪.‬‬
‫اسباب شائعة‬
‫حيحة) أو خ ة‬ ‫يم ن أن يعوت الخطأ إلى غ طة حا تابة جم ة برمجية (معاتلة خاطئة أو غير‬
‫حا خوارزمية أو ربما أنه تم اخيار الخوارزمية الخطأ أو غير المناسبة ل حالة‪.‬‬

‫تصحيح االخطاء االمالئية‬


‫إحتى الطرق إليجات األخطاء المنطدية هو أن يتم إخراج قيم متغيرات البرنامج إلى م ف أو إلى الاااة ا‬
‫يتم تحتيت موقع الخطأ حا الايفرة‪ .‬بالرغم من أن هذه الطريدة لن تجتي حا ة الحاالت‪ ،‬مثال لنتما ي ون الخطأ‬
‫حا مناتاة الروتين الفرلا الخاطئ‪ ،‬إال أنلا أسلة الطرق حا إيجات الخطأ إذا انت الما ة حا أن البرنامج يستختم‬
‫حسابات رياضية خاطئة‪.‬‬
‫المصحح )‪ ( Debugger‬ويسمى أيضًا المنقح حا ل م البرمجة هو أتاة لتاخيص‪ ،‬إيجات‪ ،‬و إزالة األخطاء من‬
‫أنظمة الحواسيب؛ خ و ًا من البرمجيات‪.‬‬
‫هذا مثاة ل ى تالة )‪ (function‬م توبة ب غة سا )‪ (C‬هتحلا حساب معتة رقمين و ها تحتوي ل ى خطأ منطدا‪.‬‬
‫هنالك أقواس ناق ة حا المعاتلة‪ ،‬لذا حإن البرنامج يترجم بنجاح و يعمة و ل نه ال يعطا نتائج حيحة بسبب‬
‫أولوية العم يات الحسابية حا لغة سا ‪ (operator precedence in C).‬أي أن البنامج يبتأ بتدييم الدسمة قبة‬
‫الجمع‪.‬‬

‫)‪int average(int a, int b‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫{‬
‫;‪return a + b / 2‬‬ ‫‪ (a + b) / 2 */‬ان يجب أن ت ون *‪/‬‬
‫}‬

‫االسبوع الثاني عشر ( النظري)‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫انواع االخطاء الربجمية ‪Types of errors‬‬

‫ضمن لم ية تطوير البرنامج)‪ ، (application development‬يواجه المبرمجون بعتة انواع من األخطاء‪.‬‬


‫‪ -‬أخطاء هجائية )‪ (syntax errors‬أحيانا ً تسمى أخطاء بناء )‪ (build errors‬و هو تعبير أامة ‪،‬‬
‫أخطاء بناء الجم ة ها ت ك التا تظلر أثناء تابة التع يمات البرمجية ‪ .‬نتحدق من التع يمات البرمجية أثناء‬
‫تابتلا حا ناحذة محرر التع يمات البرمجية و ينبلنا إذا قمنا بخطأ ما ‪ ,‬مثة تلجئة مة با ة خاطئ أو‬
‫استختام لن ر لغة با ة غير حيح ‪.‬وها أنواع األخطاء األ ثر ايولا ً ‪.‬و يم ننا إ الحلا بسلولة‬
‫حا بيئة التع يمات البرمجية بمجرت حتوثلا‪.‬‬

‫‪ -‬األخطاء المنطدية )‪ (logical errors‬وهو أخطر األخطاء‪ ،‬وت من خطورة األخطاء المنطدية حا لتم‬
‫قترة المترجم )‪ (compiler‬ل ى افلا ‪ .‬لذا حدت يرت بلا المبرمج تون ق ت و ينجح حا بناء برنامجه‬
‫بتون أي تحذير ‪.‬‬
‫يبذة مترجم ال غات البرمجية ق ارى جلته ل اف لن مثة هذه األخطاء و التنبيه للا‪ .‬و تنترج ال ثير‬
‫من تحذيراته )‪ (compiler warnings‬تحت هذا الموضوع ‪ .‬مثال ُ التحذير رقم ‪ C4700‬يظلر لينبلنا‬
‫حا لغة ‪ C‬أو ‪C++‬إلى أننا قت قرأنا قيمة من متغير غير مليأ )‪. (uninitialized‬‬
‫وتظلر لنتما ي ون التطبيق قيت االستختام‪ .‬و ت ون معظم نتائج غير المتوقعة أو غير المرغوب حيلا‬
‫غالبًا حا االستجابة ل ى إجراءات المستختم‪ .‬و ل ى سبية المثاة‪ ،‬قت يتسبب المفتاح الم توب با ة غير‬
‫حيح أو تأثير خارجا آخر حا توقف التطبيق الخاص لن العمة ضمن المع مات المتوقعة أو يسبب‬
‫ذلك تماما ً ‪.‬‬
‫‪ -‬أخطاء وقت التاغية ‪ : Run Time Error‬وها ت ك التا تظلر حدط بعت التحوية البرمجا ل تع يمات‬
‫البرمجية و تاغي لا ‪.‬و تتضمن هذه التع يمات البرمجية التا قت تبتو حيحة من حيث لتم احتواءها ل ى‬
‫أخطاء حا بناء الجم ة ل ن لن يتم تنفيذها ‪.‬و ل ى سبية المثاة‪ ،‬قت ت تب خط من التع يمات البرمجية با ة‬
‫حيح لفتح م ف ‪.‬و ل ن إذا ان الم ف تالفا ً ‪ ،‬التطبيق ال يم نه تنفيذ تالة ‪Open‬و يتوقف لن التاغية ‪.‬و‬
‫يم نك إ الح معظم أخطاء وقت التاغية لن طريق إلاتة تابة التع يمات البرمجية الخاطئة و ثم يعيت‬
‫التحوية البرمجا و يعيت التاغية‪.‬‬
‫‪ -‬االخطاء المعنوية ‪ :Semantic Error‬بعد طلب التنسيق تكتشف األخطاء النحوية إن وجدت‪ ,‬وتصحيحها‬
‫يتم ابتداء من المحرّر ‪ ,‬وتتكرّر العملية حتّى تصحّح كلّها ‪ ,‬أما األخطاء المعنوية فتكتشف أثناء التنفيذ‪.‬‬

‫االسبوع الثالث عشر ( النظري)‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫االختبار‪ Testing‬الثوثيق والصيانة ‪Documentation & Maintenance‬‬

‫االختبار‪Testing‬‬

‫يعتبر إختبار البرامج من األجزاء الرئيسة في المشاريع البرمجية‪ ،‬وهو يأخذ حيز كبير من الزمن‪ ،‬لكن ميزته‬
‫أنه يمكن أن يقوم به غير المبرمجين‪ .‬وينتج عن اإلختبارات معرفة المشاكل الفنية في البرامج إلصالحها‪ ،‬مما ينتج‬
‫عنه نظام يُعتمد عليه‪ .‬وكلما زاد اإلستثمار في اإلختبار وإصالح المشاكل كما زادت إعتمادية المنتج‪ ،‬وخاصة في‬
‫المشاريع مفتوحة المصدر حيث يُساهم معظم المستخدمون في اإلختبار‪ ،‬ويعتبر االختبار هو تجمع الكتل مع بعضها‬
‫ويختبر النظام للتأكد من موافقته لجدول الشروط والمواصفات‪ ،‬وخاصة إذا كانت الكتل قد كتبت من قبل عدة أعضاء‬
‫في الفريق ‪ ،‬وهناك بعض األسباب التي تجعل البرامج ينتج عنها علل وتحتاج إلختبار هي‪:‬‬

‫إضافة ميزات أو أجزاء جديدة في البرامج‪ ،‬حيث أن هذه الميزات الجديدة ربما تتسبب في بعض التغييرات في‬ ‫‪‬‬
‫البرنامج وينتج عنها سلوك غير متوقع‪.‬‬
‫تعديل بعض األجراءات لتحسينها مثالً‪ ،‬ربما ينتج عنه تأثير غير متوقع على بعض اإلجراءات األخرى‪.‬‬ ‫‪‬‬
‫تغيير بيئة استخدام البرنامج‪ ،‬مثالً تغيير أنظمة التشغيل أو إختالف هيكلية تطوير البرنامج أو التي تم اختباره فيها‪.‬‬ ‫‪‬‬
‫فعند التشغيل في بيئة مختلفة يُمكن أن تظهر مشكلة لم تكن تظهر في البيئات أو أنظمة التشغيل األخرى‪.‬‬
‫إدخال نوع جديد من البيانات‪ ،‬أحيانا ً عند استخدام بيانات جديدة تظهر بعض المشاكل او التوقفات‪ ،‬مثالً في التقارير‬ ‫‪‬‬
‫يحدث أحيانا ً تداخل البيانات بسبب زيادة طولها‪ ،‬أو استخدام لغة أو خط مختلف‪.‬‬
‫أحيانا ً يقوم المبرمج بعمل عدة اختبارات دون أن تظهر له مشاكل‪ ،‬لكن كتجربة‪ ،‬إذا أردت أن تكتشف أكبر‬
‫عدد من االمشاكل‪ ،‬قم بعرض البرنامج على مجموعة من المستخدمين أو الزمالء‪ ،‬في هذه الحال تأكد من أنه سوف‬
‫تظهر لك مشكلة محرجة لم تمر علينا من قبل‪.‬‬

‫يختلف حجم االختبار باختالف حجم التغيير‪ ،‬فكلما كانت اإلضافة أو التغيير في النظام كبير‪ ،‬كلما كانت هُناك حاجة‬
‫إلجراء اختبار أكبر لوقت أطول‪.‬‬

‫ومن األساليب الفاعلة في عملية االختبار‪ ،‬هي أن يقوم المبرمج نفسه باستخدام البرنامج الذي قام بتطويره إستخداما ً‬
‫حقيقياً‪ .‬فإذا كان برنامج لتسجيل الواجبات والمهام مثالً فعليه استخدامه في حياته العملية باعتباره مستخدم حقيقي‪.‬‬
‫في هذه الحال كل المشاكل التي سوف تظهر يُمكن أن يقوم بمعالجتها مباشرة‪ .‬وعند عمل إضافات يكون هو أول‬
‫من جرب هذه اإلضافات قبل تحديثها عند باقي المستخدمين‪ .‬فأفضل له أن يكون هو ضحية األولى للمشاكل الناتجة‬
‫عن اإلضافات والميزات الجديدة من أن يكون الضحية مستخدميه وزبائنه‪.‬‬

‫الثوثيق ‪Documentation‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫وهي م رحلة هامة من مراحل بناء النظام البرمجي حيث يتم توثيق البناء الداخلي للبرنامج؛ وذلك بغرض‬
‫الصيانة والتطوير‪ .‬يفضل عادة أن يترافق التوثيق مع كل مرحلة من المراحل السابقة والالحقة‪ ،‬وأن يكون هناك‬
‫فريق خاص يهتم بعملية التوثيق لجميع المشاكل والحلول التي يمكن أن تظهر أثناء بناء البرمجية‪ .‬وبدون التوثيق‬
‫قد يصل المبرمج إلى مرحلة ال يعود بعدها قادراً على متابعة صيانتها وتطويرها؛ مما يزيد الكلفة المادية والزمنية‬
‫الخاصة بهذا البرنامج إلى حدود غير متوقعة‪ ،‬أو بمعنى آخر الفشل في بناء برامج ذات جودة عالية ودورة حياة‬
‫طويلة‪ .‬وهناك أكثر من طريقة للتوثيق‪:‬‬

‫‪ -‬توثيق المبرمج وهو ممكن أن يكون بأضافة تعليقات داخل الشفرة البرمجية‪.‬‬

‫‪ -‬توثيق المحلل بكتابة مستندات شرح لدورة البرنامج‪.‬‬

‫‪ -‬توثيق االختبار للنظام وفيها يتم تسجيل نقاط الخلل في البرنامج‪.‬‬

‫الصيانة ‪Maintenance‬‬

‫ان هذه المرحلة هي المرحلة األطول في حياة النظام البرمجي لبقاء النظام قادراً على مواكبة التطورات‬
‫والمعدات الحديثة‪ ،‬جزء من هذه المرحلة يكون في تصحيح األخطاء‪ ،‬والجزء اآلخر يكون في التطوير وإضافة‬
‫تقنيات جديدة‪.‬‬

‫االسبوع الرابع عشر ( النظري)‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫التصميم من االعلى اىل االسفل ‪Top- Down design‬‬

‫سؤال اختباري‪ /‬حلل مشكله درس الخوارزميات بطريقة التصميم من االعلى الى االسفل‬

‫تعتبر طريقتا التصميم من أعلى ألسفل‪ ،‬ومن أسفل ألعلى من اإلستراتيجيات التي تستخدم في معالجة‬
‫المعلومات وترتيب المعرفة وغالبا ما تتطلب استخدام البرمجيات ونظريات إنسانية وعلمية كذلك ‪ .‬ويمكن النظر‬
‫إلى هاتين الطريقتين عمليا كنظامي تفكير وتعليم‪ .‬تستخدم طريقة التصميم من أعلى إلى أسفل في كثير من‬
‫الحاالت كمرادف لمصطلح التحليل أو تقسيم المشكلة إلى وحدات صغيرة بينما تستخدم طريقة التصميم من أسفل‬
‫إلى أعلى كمرادف لمفهوم التخليق أو االصطناع‪.‬‬

‫إن طريقة التصميم من أعلى ألسفل ( وتعرف أيضا بالتصميم المتدرج) هي أساسا عبارة عن تحليل النظام‬
‫بهدف اكتساب المعرفة بالنظم الفرعية التركيبية الخاصة به‪ .‬تصاغ النظرة العامة للنظام في طريقة التصميم من‬
‫أعلى ألسفل بحيث تحدد وال تفصل أي أنظمة فرعية من المستوى األول‪ .‬تتم بعد ذلك تنقية النظام الفرعي بتفصيل‬
‫أكبر وأحيانا في مستويات فرعية إضافية إلى أن يتم تقليص كامل المواصفات إلى العناصر األساسية‪ .‬غالبا ما يتم‬
‫تحديد مواصفات نموذج التصميم من أعلى إلى أسفل بمساعدة "الصناديق السوداء" مما يساعد في تسهيل معالجتها‪.‬‬
‫ومع ذلك قد يفشل اختبار الصناديق السوداء في توضيح اآلليات األساسية لعمل هذه الطريقة أو في أن يكون مفصال‬
‫كفاية لتقييم صحة النموذج بشكل واقعي‪.‬‬

‫تعتبر هذه الطريقة أسلوبا برمجيا من حيث أنها عماد لغات البرمجة اإلجرائية التقليدية التي يبدأ فيها التصميم‬
‫عن طريق تحديد األجزاء المعقدة ومن ثم تقسيمها إلى أجزاء أصغر تباعا‪ .‬إن التقنية المتبعة في كتابة البرنامج‬
‫باستخدام طرق التصميم من أعلى ألسفل هي كتابة إجراء يعمل على تسمية كل الوظائف الرئيسية التي يحتاجها‪.‬‬
‫يقوم فريق البرمجة فيما بعد باالطالع على متطلبات كل من هذه الوظائف ويتم تكرار هذه العملية‪ .‬ستقوم هذه‬
‫اإلجراءات الفرعية المجزأة في النهاية بأداء األفعال بطريقة بسيطة جدا بحيث يمكن كتابة الشيفرة الخاصة بها‬
‫بسهولة وإيجاز‪ .‬يكون البرنامج جاهزا الختباره عندما تتم برمجة مختلف الروتينات الفرعية الخاصة به‪ .‬يمكن أن‬
‫يكون العمل في المستوى المنخفض مستقال عن طريق تعريف كيفية دمج التطبيق معا في المستوى األعلى‪ .‬يمكن‬
‫ت عريف الواجهات بشكل أكثر وضوحا عن طريق تعريف التوقعات الخاصة بتكامل تجريدات المستوى المنخفض‬
‫مع تلك ذات المستوى األعلى‪.‬‬

‫االسبوع الخامس عشر ( النظري)‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫امتحان قبلي ‪Pre test‬‬

‫السؤال االختباري‪ /‬حلل مشكلتك الدراسية بطريق التصميم من االسفل الى االعلى‬ ‫‪-1‬‬

‫التصميم من االسفل اىل االعلى ‪Down- Top design‬‬

‫أما طريقة التصميم من األسفل ألعلى فهي عبارة عن دمج أجزاء األنظمة معا إلنشاء نظم أكثر ضخامة وبذا يتكون‬
‫نظام ناشئ هو عبارة عن تجميع لألنظمة الفرعية الخاصة باألنظمة األصلية‪ .‬يتم في هذا التصميم تحديد العناصر‬
‫األساسية المنفردة للنظام أوال في تفصيل كبير‪ ،‬من ثم ربطها معا لتكون أنظمة فرعية أكبر حجما يتم ربطها بدورها‬
‫مع بعضها على مستويات عدة أحيانا إلى أن يتم تشكيل نظام مكتمل عالي المستوى في النهاية‪.‬‬

‫في هذه الطريقة يتم تحديد عناصر القاعدة المنفردة للنظام في تفصيل كبير حيث يتم ربط هذه العناصر معا‬
‫لتكون أنظمة فرعية أكبر إلى أن يكتمل النظام‪ .‬تشبه هذه الطريقة في عملها نموذج "البذرة" حيث تكون البدايات‬
‫صغيرة ولكنها تنمو لتصبح في النهاية أكثر تعقيدا واكتماال‪.‬‬

‫إن البرمجة كائنية التوجه هي نموذج برمجي يستخدم "الكائنات" لتصميم التطبيقات وبرامج الحاسوب‪ .‬في الهندسة‬
‫الميكانيكية التي تحوي برمجيات مثل ‪ Pro/ENGINEER‬و ‪Solidworks‬و ‪ Autodesk‬يكون بإمكان‬
‫المستخدمين الذين يتمتعون بروح االبتكار تصميم منتجات على شكل أجزاء ال تنتمي لكامل النظام ومن ثم إضافة‬
‫هذه القطع معا لتشكل تراكيب مختلفة‪ ،‬ويسمي المهندسون هذه الطريقة بالتصميم جزئي القطعة‪ .‬غير أن لطريقة‬
‫التص ميم هذه من أسفل ألعلى نقطة ضعف وحيدة وهي أن الحدس الجيد أمر ضروري لتقرير الوظيفة التي يجب‬
‫أن توفرها الوحدة‪ .‬فإن كان النظام سيبنى من نظام قائم أصال فإن هذه الطريقة هي أكثر مالئمة بما أنها تبدأ من‬
‫وحدات موجودة أصال‪.‬‬

‫على كل فإن برنامج ‪ Pro/ENGINEER‬كما باقي برامج التصميم بالحاسوب ‪ CAD‬يتوافر على احتمال القيام‬
‫بالتصميم من أعلى ألسفل باستخدام الطريقة المعروفة باسم الهياكل‪ .‬وتوجد هياكل عامة تحوي معلومات عن‬
‫التخطيط الكامل للمنتج ويمكن أن ترث األجزاء الواجهات والعوامل من هذا التركيب العام‪ .‬وكمثل األجزاء فإنه‬
‫يمكن وضع الهياكل في تسلسل هرمي وبذا يكون من الممكن بناء تخطيط كامل للمنتج قبل تصميم أجزائه‪.‬‬

‫المشكلة في هذا الجزء فقط‪ ،‬يقوم المحلل‬


‫بتحليل المشكلة لبيان نوعها وتفاصيلها‬
‫بالتعاون مع مسؤول النظام وبذلك يقوم‬
‫المبرمج باالطالع وفهم المشكلة لتصميم‬
‫مدرس مساعد‬ ‫الزهرةذه المشكلة وحلها ‪ ،‬ماجستير تقنية معلومات‬ ‫يقومعبد‬
‫بتفادي ه‬ ‫سهاد‬ ‫اعداد‪:‬‬
‫برنامج‬
‫واخيرا ربطها مع النظام القائم‬
‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫االسبوع السادس عشر ( النظري)‬

‫امتحان قبلي ‪Pre test‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫‪ -1‬السؤال االختباري‪ /‬حلل مشكلتك الدراسية بطريق التصميم من االسفل الى االعلى‬

‫دورة حياة العملية ( الربنامج) داخل احلاسوب ‪Process Life Cycle‬‬

‫حنعنا به ها بناء البرنامج منذة لحظة وروت الف رة حا الذهن إلا خروج البرنامج ل عمية بة و ختمة ما‬
‫بعت البيع وهذا تعريدف مخت ر جتاً و إال حإن تورة الحياة ل نظام البرمجا طوي ة و تمر بمراحة مخت فة و لتيتة‬
‫ليخرج ل نور و ي ة حا أيتي العمالء و ما ذ رنا حا المداة السابق أنة ليست تابة األ وات و الافرات ‪Coding‬‬
‫هو الندطة الرئيسة حا تورة الحياة ت ك بة مم ن أن ت ون أق لا و قتالً و مجلوتا‬

‫‪ -1‬االستعداد ‪Ready‬‬

‫وهو لم ية اتخاذ قرار البتأ حا برنامج معين ؟ وهذا يتم لسببين رئيسيين و هما‪:‬‬

‫‪ -1‬الف رة ‪ ،‬حيبتأ البرنامج حا أالذهان بمجرت ح رة و بمجرت وضعلا ل ا الورق ت بح الف رة قيت التنفيذ‪.‬‬
‫‪ -2‬احتياجات السوق ‪ ،‬و بح ر ت ك االحتياجات حتبتأ العدوة حا احذ أح ارها إلخراج البرنامج المط وب لست‬
‫ت ك االحتياجات‪.‬‬

‫و بمجرت وجوت ح رة البرنامج سواء انت من أي سبب حأننا نم ك الارارة األولى التا نظنلا حا منتلى‬
‫ال غر و ل نلا ستاعة االح ار و األتوات و الدوى البارية و التا تو نا حا النلاية الستخراج برنامج قوي‪.‬‬

‫البرنامج هو ماروع يجب االستعتات و االلتات له و من اهم االستعتاتات هى‬

‫اللتف الواضح بمعظم التفا ية و يفضة تابتلا و رسملا ان ام ن‪.‬‬ ‫‪-1‬‬


‫النية‪.‬‬ ‫‪-2‬‬
‫يجب وضع خطة ل ماروع و خطواته و ت ور ل ت ميم ‪hard & Soft.‬‬ ‫‪-3‬‬
‫بناءا ل ى الت ميم يتم اختيار ‪ Micro Processor‬و سرلته و الم ونات المسالتة‪.‬‬ ‫‪-4‬‬
‫يجب وضع خوارزمية ل برنامج قبة البتأ حيه و لتم ال سة و االلتمات ل ى التف ير و التطبيق المباار (ال‬ ‫‪-5‬‬
‫تبرمج مباارة من لد ك‬
‫‪ -2‬االنتظار ‪Waiting‬‬

‫ربما نظن أن اآلن يبتأ العمة ‪ ...‬ال ‚ بة قت بتأ بالفعة و نحن حا الارارة األولى ‚و ال نظن لزيزي الطالب‬
‫أن هذا وقت التافير أو تابة األ وات ‚ ‪ Coding‬و هذا ما يحتث لألسف لنت معظم المبرمجين إال المحترحين‬
‫والار ات ال بيرة ل برامجيات منلا حدط الذي يتنبنى العمة بـ نموج بناء لعم ية إنتاج نظام برمجا ‪software‬‬
‫‪process‬حننتدة بعت االتفاق ل ا الف رة مراحة االنتاج الفع ا و ها التخطيط مروراً بالت ميم ثم تابة األ وات‬
‫و تبتأ مراحة االختبار بأنواللا ثم التدييم ثم البيع ‪ ،‬و ة هذه المراحة تخت ف حا االحتياجات من حيث الموارت‬
‫البارية و الوقت و باختالف النموذج المتبع النتاج نظام برمجا ‪ Software process‬ستخت ف مراحة االنتاج‬
‫و أوقاتلا بة و أهميتلا أيضا ً‪.‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫‪ -3‬التنفيذ ‪Running‬‬
‫‪ -a‬نموذج المراحة المتتابعة ‪Stage wise model‬‬

‫يعت هذا النوذج بأنة هو النموذج التد يتي لتورة حياة النظم البرمجية ‚ و تعتمت ل يه ح رة تدسيم خطوات إنااء‬
‫برنامج حاسوبا إلا مراحة تتم بالتتابع و ال يتم االنتداة من مرح ة إال بعت است ماة المرح ة السابدة للا تماما ً‪،‬‬
‫ما حا الا ة اتناه‪:‬‬

‫حعم ية إنااء برنامج حاسوبا تبتأ من مرح ة التخطيط و ها تامة جمع قائمة بالمتط بات‬
‫‪ Requirements‬و بخ ائص البرنامج و مميزاتة ‪ Features‬و ما انت ت ك المرح ة مح مة و م تم ة‬
‫انت حر ة نجاح البرنامج بيرة ‪ ،‬ثم يتم االنتداة إلا مرح ة الت ميم و ها مثة المرح ة السابدة حا ونلا البت‬
‫أن ت ون محم ة و م تم ة ثم تابة الافرات ثم االختبار ثم التدييم‪.‬‬

‫‪waterfall model -b‬‬


‫ً‬
‫ت من الما ة الرئيسية حا هذا النموذج من نماذج تورات حياة النظم الحاسوبية أنه ال يم نك حع يا إنلاء‬
‫مرح ة ام ة مع لتم وجوت أي نوع من أنواع الرجوع ل مرح ة السابدة أو رؤية مستدب ية ل مرح ة التالية‬
‫مما يوقع الماروع حا أخطاء لم ت ن بالحسبان ‪ ،‬مثاة لذلك ‪ :‬من ال عوبة بم ان أن ت ون حا مرح ة‬
‫الت ميم و تريت أن تنتلا منلا مع لتم تابة أي وت و مثاة أوضح ‪ :‬ما ها حائتة أن ت ة إلا مرح ة‬
‫االختبارات و أنت لاجز لن الرجوع لمرح ة تابة الافرات حتى تدوم بإ الح األخطاء إن وجتت – و‬
‫توجت‪.‬‬ ‫ما‬ ‫غالبا ً‬
‫و لما حاة الرت لن ت ك األمث ة حأ بحنا مضطريين إلضاحة بعض التعتيالت و التحسينات ل ى ذلك‬
‫النموذج حظلر حا األحق نموذج جتيت وهو نموذج الاالة ‪waterfall model. :‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫معظم المااريع تبتأ بنفس الطريدة و ها حدط إلتات قائمة بالمتط بات والخ ائص و المميزات و ت ون‬
‫نسبة نجاح ت ك الطريدة (النموذج) أ بر ما ان الماروع (المنتج ) غيراً ‪.‬‬

‫مالحظة‪ /‬أحترس دائما من تعديالت و طلبات العميل الجديدة ففي كثيراً من األحيان ال يكون هدف البرنامج‬
‫متضح كامالً في ذهن العميل فبالتالي تطرأ التعديالت و التحسينات و يمكنك نموذج الشالل في أن ترجع إلي‬
‫مرحلة سابقة و هي مرحلة التصميم و تنظر أنت كمدير للمشروعات أن التعديل متاح و سهل ثم تنزلق قدمك‬
‫في تعديالت و تحسينات ال تنتهي و بالتالي تستمر الدائرة إلي ما ال نهاية مما ينذر بتأخر المشروع أو عدم‬
‫تسليمه بالمرة‪.‬‬

‫‪The spiral method -c‬‬

‫و تظلر هنا ليوب ذلك النموذج حيث أنه الي ون بالتينامي ية ال احية لتواجه ت ك التعتيالت التا ال تنتلا و‬
‫لن تستطيع التجاوزات و الترا يب ‪ Overlap‬بعمة رت امة لجزء بير من مرح ة لتوا ب ت ك التعتيالت أو‬
‫المط ب الجتيت ل عمية‪.‬‬

‫ان التاحع لتدتيم ت ك الطريدة هو التعرف ل ى األخطاء و الماا ة الغير متوقعة و التعتيالت حا المتط بات التا‬
‫غالبا ً ما ت يب تدتم الماروع‪.‬‬

‫و تعت الطريدة الح زونية حرت من أحرات لائ ة إتارة هنتسة البرمجيات بطريدة العم يات الت رارية ‪Iterative‬‬
‫‪ process‬و ها ت رار خوارزم ة مسألة محتتة بحيث ي ون المخرج من أي مرح ة هو المتخة ل مرح ة‬
‫الثانية‪.‬‬
‫و ما هو موضح حا الا ة الاله حالح زون يت ون من لتت من التورات )‪(Cycle ‚ spin‬و ة تورة مرتبطة‬
‫بالتورة التا ت يلا و التورة التالية تائما أ بر من التورة السابدة و ه ذا حتى ينتلا الح زون ‪،‬‬
‫من هنا يتضح بأن ة تورة ست ون وحتة مت ام ة إلنتاج مرح ة من مراحة الماروع و بالتالا حإن الف رة الرئيسية‬
‫للذه الطريدة ها أنك ال تد ق بأن يحتث خطأ ما أو تعتية ما حأنك سوف ت ون قاتراً ل ى إ الحه و الديام به حا‬
‫التورة الداتمة و ه ذا حتى تنتلا التورات و يخرج الماروع ل نور‪.‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫و تعتمت مراحة الطريدة الح زونية تدريبا ل ا نفس مراحة الطرق السابدة ل ن مع بعض التعتيالت ‚ حتأتا مرح ة‬
‫االست ااف ‪ discovery‬أوة مرح ة و ها المتع دة بجمع المتط بات و تحتيت األهتاف ‪ Objectives .‬و حا‬
‫خالة مرح ة االست ااف ربما نضطر ل تابة بعض األ وات األولية‪Prototypes‬‬

‫أما المرحلة الثانية و هي أكبر المراحل أهمية هي الت ييم ‪ ، Evaluation‬بتدتير الملام األ ثر خطورة حا‬
‫التورة الحالية ‪ ،‬أما المرح ة الثالثة ها مرح ة البناء و التطوير ‪ Development‬و يتم حيلا بناء الملمات التا‬
‫تم توضيح خطورتلا حا مرح ة التدييم ( المرح ة الثانية ) و نضرب لذلك مثاالً ‪ :‬لو نتج لن مرح ة التدييم أن‬
‫الخوارزمية ‪ Algorithm‬الم توبة يحتمة أن ت ون عبة جتاً أو ربما مستحي ة حست ون الملمة الرئيسية حا‬
‫المرح ة الثالثة حا التورة الحالية ها تمثية او بناء و اختبار ت ك الخوارزمية‬

‫و ن ة إلا المرح ة الرابعة و ها التح ية و التخطيط و بلذا ن ون قت أنلينا تورة ام ة حا الح زون و ننتدة‬
‫ل تروة التالية و ه ذا حتى ننتلا و من المتوقع أن ي ون ة تورة ق يرة الوقت و هذا يعتمت ل ا نتائج التورة‬
‫السابدة للا ‪.‬‬

‫االنتهاء ‪Complete‬‬

‫عند االنت اء تتم مرحلة التسليم الن ائي للعمل وبالك قد انت ينا من تنفيا ت ييم كافة مراحل دورة‬
‫البرنامج وهنا يتم التنفيا اما ان يكون التنفيا صحيحا ومنت يا تماما او يكون هناك خطا اريء‬
‫بالبرنامج مما يؤدي الى توقفه لحين استدعاءأل وتصليح الخطأ الناتج واعادته للتنفيا مرة اخرى‬
‫ليتم تنفياأل من جديد‪.‬‬

‫ارساة‬
‫االنااء‬ ‫متنفذ ومنتلا‬

‫نفاذ الوقت‬

‫منع‬

‫غير متوقف‬ ‫االسبوع السابع عشر‪ :‬النظري‬


‫متوقف‬

‫الروتينات الفرعية ‪SUBROUTINES‬‬

‫هو نمط برمجة ماتق من البرمجة الهيكلية يستنت إلى مفلوم استتلاء اإلجراء‪ ،‬وما اإلجراء إال س س ة من‬
‫الخطوات الحسابية التا يتعين حلملا‪ ،‬والتا يم ن استتلاؤها حا أي وقت أثناء تنفيذ البرنامج‪ ،‬من قبة إجراءات‬
‫أخرى أو من قبة اإلجرائية ذاتلا‪.‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫هذا النمط من انماط البرمجة يم ك لتة أسماء حالتسمية الرئيسية للذا النمط من انماط لغات البرمجة يتلى‬
‫ال غة اإلجرائية )‪ (Procedural‬ونلا تعتمت االجرائيات ويم ن ان تتلى بال غة األمرية )‪ (imperative‬وذلك‬
‫من ونلا لغة أوامر بحيث تعتمت ل ى ت دين الحاسب الحة خطوة بخطوة ما قت نجت تسمية البرمجة اللي ية‬
‫)‪(structured‬بحيث تعتمت ل ى مفلوم استتلاء االجرائيات أو ما ها معروحة بالروتين‪.‬‬
‫تعتمت هذه ال غة لتة مباتئ ‪ :‬تدسيم البرنامج إلى لتة اقسام جزئية لتسلية الدراءة والاتة االستختام تسمى هذه‬
‫االجزاء بعتة أسماء‪:‬‬

‫‪ Procedures‬اجراءات‬ ‫‪‬‬
‫‪ functions‬توابع‬ ‫‪‬‬
‫‪ methods‬منلجيات‬ ‫‪‬‬
‫‪ routines‬روتينات‬ ‫‪‬‬
‫‪ subroutines‬روتينات حرلية‬ ‫‪‬‬

‫تو يف حة الما ة خطوة بخطوة والتا تعت من مساوئ هذا النمط حيث يجب ل ى المبرمج ان يدوم بحة الما ة‬
‫المتناولة بنفسه وليس لن طريق الحاسب‪.‬‬
‫من هذا يتضح ان التواة الفرلية ‪ subroutines‬ها ابه برنامج غير اذا ان لنتك س س ه‬
‫لم يات متاابله سوف تجريلا تاخة البرنامج ثيرا وت ررها ثيرا حال تالا اللاتة تابتلا ة مرة بة ي فيك ان‬
‫ت تبلا مرة واحتة وتط ق ل يلا اسم و ما ذ رت هذا االسم تاخة البرنامج تتم ت ك العم يات وي بح هذا االسم‬
‫أنه من اوامر ال غة ‪.‬‬
‫مثاة‪ /‬لنفرض ان هناك اوامر لرسم جتواة بأبعات ومساحة معينة وتحتاج الى رسمه ثيرا ح يس معنى هذا انك‬
‫ة مرة تريت رسم الجتوة ستعيت تابة اوامره ال ثيرة حا ة م ان تاخة البرنامج حدط جمع اوامر رسمه حا‬
‫روتين حرلا وسميه اسم و ما ذ رت االسم يتم رسم الجتوة‪.‬‬

‫با ة لام‪ ،‬التواة والبرامج الفرلية لبارة لن برامج‪ -‬او اجزاء برامج‪ -‬ثانوية يتم استختاملا التاء غرض‬
‫معين ومن حوائتها‪:‬‬
‫‪ -‬تد ية وتالحا الت رار حا بناء البرامج مرة اخرى‪.‬‬
‫‪ -‬تد ية الوقت المط وب لبناء البرامج والمااريع‪.‬‬
‫‪ -‬التد ية من الذا رة المط وبة لافرات وبيانات الماروع‪.‬‬

‫هنالك نولين من البرامج الفرلية من حيث م أن البناء والت ريح هما‪:‬‬

‫‪ -‬الوحتات النمطية ‪ :Module‬وها تمثة احت ال يانات االساسية التا تدتملا لغة ‪ VB‬ل مبرمجين حيث‬
‫يتم إنااؤها من خالة قائمة ‪ ، project\add new module‬حا هذه الوحتة النمطية يتم تعريف‬
‫المتغيرات وال يانات التا يتم استختاملا حدط ويتم تابة البرامج المرات اجراءها ام ة‪.‬‬
‫‪ -‬البرامج الفرلية الخا ة بالماروع المرات لم ه وها تاتمة ل ى التواة والبرامج الفرلية‪ ،‬ويتم تعريفلا‬
‫حا الجزء ‪ General‬الموجوت حا ة نموذج (حا ناحذة الافرات ‪. )Code Window‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫الفرق بين هذين النولين هو ان الوحتات النمطية ‪ Module‬يم ن استختاملا حا أي يان باي نموذج‬
‫موجوت ضمن الماروع اما النوع االخر حانة يم ن استختامه حدط ضمن ال يانات التابعة لنموذج واحت‬
‫حدط‪.‬‬

‫ال يغه العامة لتعريف البرامج الفرلية ها‪-:‬‬

‫[‪])public| private] subname [(argument list‬‬


‫[‪])statement(s‬‬
‫[‪])statement(s‬‬
‫‪End sub‬‬

‫ويتم استتلاء البرنامج الفرلا اما ب تابة اسمه حدط اذا أن اليحتوي ل ى معامالت او ب تابة التالة ‪call‬‬
‫ثم اسم البرنامج الفرلا ووضع قوسين هالليين بعت اسم البرنامج ؛ اوب تابة اسم البرنامج الفرلا حدط ثم‬
‫وضع المعامالت بين اقواس‪ .‬ويم ن استختام ال يغه الاله حا وحتة نمطية مستد ة او حا نفس ناحذة‬
‫الافرات التابعه لنفس النموذج وذلك حا الجزء ‪.General‬‬

‫االسبوع الثامن عشر ‪ /‬النظري‬

‫الربامج الفرعية ‪SUBPROGRAMS‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫‪An  Bm  C w‬‬
‫=)‪F(A,B,C‬‬ ‫لو ان لتينا ملمة إيجات قيمة التالة التالية‬
‫‪(3 A! C !) 1‬‬
‫إن الحة األمثة لبرمجة هذه التالة يتم بواسطة تدسيملا إلى مجمولة من الملام الجزئية ‪ subtask‬ومن ثم‬
‫التترج حا تدسيم ة ملمة جزئية (إذا تط ب األمر أي مازالت الملمـــــــــــة تحتوي ل ى بعض التعديت ) إلى‬
‫أجزاء أخرى حتى ننتلا من التدسيم التالا ‪:‬‬

‫‪Program find‬‬
‫‪Main task‬‬
‫)‪F(A,B,C‬‬ ‫‪Subtasks‬‬
‫الملمة الرئيسية‬
‫الملام الجزئية‬

‫‪Read data‬‬ ‫‪Find value of‬‬ ‫‪Print value of‬‬


‫‪A,n,B,m,C,w‬‬
‫)‪F(A,B,C‬‬ ‫)‪F(A,B,C‬‬

‫‪w‬‬
‫‪Find An‬‬ ‫‪Find B m‬‬ ‫‪Find C‬‬ ‫!‪Find A‬‬ ‫!‪Find C‬‬

‫التدسيم ألاله يبين بأن البرنامج سوف ي مم من الملمة الرئيسية ونزوالً الى الملام الجزئية ‪ ،‬هذا الت ميم يسمى‬
‫بالت ميم من أل ى إلى أسفة ‪ . Top-Down Design‬ولم ية تطوير البرنامج الذي ير ز حا بناءه ل ى الملام‬
‫الجزئية (الفرلية) تسمى بالبرمجة الملي ة ‪. Structured Programming‬‬
‫ة ملمة جزئية (حرلية) حا البرنامج تسمى بالبرنامج الفرلا ‪ , subprogram‬حا لغة ‪ C++‬تستختم التالة‬
‫‪ function‬برنامج حرلا ‪ .‬وتعرف الدالة بأنلا مجمولة من االيعازات التا يم ن أن تستتلى من أي م ان حا‬
‫التالة الرئيسية لألتاء ملمة معينة ‪ .‬تتميز التواة الفرلية (البرامج الفرلية) بأن للا نفس اللي ة العام ل تالة الرئيسية‬
‫‪ main‬من حيث تعريف المتغيرات و تابة االيعازات ‪ .‬و ما بينا سابدا حا اللي ة العام ل برنامج بأن موقع تابة‬
‫التواة الفرلية ‪ functions‬يدع قبة التالة الرئيسية ‪ . main‬ومن حوائت استختام التواة الفرلية ‪:‬‬
‫‪ -1‬لتبسيط الما ة المرات ح لا وذلك بواسطة تدسيملا إلى ملام جزئية (تواة حرلية) أبسط يسلة برمجتلا ‪.‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫‪ -2‬تد ية حجم البرنامج ‪ :‬حا بعض األحيان نضطر حا البرنامج إلى ت رار مدطع أو أ ثر لتت من المرات ‪،‬‬
‫لذلك حأن البرامج الفرلية (التواة الفرلية) تسالتنا بأن نستتلا هذا المدطع حا ة مرة بواسطة خطوة‬
‫واحتة حدط ‪.‬‬

‫الهيكل العام للدالة ‪: Function‬‬

‫)‪Return_type_value function_name( parameters list‬‬


‫{‬
‫‪Local variables declarations‬‬
‫‪Statements code‬‬
‫>‪Return <value‬‬
‫}‬

‫مالحظات ‪:‬‬
‫‪ : 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++‬بأنلا ترجع قيمة واحتة حدط أو ال ترجع ااء ‪.‬‬
‫االسبوع التاسع عشر ‪ /‬النظري‬

‫‪ ‬مقدمة ألسلوب الربجمة املهيكلة ‪Structured Programming‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫‪ ‬الرتاكيب املستخدمة يف الربجمة املهيكلة‬


‫البرمجه اللي يه ببساطه هى تدسيم البرنامج الى وظائف او تواة يم ن استتلائلا حى اي جزء من البرنامج‬
‫ويم ن ان ت ون متتاخ ه بمعنى اننا نستتلى تاله او ا ثر تاخة تاله أخرى وتعتبر البرمجه اللي يه هى المرح ه‬
‫المتوسطه بين البرمجه التس س يه الدتيمه والبرمجه ائنية التوجه حى ال غات الحتيثه‪ ،‬تخية ان البرنامج التى‬
‫نريت تابته مدسم الى وظائف مترابطه تستتلى بعضلا بعضا ً ‪.‬‬

‫( مخطط يوضح اسلوب البرمجة المهيكلة )‬

‫ما معنى مة برمجة ‪ ....‬البرمجة ها لغة التخاطب بين اإلنسان و اآللة تت ون هذه ال غة من العتيت من‬
‫االيعازات لتنفيذ ملمه معينه ‪ .‬حما هى اال لم ية بسيطة تدوم حيلا ب تابة بعض ال مات ل مبيوتر ليدوم بتنفيذها‬
‫وتندسم البرمجة الى ‪:‬‬
‫‪ -‬برمجة مرئية مثة الفيجوة بيسك ‪visual basic‬‬
‫‪ -‬برمجة اللي ية مثة الفيجوة سا اارب )‪(structured programming‬‬

‫حالبرمجة المرئية تعنا لنتما يحتاج المستختم إلى إنااء تطبيداته الخا ة تحت بيئة النظام وينتوز ‪Windows‬‬
‫حإنه البت له من لغة برمجة جيتة تسالته حا إنااء هذه التطبيدات و ُتعتبر ‪ Visual Basic‬من ال غات العالمية‬
‫العالية المستوى والسل ة االستختام والتا يجت حيلا المبرمجون غايتلم ل تابة معظم التطبيدات العام ة تحت بيئة‬
‫وينتوز ‪.Windows‬‬

‫البرمجه اللي يه ببساطه هى تدسيم البرنامج الى وظائف او تواة يم ن استتلائلا حى اى جزء من البرنامج‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫ويم ن ان ت ون متتاخ ه بمعنى اننا نستتلى تاله او ا ثر تاخة تاله أخرى‬


‫وتعتبر البرمجه اللي يه هى المرح ه المتوسطه بين البرمجه التس س يه الدتيمه والبرمجه ائنية التوجه حى‬
‫ال غات الحتيثه‪.‬‬
‫مميزات استخدام البرمجة الهيكلية؟‬
‫‪ -1‬سلولة التع م و الفلم و ا تااف االخطاء‬
‫‪ -2‬سلولة التعتية و الداب ية ل تطوير‬
‫‪ -3‬سلولة لمة م فات تنفيذية‬
‫‪ -4‬سلولة التعامة مع قوالت البيانات االخرى‬

‫اهداف البرمجة الهيكلية؟‬


‫‪ -1‬انتاج ا وات اسرع حى الترجمة وا ثر قاب ية ل تطوير‬
‫‪ -2‬ت حيح االخطاء تاخة البرنامج‬

‫مفهوم البرمجة الهيكلية؟‬


‫تم ظلور البرمجة اللي ية حى منت ف الستينات و ان اللتف منلا (ت حيح اخطاء نظم البرمجة الدتيمة‬
‫واتبع ذلك اس وب نظام الوحتات النمطية لت وين البرنامج ووضع وحتة ات اة بين وحتاتة وظيفتلا‬
‫تحتيت المعامالت بين ت ك الوحتات)‬

‫التراكيب المستخدمة في البرمجة الهيكلية؟‬


‫‪ -1‬شرطية‬
‫‪ -2‬تكراية‬
‫‪ -3‬متتالية‬

‫االسبوع العشرون ‪ /‬النظري‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫‪ ‬تراكيب السلسلة‪ /‬تركيب االختبار (الشرطية)‬


‫‪Sequence/ IF-THEN-ELSE‬‬

‫ياغة البرنامج المضبوط الذي يبتأ بمتخة واحت‬ ‫هناك نظرية اساسية ل برمجة الملي ة ترت ز ل ى مبتأ ام انية‬
‫ومخرج واحت باستختام ثالث ترا يب اساسية‪:‬‬
‫‪ 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‬‬

‫البرنامجين ‪ 1‬و ‪ 2‬كتبت ايعازاتهم بلغة ‪C++:‬‬


‫‪//Program 1:‬‬
‫‪//This program display a message on the screen.‬‬
‫>‪#include<iostream.h‬‬
‫) ( ‪main‬‬
‫{‬
‫;''‪cout <<''welcome to C++ !\n‬‬
‫;‪return 0‬‬
‫}‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫برنامج لجمع رقمين و باعة الناتج على الشاشة ‪// 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‬‬

‫‪If condition True then value:=function1‬‬

‫‪Else‬‬

‫‪Value:= function2‬‬

‫وقت ت اتف حا بعض االحيان حاالت ارطية ابسط يترتب ل يلا تفرع واحت يتبعه مجرى البرنامج الذي ي حح‬
‫حيه الارط واال حان البرنامج يوا ة تنفيذه النجاز االيعاز التالا‪.‬‬

‫‪If condition True then value:=function‬‬

‫مثاة‪ /‬اجراءات البرنامج م توبة ب غة ‪visual basic‬‬


‫)(‪Private Sub cmdAddUpdate_Click‬‬
‫‪If Text1.Text = " " Or Text2.Text = " " Or Text3.Text = " " Then‬‬
‫"‪MsgBox "Try Again", vbCritical, "Fields Are Empty‬‬
‫‪Exit Sub‬‬
‫‪End If‬‬
‫‪End Sub‬‬
‫هاا البرنامج مكتوب بلغة ‪ C++‬ي وم بتوضيح ‪IF Statement‬‬
‫‪//Program 3:‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫ النجف‬/ ‫المعهد التقني‬
‫المرحلة االولى‬ ALGORITHMS ‫قسم تقنيات انظمة الحاسوب‬

#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;
}

IF _ ELSE Statement ‫ ي وم بتوضيح‬C++ ‫هاا البرنامج مكتوب بلغة‬


//Program 4:
#include <iostream.h>
main ( )
{
int grade ;
cout << " Enter the grade";
cin >>grade;
if(grade>= 50)
cout<<"pass" <<endl;
else
cout <<"fail"<<endl;
return 0;
}

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫ سهاد عبد الزهرة‬:‫اعداد‬


‫جامعة الفرات االوسط التقنية‬
‫ النجف‬/ ‫المعهد التقني‬
‫المرحلة االولى‬ ALGORITHMS ‫قسم تقنيات انظمة الحاسوب‬

Nested IF _ ELSE Statement ‫ ي وم بتوضيح‬C++ ‫هاا البرنامج مكتوب بلغة‬


//Program :5
#include <iostream.h>
main ( )
{
int grade;
cout <<"Enter the grade:" ;
cin >> grade;
if(grade>= 75)
cout<<'A'<< endl;
else
if(grade>= 65)
cout<<'B'<< endl;
else
if(grade>= 55)
cout<<'C'<< endl;
else
if(grade>= 40)
cout<<'D'<< endl;
else
cout<<"fail"<<endl;
return 0;
}

‫ النظري‬/ ‫االسبوع الحادي والعشرون‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫ سهاد عبد الزهرة‬:‫اعداد‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫تركيب التكرار ‪Do-WHILE‬‬

‫يسمح بعم يات الت رار التائري ‪ LOOP‬او بمعنى اخر يسمح بمجمولة ايعازات ان يت رر تنفيذها لتة مرات‪.‬‬

‫والجة ايداف الت رار التائري يوضع ارط حا هذه الترا يب سيتم اختياره قبة البتء بتنفيذ التورة‪.‬‬

‫)(‪Private Sub cmdAllNames_Click‬‬


‫)"‪Set DB = DBEngine.OpenDatabase(App.Path + "\new.mdb‬‬
‫)‪Set RS = DB.OpenRecordset("info", dbOpenDynaset‬‬
‫‪RS.MoveFirst‬‬
‫‪Cls‬‬
‫‪Do Until RS.EOF = True‬‬
‫)"‪Print RS.Fields("name‬‬
‫‪Print‬‬
‫‪RS.MoveNext‬‬
‫‪Loop‬‬
‫‪RS.Close‬‬
‫‪End Sub‬‬

‫وهناك تر يب(اختبار) اخر الختبار الت رار وهو اة ‪ ( Case‬الت رار المتعتت) مالئما جتا حا حالة لتت بير من‬
‫البتائة التا يرات تنفيذها مرة حا ة تنفيذ‪.‬‬

‫‪Statement1‬‬ ‫‪Statement2‬‬ ‫‪Statement3‬‬

‫وحا مثة هذه الحالة نستختم االيعاز ‪ Switch‬حا لغة اة ‪ C++‬ما حا موضح اتناه‪:‬‬

‫)‪Switch (Variable name‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫{‬
‫;‪case constant1 : statement1; break‬‬
‫;‪case constant2 : statement2; break‬‬
‫‪.‬‬
‫‪.‬‬
‫;‪case constant n : statement n; break‬‬
‫;‪default : last statement‬‬
‫}‬

‫االسبوع الثاني والعشرون ‪ /‬النظري‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫عمليات معاجلة البيانات ‪ /‬الفرز )‪(SORT‬‬

‫فوائد عملية الفرز‬

‫الرتتيب اخلارجي )‪(EXTERNAL SORT‬‬

‫الرتتيب الداخلي )‪(ENTERNAL SORT‬‬

‫االسبوع الثالث والعشرون ‪ /‬النظري‬

‫عمليات معاجلة البيانات‬

‫‪ ‬خوارزميات الفرز )‪(SORTING ALGORITHMS‬‬

‫أوال‪ :‬طريقة االختيار )‪(SELECTION METHOD‬‬

‫ثانيا‪ :‬فرز الفقاعة )‪(BUBBLE SORT‬‬

‫االسبوع التاسع والعشرون – االسبوع الثالثون ‪ /‬النظري‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫الربجمة الكائنية )‪OOP (Object Oriented Programming‬‬

‫ال اعدة العامة ت ول‪ Every things is an Object :‬كل شيء عبارة عن كائن‬

‫يعتبر تدنية سالتت المبرمجين ل ى لمة البرامج با ة هي ى ‪ Modeling‬وابه إلى حت ما االاياء الموجوته‬
‫حى حياتنا ‪ Like Real-Life Objects,‬وسالتت أيضا ار ات البرمجه ل ى توحير الوقت والمجلوت حى لتم‬
‫تابة األ وات المت رره مرات لتيته حى ثير ماارللا‪..‬‬

‫لو نظرنا حى لالمنا سوف نجت مجموله من الفئات ‪ objects‬تاترك حى الخ ائص ‪ Attributes‬مثة الطوة‬
‫الوزن ال ون والس و يات ‪ Behaviors‬يماى يأ ة يام يرى‪ ،‬مثة اإلنسان أو الحيوان أو النبات و لا تحمة‬
‫فات مميزه ل ة حئه ‪ same characteristic‬نفس الاىء حى البرمجة الايئية حلناك مجموله من اة‬
‫‪Classes‬تحمة مجموله من الخ ائص ‪ data‬ومجموله من الس و يات ‪ Methods‬تحمة فاتلا المميزه‪.‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫البرمجة الشيئية ‪:: OOP‬‬

‫ها لبارة لن أس وب جتيت من أساليب البرمجة حيث أ بحت وحتة بناء البرنامج ها ال نف ‪ class‬والذي‬
‫يحوي ل ى البيانات‪ data‬والعم يات او التواة ‪ functions‬وللا لتة مسميات منلا‪:‬‬

‫‪ -‬البرمجة غرضية التوجة‪.‬‬


‫‪ -‬البرمجة ال ائنية الموجلة‪.‬‬

‫*أسلوب البرمجة الشيئية‪:.‬‬

‫لاتة ما ت ون البرامج من هذا األس وب معدتة با ة بير حيث تدسيم البرنامج إلى مجمولة من الملام الرئيسية‬
‫ومن ثم تدسم إلى ملام حرلية ل ى حسب ترجة التعديت ل ملام الرئيسية لذلك حان البرمجة اللي ية تنتلج النلج (‬
‫من األل ى إلى األسفة‪) Top Down .‬‬

‫*المفاهيم األساسية للبرمجة الشيئية‬

‫‪-‬ال ائن‪Object :‬‬


‫فات ومعرحة ل يلا‬ ‫لبارة لن وحتة تحوي مجمولة من البيانات تسما ( خ ائص ) ‪ properties‬أو‬
‫مجمولة من العم يات‪.‬‬
‫مثاة‪ /‬ائن السيارة‬
‫الخ ائص‪:‬‬
‫‪Model :Hundia‬‬
‫‪Color : Blue‬‬
‫‪Year : 2005‬‬
‫العم يات‪::.‬‬
‫' ‪Start‬االنطالق'‬
‫' ‪Stop‬التوقف'‬
‫' ‪Accelerate‬التسارع'‬

‫‪-‬ال نف ‪Class :‬‬

‫ال ائنات ذات الخ ائص واألحعاة الماتر ة بحاجة آلن تجمع مع بعضلا البعض حتى يم ن استختاملا حا‬
‫برنامج ما‪ .‬وبالتالا حإن ال نف ‪ :‬لبارة لن مجمولة من ال ائنات التا تاترك حا الخ ائص والعم يات ‪.‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬


‫جامعة الفرات االوسط التقنية‬
‫المعهد التقني ‪ /‬النجف‬
‫المرحلة االولى‬ ‫‪ALGORITHMS‬‬ ‫قسم تقنيات انظمة الحاسوب‬

‫مثاة‪/‬‬
‫نف‪.‬‬ ‫>>الموظفين‬ ‫ائن‬ ‫الموظف‬ ‫‪-‬‬ ‫نف‬ ‫>>الطالب‬ ‫ائن‬ ‫الطالب‬
‫*مزايا البرمجة الشيئية )‪:. Features of (opp‬‬

‫‪ -‬التجريت ‪ abstraction :‬وهو لم ية تحتيت الخ ائص والعم يات التا تنتما ل نف معين وها نولان‪.‬‬

‫أ‪ -‬تجريت البيانات ‪ Data abstraction :‬وها لم ية التعرف ل ى الخ ائص المرتبطة ب ائن معين‪.‬‬
‫ب‪ -‬تجريت العم يات ‪ Methods abstraction:‬وهو لم ية تحتيت العم يات واإلجراءات تون ذ ر ااء‬
‫لن يفية أتائلا ‪.‬‬

‫‪ -‬التغ يف ( ال بس ة ‪ )Encapsulation :‬ها لم ية تجميع ة الخ ائص ‪ properties‬والطرق (‬


‫العم يات ‪ ) Methods‬حا وحتة واحتة ( تاخة غالف واحت ) حيث ال يم ن الو وة إليلا ( أي‬
‫الخ ائص والطرق ) إال لن طريق ال ائن ‪.‬‬
‫‪ -‬إخفاء البيانات ‪ Data Hiding:.‬وها ميزة ناتجة لن بس ة البيانات وتعنا إضاحة مستوى حماية معين‬
‫ل ى البيانات حتى نمنع و وة الخطأ إليلا ‪.‬‬
‫‪ -‬الوراثة ‪ Inheritance:.‬وها أن يرث نف ما الخ ائص والعم يات الموجوتة حا ال نف اآلخر‬
‫مما يسالت ل ى إلاتة االستختام لأل ناف التا تم إنااؤها من قبة المستختم‪. .‬‬

‫مدرس مساعد‬ ‫ماجستير تقنية معلومات‬ ‫اعداد‪ :‬سهاد عبد الزهرة‬

You might also like