Computer Software Design - Past Paper PDF
Document Details
Uploaded by WittyMiami4100
محمود مصطفى محمود
Tags
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 تفسير كل أمر على حدى المستوى العالي