Computer Software Design - Past Paper PDF

Document Details

WittyMiami4100

Uploaded by WittyMiami4100

محمود مصطفى محمود

Tags

computer programming software design Java programming computer science

Summary

This document appears to be lecture notes on Computer Software Design, covering fundamental programming concepts, algorithms, and data structures, specifically introducing Java programming. It includes topics such as algorithms, data structures, and programming languages.

Full Transcript

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

: ‫مقدمة‬ ‫لما تتمتع به من قدرة‬ ‫عالية على إجراء العمليات الحسابية وغيرها من العمليات في وقت قصير جدا‬ ‫تتميز بالقدرات العالية على معالجة الكم الهائل من البيانات حفظا وترتيبا‬ ‫واسترجاعا وبحثا‪ ،‬وغيرها الكثير من العمليات‬ ‫الفصل األول‪“ :‬المبادئ األساسية للبرمجة” الجزء األول يتناول تعريف البرمجة‪ ،‬البرنامج‪ ،‬أنواع لغات‬ ‫البرمجة و أساليب‪/‬طرق البرمجة أما الجزء الثانى يتناول تأسيس البنية التحتية التي تمكننا من التعامل مع‬ ‫اللغة بيسر وسهولة من خالل التعرف على لغة الجافا ومميزاتها‪ ،‬أدوات تطوير جافا‪ ،‬بيئة التشغيل اآللة‬ ‫التخيلية‪/‬اإلفتراضية للغة جافا‪ ،‬بيئة التطويرالمتكاملة للغة جافا‪ ،‬طرق كتابة برامج الجافا وترجمتها‬ ‫والملفات المراد تحمليها‪ ،‬أنواع البرامج بلغة الجافا وإصدارات لغة الجافا‪.‬‬ ‫الفصل الثانى‪ ” :‬الخوارزميات وخرائط التدفق ” يتناول مفهوم هندسة البرمجيات‪ ،‬مراحل بناء النظام‬ ‫البرمجي‪ ،‬مراحل حل المشكلة‪ ،‬إعداد حل للمشكلة قبل البدء بحلها عمليا عن طريق لغات البرمجة وذلك‬ ‫من خالل التعرف على مفهوم الخوارزميات وطرق تمثيلها بخرائط التدفق والسودو كود‪.‬‬ ‫الفصل الثالث ‪ ” :‬اساسيات البرمجة بلغة الجافا” يتناول بنية البرنامج بلغة الجافا‪ ،‬الشكل العام لبرنامج‬ ‫الجافا‪ ،‬ترجمة وتشغيل البرنامج‪ ،‬أنواع األخطاء البرمجية‪ ،‬أنواع البيانات‪ ،‬المتغيرات والثوابت‪ ،‬أنواع‬ ‫العمليات‪ ،‬الحزم‪ ،‬قراءة المدخالت من المستخدم‪.‬‬ ‫الفصل الرابع‪ ” :‬التحكم في مسار تنفيذ البرنامج” من خالل إستخدام هياكل التحكم (جمل االختيارات‬ ‫لتنفيذ تعليمات معينة ‪ ،‬جمل الحلقات لتكرارتعليمات معينة و جمل التحكم في الحلقات)‪.‬‬ ‫الفصل الخامس ‪“ :‬المصفوفات” يتناول مفهومها وفوائدها وأنواعها (المصفوفات أحادية البعد‪،‬‬ ‫المصفوفات ذات بعدين والمصفوفات متعددة األبعاد) وتطبيقات متنوعة الستخدام المصفوفات‪.‬‬ ‫الفصل السادس ‪ ” ” :‬الخورزميات الترتيب والبحث في المصفوفات” ” يتناول أهمية خوارزميات‬ ‫الترتيب‪ ،‬خوارزميات الترتيب األكثر شيوعا مثل‪:‬‬ ‫‪1) Selection Sort‬‬ ‫‪2) Bubble Sort‬‬ ‫‪3) Insertion Sort‬‬ ‫‪4) Merge Sort‬‬ ‫‪5) Quick Sort‬‬ ‫ويتناول أيضا خوارزميات البحث مثل‪:‬‬ ‫‪1) Linear Search‬‬ ‫‪2) Binary Search‬‬ ‫‪ (1‬التعرف على المفاهيم االساسية المستخدمة في برمجة الحاسب‬ ‫‪ (2‬التعرف على قواعد البرمجة االساسية وفهم االساليب االساسية العدادها‬ ‫‪ (3‬التعرف على أنواع لغات البرمجة و أساليب‪/‬طرق البرمجة‬ ‫‪ (4‬معرفة دور كل من المترجم والمفسر والفرق بينهما‬ ‫‪ (5‬التعرف على مراحل بناء النظام البرمجي‬ ‫‪ (6‬تعلم خطوات حل المشكالت من خالل تقديم المفاهيم األساسية ومبادئ البرمجة‬ ‫‪ (7‬إعداد حل للمشكلة بإستخدام الخوارزمية ومعرفة طرق تمثيلها (خرائط التدفق و الكود المزيف)‬ ‫‪ (8‬تحويل تصميمات حلول المشكالت بكفاءة إلى لغة برمجة قياسية‬ ‫‪ (9‬توظيف احدى لغات البرمجة فى تصميم برامج تحتوى على عمليات تشغيل مختلفة‬ ‫‪ (10‬فهم المصطلحات األساسية المستخدمة في لغة البرمجة جافا‬ ‫‪ (11‬التعرف على الهيكل البنائى للبرنامج‬ ‫‪ (12‬يتعرف الطالب على وصف البيانات وانواعها‪ ،‬التعبيرات‪ ،‬العمليات الحسابية‪ ،‬العالئقية ‪ /‬المقارنة و المنطقية‪،‬‬ ‫قراءة المدخالت من المستخدم‪ ،‬فهم استخدام هياكل التحكم األساسية (القرارات‪ ،‬التكرارات وجمل التحكم في‬ ‫التكرار) وأخيرا المصفوفات يعرض مفهومها وفوائدها وأنواعها‪ ،‬والخورزميات المختلفة للترتيب والبحث في‬ ‫المصفوفات‪.‬‬ ‫‪ (13‬اكتساب المهارات الالزمة في كتابة البرامج وحل المشكالت‬ ‫‪ (14‬تطبيق تقنيات التصحيح واالختبار لتحديد األخطاء وحلها ‪ ،‬ولتحديد فعالية البرنامج‬ ‫‪:‬‬ ‫أوال‪ :‬ينبغي قراءة المقدمة النظرية عن الموضوع‪.‬‬ ‫ثانيا‪ :‬تجريب االمثلة والتطبيقات على الحاسب ضمن بيئة التطويرالمتكاملة لجافا مثل ‪ NetBeans‬ومراقبة‬ ‫الخرج الناتج ومن تم تتبع شرح البرنامج ضمن الكتاب‪.‬‬ ‫‪.‬‬ ‫‪.‬‬ : ‫مقدمة‬ ‫الحاسب بدون برمجيات كإنسان بال روح أو كالسيارة بال وقود ‪ ،‬كما أن التطور الذي يحدث في أجهزة الحاسب‬ ‫ومكوناتها يصاحبها أيضا تطور وتحديث دائم في عالم البرمجيات‪.‬‬ ‫والبرمجيات بصفة عامة هي عبارة عن مجموعة من األوامر المرتبة منطقيا ‪ ،‬ويتم تنفيذها بواسطة وحدة المعالجة‬ ‫المركزية للحاسب‬ ‫ويختلف مستوى ونوع البرمجيات طبقا لعالقاتها وقربها من الحاسب من ناحية أو من قربها وعالقتها بالمستخدم من‬ ‫ناحية أخرى بشكلها األولي فنجد نظام التشغيل ‪ OPERING SYSTEMS‬هو الملتصق مباشرة‪ ،‬بينما نجد على‬ ‫الطرف اآلخر التطبيقات البرمجية ‪ APPLICATIONS‬هي األكثر قربا بوحدة المعالجة المركزية ‪ CPU‬وسهولة‬ ‫بالنسبة للمستخدم ‪.‬‬ ‫أهداف الفصل‪:‬‬ ‫‪ (1‬التفرقة بين البيانات والمعلومات‬ ‫‪ (2‬التعرف على مفاهيم اساسية مثل البرمجة والبرنامج‬ ‫‪ (3‬معرفة أنواع لغات البرمجة و مزايا و عيوب كل منها‬ ‫‪ (4‬ترجمة البرنامج وتحويله إلى لغة اآللة بواسطة المترجم والمفسر والفرق بينهما‬ ‫‪ (5‬عرض أمثلة لبعض لغات البرمجة ذات المستوى العالي ونوعية التطبيقات لكل منها‬ ‫‪ (6‬معرفة لغات الجيل الرابع والخامس ومايميزها عن لغات االجيال السابقة‬ ‫‪ (7‬التعرف على أساليب‪ /‬طرق‪ /‬منهاج البرمجة وخصائص كل منها‬ ‫‪ (8‬التعرف على مميزات لغة الجافا‪ ،‬أدوات تطوير جافا المستخدمة لترجمة وتنفيذ البرنامج‪ ،‬بيئة‬ ‫التطوير المتكاملة للغة جافا‪ ،‬طرق كتابة برامج الجافا وترجمتها والملفات المراد تحمليها‪ ،‬أنواع‬ ‫البرامج التى يمكن انشأها بلغة الجافا وأخيرا إصدارات لغة الجافا‪.‬‬ ‫الفصل األول‪ :‬المبادئ األساسية للبرمجة‬ ‫البيانات والمعلومات‪Data and Information :‬‬ ‫البيانات )‪:(Data‬‬ ‫ هي مجموعه من الحقائق المجردة وتعد بمثابة المادة الخام المدخلة إلى الحاسب بغرض معالجتها‬ ‫للحصول على المعلومات )‪.(information‬‬ ‫… ‪E.g. names, phone numbers, addresses,‬‬ ‫ تتعدد أنواع البيانات التي يمكن إدخالها إلى الحاسوب‪.‬فهناك بيانات رقمية‪ ،numeric ،‬بيانات حرفية‬ ‫‪ ،characters‬بيانات نصية ‪ ،text‬بيانات صورية ‪ ،images‬بيانات صوتية ‪ audio‬وبيانات صوت‬ ‫وصورة ‪.Video‬‬ ‫المعلومات )‪:)information‬‬ ‫ هي ناتج معالجة البيانات أى إجراء عمليات عليها‪.‬‬ ‫مثال‪ :‬إجراء معالجة لدرجات الطلبة للحصول على أكبر درجة أو متوسط الدرجات‪.‬‬ ‫‪Data‬‬ ‫‪Processing‬‬ ‫‪Information‬‬ ‫بيانات‬ ‫معالجة‬ ‫المعلومات‬ ‫تعريف البرمجة‪Programming :‬‬ ‫هى عملية إمداد الحاسب بالخطوات الدقيقة والتفصيلية لتمكين الحاسب للقيام بمهمة معينة باستخدام برنامج‬ ‫مكتوب بلغة برمجة معينة التي يستطيع الحاسب فهمها وتنفيذ أوامرها‪.‬‬ ‫تعريف البرنامج‪Computer Program :‬‬ ‫ مجموعة من التعليمات المتسلسلة والمكتوبة بلغة برمجة معينة‪ ،‬لتوجيه الحاسب إلتمام بعض المهام‪.‬‬ ‫ ويتكون مصدر البرنامج من عدة سطور وكل سطر يعتبر جملة ويكتب من قبل شخص يسمى "مبرمج‬ ‫الحاسب" ‪ Computer Programmer‬ويقوم أوال بفهم المشكلة ويقترح الحل وينفذه‪.‬‬ ‫أنواع لغات البرمجة‪Types of Programming Languages :‬‬ ‫ستَخدم لبناء برامج مختلفة وكل لغة من هذه اللغات لها أوامرها وتعليماتها الخاصة بها تكتب‬ ‫لغات البرمجة ت ُ ْ‬ ‫وفق قواعد ت ُ َحدَّد بواسطة لغة البرمجة‪.‬‬ ‫لغة اآللة ‪Machine Language‬‬ ‫ هي اللغة الوحيدة التي يفهمها الحاسب ويستطيع التعامل معها بمعنى ان جميع اللغات تحول إلى لغة اآللة‪.‬‬ ‫ تتكون من مجموعة أرقام من ‪ 1 ، 0‬ولذلك تسمى "اللغة الثنائية"‪.‬‬ ‫مميزاتها ‪:‬‬ ‫سرعة التنفيذ ألنها تخاطب وحدة المعالجة مباشرة‬ ‫عيوبها ‪:‬‬ ‫‪ (1‬غير مرنة (صعوبة تعلمها وكتابة وتصحيح برامجها)‪.‬‬ ‫صعوبة تعلمها الن المبرمج يجب أن يحدد كل شي‪ ،‬فالمبرمج يجب أن يكون على علم بتركيب الحاسب‬ ‫الداخلي‪ ،‬والعناوين الرقمية لمواقع التخزين‪ ،‬سواء للبيانات أو التعليمات‪.‬‬ ‫‪ (2‬غير عمومية (برامجها تعتمد على نوع اآللة)‪.‬‬ ‫تختلف لغة اآللة من حاسب إلى آخر(نفس البرنامج الذي يعمل على حاسب معين قد ال يعمل على حاسب‬ ‫آخر يختلف عنه في المكونات المادية مما يعني أنه يجب كتابة البرنامج بشكل كامل مره أخرى عند الرغبة‬ ‫في تنفيذه على جهاز آخر‪.‬‬ ‫لغة التجميع ‪Assembly Language‬‬ ‫ لصعوبة لغة اآللة تم تطوير لغة يطلق عليها لغة التجميع حيث يقوم المستخدم باعطاء الحاسب رموزا معينة‬ ‫بدال من سلسلة االرقام الثنائية ويمثل كل رمز أمرا أو تعليمة محددة للجهاز‪.‬‬ ‫ تستخدم اختصارات ورموز )‪(Symbolic code‬معبرة من اللغة اإلنجليزية لتعبر بها عن العمليات األولية‬ ‫التي يقوم بها الحاسب مثل إضافة ‪ Add‬وحفظ ‪ Store‬وطرح ‪ Sub‬وغيرها‪.‬‬ ‫مثال على أوامر في لغة التجميع‬ ‫‪Load A‬‬ ‫‪Add B‬‬ ‫‪Store C‬‬ ‫ البرنامج المكتوب بلغة التجميع يُ ْح َّول إلى لغة اآللة باستخدام ما يسمى بالمجمع )‪.(ASSEMBLER‬‬ ‫مميزاتها ‪:‬‬ ‫‪ (1‬سهولة حفظها وكتابتها‬ ‫‪ (2‬تعتبر لغة خاصة بمهندسي الحاسب وتعد مفيدة عند كتابة برامج التحكم بالجهاز ومكوناته‪.‬‬ ‫عيوبها ‪:‬‬ ‫لغة التجميع كما في لغة اآللة مصممة للعمل على حاسب معين‪.‬‬ ‫موحدة يمكن استخدامها مع كل أنواع المعالجات‬ ‫ترتبط بمعمارية المعالج‪ ،‬وبالتالي ال يوجد هنالك لغة تجميع ّ‬ ‫البرنامج المكتوب بلغة‬ ‫المجمع‬ ‫‪ASSEMBLER‬‬ ‫لغة اآللة‬ ‫التجميع‬ ‫البرنامج المصدر (‪)Source Code‬‬ ‫شفرة الهدف (‪)Object Code‬‬ ‫لغات المستوى العالي ‪High Level Language‬‬ ‫ بظهور اللغات ذات المستوى العالي أصبحت عملية التخاطب والتعامل مع الحاسب أسهل نسبيا وذلك ألن لغة‬ ‫التعامل مع الحاسب أصبحت قريبة من لغة البشر‪.‬‬ ‫ تستخدم بعض الكلمات اإلنجليزية العادية بنفس معانيها حيث يقوم كل أمر منها بتنفيذ العديد من العمليات‪.‬‬ ‫مثال ‪Sum = A + B + C :‬‬ ‫ لغات البرمجة ذات المستوى العالي تحتاج إلى مترجمات )‪ )Compilers‬التي تقوم بتحويل التعليمات‬ ‫)األوامر( الموجودة في برامجها إلى لغة اآللة‪.‬‬ ‫ يمر البرنامج المكتوب بلغات المستوى العالي بثالث مراحل قبل أن يكون جاهزا للتنفيذ ‪:‬‬ ‫‪ (1‬الترجمة ‪ :Compilation‬تحويل البرنامج بلغة المستوى العالي إلى لغة اآللة (‪ Object Code‬شفرة‬ ‫الهدف)‪.‬‬ ‫‪ (2‬الربط ‪ :Linking‬ربط الروتينات المكتبية الكائنة بالمكتبة‪ ،‬والتعليمات الضرورية بالبرنامج ‪.‬‬ ‫‪ (3‬التحميل ‪ :Loading‬يقوم البرنامج بتحميل شفرة الهدف والروتينات المكتبية على الذاكرة الرئيسة للتنفيذ ‪.‬‬ ‫البرنامج المكتوب بلغة‬ ‫المستوى العالي‬ ‫الترجمة‬ ‫لغة اآللة (شفرة الهدف ‪)Object files‬‬ ‫الروتينات المكتبية‬ ‫الربط‬ ‫التحميل‬ ‫التنفيذ‬ ‫مزايا لغات المستوى العالي ‪High Level Language‬‬ ‫ تعتبر سهلة ومرغوبة من وجهة نظرالمبرمجين بالمقارنة بلغات التجميع ولغة اآللة وذلك‪:‬‬ ‫‪ (1‬لسهولة كتابتها وفهمها وحل المشاكل باستخدامها مما أدى الى توفير الوقت والجهد‪.‬‬ ‫‪ (2‬اكتشاف األخطاء وتصحيحها أصبح أكثر سهولة بسبب سهولة قراءة البرامج وتتبعها وفهمها ‪.‬‬ ‫‪ (3‬أصبح بإمكان المبرمج كتابة البرنامج دون معرفة تفاصيل كيفية قيام الحاسب بهذه العمليات‪ ،‬كمواقع‬ ‫التخزين وتفاصيل الجهاز الدقيقة‪.‬‬ ‫‪ (4‬غير مرتبطة بجهاز معين أي يمكن تنفيذ البرنامج المكتوب بها على أكثر من جهاز‪.‬‬ ‫ولكن‬ ‫تحتاج لوسيط مترجم )‪ )Compiler‬يقوم بتحويل البرنامج المصدر (‪ )Source Code‬المكتوب باحدى‬ ‫هذه اللغات الى لغة اآللة (‪ Object Code‬شفرة الهدف)‪.‬‬ ‫المترجم والمفسر‪Compiler and Interpreter :‬‬ ‫المترجم‪Compiler :‬‬ ‫يقوم بترجمة البرنامج بأكمله وتحويله إلى لغة اآللة فى ملف تنفيذي فى حالة عدم وجود أخطاء‪.‬‬ ‫ ‬ ‫يصدر قائمة باألخطاء ان وجدت‪.‬‬ ‫ ‬ ‫المزايا ‪:‬‬ ‫تتميز البرامج المترجمة بسرعة تشغيلها ‪.‬‬ ‫النه يقوم بتحويل برنامج المصدر الى ملف تنفيذي جاهز لمرة واحدة‪ ،‬ثم عند طلب تشغيل الكود يشغل‬ ‫الكود التنفيذي وال يعيد الترجمة من البداية‪.‬‬ ‫العيوب ‪:‬‬ ‫الحاجة إلى وقت أطول الختبار البرامج‪ ،‬حيث يكتب البرنامج ثم يترجم ثم يجرب وفي حالة وجود أخطاء‬ ‫يجب تصحيحها أوال ثم يعاد ترجمته ومن ثم تجريبه للتحقق من زوال الخطأ‪.‬‬ ‫البرنامج المكتوب بلغة‬ ‫‪Compiler‬‬ ‫‪Object Code‬‬ ‫المستوى العالي‬ ‫ترجمة البرنامج بأكمله‬ ‫المترجم والمفسر‪Compiler and Interpreter :‬‬ ‫المفسر‪Interpreter :‬‬ ‫يقوم بتفسير كل أمر على حدى من البرنامج وتحويله الى لغة اآللة ثم تنفيذه‬ ‫ ‬ ‫فإذا وجد خطأ يتوقف عن التحويل حتى نصحح الخطأ ثم يقوم بتفسير االمر التالى وهكذا‪.‬‬ ‫ ‬ ‫المزايا ‪:‬‬ ‫تتميز اللغات التي تحتاج مفسرا بسهولة اختبارها وتصحيح االخطاء‬ ‫العيوب ‪:‬‬ ‫بطيئة تشغيل البرنامج‬ ‫النه في كل مرة يطلب فيها تنفيذ البرنامج يقوم باعادة ترجمه البرنامج (برنامج المصدر)‬ ‫البرنامج المكتوب بلغة‬ ‫‪Interpreter‬‬ ‫تفسير كل أمر على حدى‬ ‫المستوى العالي‬

Use Quizgecko on...
Browser
Browser