You are on page 1of 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