مقدمة في البرمجة PDF

Summary

هذه الوثيقة تُقدم مقدمة في البرمجة، وتشمل مفاهيم البرمجة الأساسية، وأنواع لغات البرمجة، ومراحل تطوير النظام البرمجي. يتناول النص لغة البرمجة، وأهميتها، وكيفية بناء تطبيقات برمجية.

Full Transcript

‫مقدمة ف ا رمجة‬ ‫ا ج نب ا ظري‬ ‫ة‬ ‫ل‬ ‫مقدمة‬ ‫‪1‬‬ ‫ا ص ا ول‬ ‫أنو ع لبيانا‬ ‫‪2‬‬ ‫ا ص ا ن‬ ‫لو ج ة لرسومية ‪GUI‬‬ ‫‪3‬‬ ‫ث‬ ‫ا ص ا‬ ‫لت ر‬...

‫مقدمة ف ا رمجة‬ ‫ا ج نب ا ظري‬ ‫ة‬ ‫ل‬ ‫مقدمة‬ ‫‪1‬‬ ‫ا ص ا ول‬ ‫أنو ع لبيانا‬ ‫‪2‬‬ ‫ا ص ا ن‬ ‫لو ج ة لرسومية ‪GUI‬‬ ‫‪3‬‬ ‫ث‬ ‫ا ص ا‬ ‫لت ر‬ ‫لقر‬ ‫هياك‬ ‫‪4‬‬ ‫ا ص ا را ع‬ ‫ جر ء‬ ‫لد‬ ‫‪5‬‬ ‫ا ص ا خ مس‬ ‫‪Content Page‬‬ ‫‪2023‬‬ ‫ا ص ا ول‬ ‫مقدمة ي ا برمجة‬ ‫أهداف ا ص ا ول‬ ‫ح‬ ‫سة ل ص‬ ‫م‬ ‫ب د إن اء لطال‬ ‫رت طة ب يكو قا ً ع ى أ ‪:‬‬ ‫نشطة‬ ‫ة‪.‬‬ ‫ل‬ ‫م اه‬ ‫‪‬ي ر‬ ‫ة‪.‬‬ ‫ل‬ ‫‪ ‬ي د لغا‬ ‫ة‪.‬‬ ‫ل‬ ‫لغا‬ ‫‪ ‬يص‬ ‫ج ‪.‬‬ ‫ر‬ ‫ب‬ ‫‪‬ي ا‬ ‫كام ة ‪IDE‬‬ ‫‪ ‬ي ر ع ى مكونا ب ئة ل طوير‬ ‫ى‪.‬‬ ‫د مر ح تطوير ل ظا ل‬ ‫‪‬‬ ‫ل دف ‪.‬‬ ‫‪ ‬يرس خر‬ ‫‪Content Page‬‬ ‫ً‬ ‫شـيئا والتـى أطلقـوا عليهـا اسـم الحاسـب )‪ (Computer‬والتـى‬ ‫هذه اﻵلة التى ﻻ تفهـم وﻻ تعـى‬ ‫تتكــون مــن مجموعــة مــن اﻷجــزاء المرئيــة والملموســة مثــل الــشاشة ولوحــة المفــاتيح والفــأرة‬ ‫و هـــذه ُ‬ ‫العلبـــة التـــى تحـــوى بـــداخلها الكثيـــر مـــن التفاصـــيل وبهـــا الـــذاكرة والمعـــالج ومحركـــات‬ ‫اﻷقــراص واللوحــة اﻷم والتــى تظهــر عليهــا العديــد مــن الــدوائر اﻹلكترونيــة والمــسارات البــارزة‬ ‫واﻷسﻼك والكابﻼت ‪ ،‬كـل هـذا يخفـى بداخلـه أشـياء بالغـة التعقيـد ‪ ،‬فلـو حركـت مؤشـر الفـأرة‬ ‫على سطح المكتـب وأشـرت إلـى أحـد الرمـوز فيظهـر تلمـيح باسـم هـذا الرمـز أو وظيفتـه ‪ ،‬ولـو‬ ‫فتحــت لعبــة معينــة كلعبــة الــسيارات واســتخدمت اﻷســهم الموجــودة بلوحــة المفــاتيح لتقــود‬ ‫ً‬ ‫وممتعا بالفعل ‪ ،‬فهل لـك أن تخبرنـى بتفاصـيل‬ ‫ً‬ ‫مسليا‬ ‫ً‬ ‫أمرا‬ ‫ً‬ ‫ويسارا لكان‬ ‫ً‬ ‫يمينا‬ ‫السيارة وتحركها‬ ‫ما حدث فى الخلفية من أوامر وتعليمات جعلت اﻵلـة تفهـم وتنفـذ تلـك اﻷوامـر ‪ ،‬هـذا هـو مـا ﻻ‬ ‫يمكن أن تراه وتلمسه بيدك إنها البرمجة )‪.(Programming‬‬ ‫مفاهیم البرمجۀ‬ ‫البرمجۀ ‪Programming‬‬ ‫ً‬ ‫مهاما جديدة ﻻ يمكن له أن ينفذها مـن تلقـاء‬ ‫البرمجة هى القدرة على مخاطبة الحاسب لينفذ‬ ‫ذاتـــه ‪ ،‬فهـــى تمنحـــك القـــدرة علـــى الـــتحكم بجميـــع اﻷجهـــزة المرتبطـــة بـــه والـــسيطرة عليهـــا ‪،‬‬ ‫وبمفه ــوم أ بـــسط فالبرمجـــة هـــى شـــرح تفـــصيلى لم ــا يجـــب أن يقـــوم بـــه الحاســـب مـــن مهـــام ‪،‬‬ ‫واﻹنسان هو من يقـوم بهـذه المهمـة وهـذا هـو مـا يطلـق عليـه المبـرمج )‪ ، (Programmer‬وهـل‬ ‫يستطيع الحاسب فهم لغة البشر؟! بالتأكيد ﻻ ‪ ،‬فالحاسب ﻻ يفهم سـوى لغـة واحـدة وهـى لغـة‬ ‫الكهرباء والمتمثلة فى إشـارتين ) أقـصى وأدنـى جهـد محتمـل ( يفهـم الحاسـب هـذه اﻹشـارات‬ ‫ً‬ ‫رياضيا بما يـسمى النظـام الثنـائى‬ ‫بالمنطق أى إما ‪ True‬أو ‪ False‬وتمثل باﻷرقام )‪ ١‬و ‪ (٠‬وتمثل‬ ‫وهذا مـا يطلـق عليـه لغـة اﻵلـة )‪ ، (Machine Language‬نـستنتج مـن ذلـك أن جميـع البيانـات‬ ‫المدخلة إلى الحاسب وجميـع اﻷوامـر الموجهـه إليـه يجـب أن تحـول مـن صـورتها اﻷصـلية إلـى‬ ‫سلسلة من اﻷرقام بالنظام الثنائى حتى يفهمها الحاسب وينفذها‪.‬‬ ‫الحاسب الذى نتحدث عنه ليس فقط جهاز الكمبيوتر ‪ ،‬وإنما هو أى جهاز إلكترونى سـواء كـان‬ ‫كمبيوتر أو موبايل أو تلفزيون أو اﻵلة الحاسبة التقليدية أو حتى ساعة اليد الرقمية‪.‬‬ ‫‪Content Page‬‬ ‫‪٥‬‬ ‫لغات البرمجۀ ‪Programming Language‬‬ ‫لغــات البرمجــة كلغــات البــشر فهــى وســيلة للتخاطــب والتعــارف ‪ ،‬عنــدما بــدأ البــشر فــى التعبيــر‬ ‫تحــدثوا بــبعض اﻷصــوات تعــارفوا عليهــا فيمــا بيــنهم ومــع تطــور اﻹنــسانية قــاموا بتمثيــل هــذه‬ ‫اﻷصوات برموز مكتوبة إلى أن وصلنا إلى المئات من لغـات البـشر التـى لكـل منهـا رمـوز خاصـة‬ ‫وقواعــد كتابــة ونطــق ‪ ،‬وإذا أراد شــخص يتحــدث اللغــة العربيــة أن يخاطــب شخــصًا يتحــدث‬ ‫اﻹنجليزية فيجب علي أحدهما أن يتعلم لغة اﻵخر أو يستعين بـشخص ثالـث يتحـدث اللغتـين‬ ‫حتــى يعمــل كوســيط بينهمــا ‪ ،‬اﻵن يمكنــك أن تــستوعب مفهــوم لغــة البرمجــة بكــل ســهولة فهــى‬ ‫كـو ن عبـارات وجمـل‬ ‫لت ِ‬‫عبارة عن مجموعة من الكلمات والرموز التى تكتب وفق قواعد محددة ُ‬ ‫لها معنى محدد يتم تمريرها إلى مـا يـسمى بـالمترجم )‪ (Compiler‬ليقـوم بـدوره بتحويلهـا إلـى‬ ‫لغة اﻵلة ومن َثم يفهمها الحاسب ويقوم بتنفيذها‪.‬‬ ‫تصنیف لغات البرمجۀ ‪:‬‬ ‫ً‬ ‫سابقا فى مفهوم البرمجة أن الحاسب ﻻيفهـم إﻻ لغـة اﻵلـة والتـى ُتمثـل بسلـسلة مـن‬ ‫كما ذكرنا‬ ‫اﻷرقــام ‪ ٠‬و ‪ ١‬ويقــوم بتنفيــذها مباشــرة بــﻼ وســيط ‪ ،‬فبرمجــة الحاســب بلغــة اﻵلــة شــىء بــالغ‬ ‫التعقيد حيث كان التعامل مع الحاسـب فـى بداياتـه فـى أربعينيـات القـرن الماضـى يحتـاج إلـى‬ ‫كتابــة التعليمــات بلغــة اﻵلــة وهــو مــا كــان يتطلــب وقــت وجهــد كبيــر وكعــادة أى شــىء يــصنعه‬ ‫ومجهـ ً‬ ‫ً‬ ‫ً‬ ‫ـدا فــى التعامــل معــه ثــم يتطــور إلــى أن يــصبح‬ ‫اﻹنــسان يبــدأ بــسيطا فــى مهمتــه معقــدا ُ ِ‬ ‫ً‬ ‫بسيطا فى التعامل معه ‪ ،‬فكان من الضرورى أن يتم اختصار الوقـت والجهـد‬ ‫ً‬ ‫معقدا فى مهمته‬ ‫المبذول فى إنجاز المهام التى تحتاج إلى كتابتها بلغة اﻵلة إلـى مـا هـو أهـم فـتم تطـوير لغـات‬ ‫البرمجة والتى استبدلت النظام الثنائى بكلمات قريبـة الفهـم مـن لغـة اﻹنـسان ‪ ،‬وكلمـا تطـورت‬ ‫ً‬ ‫وضوحا فى مفرداتها وسهولة ومتعة فى كتابتها وقوة فـى أدائهـا‬ ‫لغات البرمجة أصبحت أكثر‬ ‫ً‬ ‫ً‬ ‫قربا مـن اﻹنـسان ُ‬ ‫وبعـدا مـن اﻵلـة ‪ ،‬بمعنـى أبـسط فكلمـا تطـورت لغـات البرمجـة‬ ‫فأصبحت أكثر‬ ‫كلمــا ارتقـــت مفرداتهـــا لـــذا يفهمهـــا اﻹ نـــسان ويـــستخدمها بـــسهولة وعلـــى العكـــس تـــصبح أكثـــر‬ ‫ص ــعوبة لفهـــم اﻵلـــة لـــذا تحتـــاج إلـــى مترجمـــات بالغـــة التعقيـــد لتـــستطيع أن تحـــول المفـــردات‬ ‫القريبة من اللغة الطبيعية إلى لغة اﻵلة‪.‬‬ ‫‪Content Page‬‬ ‫‪٦‬‬ ‫وتنقسم لغات البرمجۀ بشکل عام إلى ‪:‬‬ ‫‪ ‬لغات منخفضۀ المستوى ‪Low level language‬‬ ‫هى اللغات القريبة مـن فهـم اﻵلـة والتـى يمكـن أن تتعامـل مـع اﻵلـة بـشكل مباشـر بـدون‬ ‫وســـيط ‪ ،‬والمقـــصود بالوســـيط هنـــا هـــو نظـــام التـــشغيل فلغـــات البرمجـــة الحديثـــة ﻻ‬ ‫تخاطب اﻵلـة بـشكل مباشـر بـل تخاطـب نظـام التـشغيل الـذى يقـوم بـدور الوسـيط بـين‬ ‫اﻵلة وبين البرنامج المكتوب بهذه اللغة‪.‬‬ ‫ولغــات البرمجــة القــادرة علــى مخاطبـة اﻵلــة بــشكل مباشــر هــى لغــة اﻵلــة ‪Machine‬‬ ‫‪ Language‬ولغــة التجميــع ‪ Assembly‬وهــى لغــة تتكــون مــن مجموعــة مــن الكلمــات‬ ‫ُ‬ ‫بالمجمع‪.‬‬ ‫والرموز يتم تحويلها إلى لغة اﻵلة عن طريق ما يسمى‬ ‫‪ ‬لغات عالیۀ المستوى ‪High level language‬‬ ‫هـى لغــات تتكـون مــن مجموعــة مـن الكلمــات والرمـوز القريبــة مــن اللغـة الطبيعيــة وهــذه‬ ‫‪ Compiler‬والــذى يقــوم بتحويــل‬ ‫اللغــات تحتــاج إلــى برنــامج ُيطلــق عليــه ُ‬ ‫المتــرجم‬ ‫تعليمات هذه اللغة عن طريق مجموعة من المراحل إلى لغة اﻵلة حتى يفهمهـا الحاسـب‬ ‫ويقوم بتنفيذها‪.‬‬ ‫هذا هو التصنيف العام للغات البرمجة ‪ ،‬مع العلم أن لغات البرمجة فى كل تـصنيف مـرت بعـدة‬ ‫أطــوار ‪ ،‬ففــى تــصنيف اللغــات منخفــضة المــستوى بــدات بلغــة اﻵلــة التــى ُتكتــب بأرقــام النظــام‬ ‫الثنائى وانتهت بلغة التجميع التـى ُتكتـب بحـروف وكلمـات انجليزيـة قريبـة مـن فهـم اﻹنـسان ‪،‬‬ ‫والتــى كانــت ُتعــد طفــرة كبيــرة فــى تطــور لغــات البرمجــة ‪ ،‬وفــى تـصنيف لغــات البرمجــة عاليــة‬ ‫المــستوى بــدأت بلغــات مثــل )فــورتران – ســى – باســكال( وغيره ـا ‪ ،‬إلــى أن وصــلت إلــى لغــات‬ ‫وتقنيات ﻹنتاج البرامج واﻷلعاب بدون كتابة اكواد بالشكل التقليدى فما هى إﻻ مجموعـة مـن‬ ‫النقرات والسحب واﻹفﻼت والخطوات المرتبة دون الدخول فى تفاصيل ُتنتج لك فـى النهايـة‬ ‫برنامج أو لعبة تحتاج لعدة اﻵف من اﻷسطر البرمجيـة وأيـام أو شـهور لكتابتهـا ‪ ،‬تـستطيع أن‬ ‫تنهيها فى ساعات وربما دقائق معدودة ‪ ،‬ومن أمثلة هذة التقنيات‪:‬‬ ‫‪ ‬برنامج ‪Scratch‬‬ ‫‪ ‬برنامج ‪Kodu‬‬ ‫‪ ‬تقنية ‪PWCT‬‬ ‫‪ ‬تقنية ‪Touch Develop‬‬ ‫وجميع هذة التقنيات مجانية‪.‬‬ ‫‪Content Page‬‬ ‫‪٧‬‬ ‫المفسر والمترجم ‪:‬‬ ‫البرنــامج المكتــوب بــأى لغــة برمجــة هــو عبــارة عــن نــص ‪ ،‬مهمــا كــان نــوع اللغــة المــستخدمة‬ ‫والمهام المطلوب تنفيـذها ‪ ،‬هـذا الـنص ُيطلـق عليـه اسـم الـشيفرة المـصدرية ‪، Source Code‬‬ ‫يحتاج هذا الكود المصدرى إلى برنامج يقوم بتحويله إلى لغة اﻵلة وهى أيضا عبارة عن نـص‬ ‫مكون من سلسلة مـن الـصفر والواحـد فقـط ‪ ،‬هـذا البرنـامج بمثابـة القـاموس اللغـوى والنحـوى‬ ‫الـــذى يختبـــر صـــحة القواعـــد المكتـــوب به ــا الكـــود وصـــحة العب ــارات ثـــم يق ــوم بترجمـــة هـــذه‬ ‫التعليمــات فــى عــدة مراحــل إلــى ملفــات بلغــة اﻵلــة ثــم ُينــتج ملــف قابــل للتــشغيل ‪ ،‬هــذه المهــام‬ ‫تختلف من حيث الكيفية من لغة برمجة إلى أخرى‪.‬‬ ‫المفسر ‪Interpreter‬‬ ‫هو أداة تقوم بترجمـة البرنـامج إلـى لغـة اﻵلـة سـطر سـطر ‪ ،‬وهـذا يعنـى أن البرنـامج المكتـوب‬ ‫بلغــات برمجــة تفــسيرية يــتم ترجمتــه إلــى نــص برمجــى وســيط بلغــة منخفــضة المــستوى ) لغــة‬ ‫وســيطة ( وينــتج ملــف البرنــامج وبداخلــه هــذا الكــود لــذا ﻻ يمكــن تنفيــذه علــى هــذه الــصورة‬ ‫مباشــرة حيــث يحتــاج إلــى برنــامج آخــر يقــوم بترجمــة اﻷكــواد المكتوبــة بداخلــه إلــى لغــة اﻵلــة‬ ‫وقت التشغيل ‪ ،‬هذا البرنامج يسمى المفسر ‪ ،‬ففى لغة الجافا مثﻼ ُيترجم النص البرمجـى إلـى‬ ‫كــود وســيط يــسمى ‪ Byte code‬وُتنــتج ملــف بامتــداد ‪ ، Jar‬هــذا البرنــامج النــاتج ﻻ يمكــن‬ ‫تشغيله وتنفيذه على أى جهاز مباشرة حيث يحتاج إلى ما يسمى آلة جافا اﻻفتراضية ‪Java‬‬ ‫‪ VM‬والتى تعمـل كمفـسر للبرنـامج النـاتج حتـى يـتم تنفيـذه ‪ ،‬وفـى تطبيقـات الـدوت نـت أيـضا‬ ‫تعتمد على نفس اﻷسلوب بحيـث يـتم تحويـل الكـود البرمجـى المكتـوب بلغـة مـن لغـات الـدوت‬ ‫‪ Visual‬إلـــى لغـــة وســـيطة منخفـــضة المـــستوى تـــسمى لغـــة مايكروس ــوفت‬ ‫نـــت مثـــل ‪Basic‬‬ ‫الوسيطة ‪ IL‬وُتنتج ملف تنفيذى بامتـداد ‪ ، exe‬هـذا البرنـامج النـاتج ﻻ يمكـن تـشغيله علـى أى‬ ‫جهاز مباشرة إﻻ إذا تم تثبيت ما يسمى إطار عمل دوت نت ‪.NET Framework‬والـذى يعمـل‬ ‫كمفسر للبرامج المكتوبة بلغات الدوت نت ويقوم بترجمتها إلى لغة اﻵلة حسب الطلب‪.‬‬ ‫المترجم ‪Compiler‬‬ ‫هو أداة تقوم بترجمة البرنامج دفعة واحـدة إلـى لغـة اﻵلـة ُ‬ ‫وتنـتج ملـف تنفيـذى بامتـداد ‪exe‬‬ ‫يعمــل مباشــرة بــدون وســيط ‪ ،‬وهــذا يعنــى أن لغــات البرمجــة المترجمــة تقــوم بتحويــل الــنص‬ ‫البرمجى المكتوب بهـا إلـى لغـة اﻵلـة مباشـرة ُ‬ ‫وتنـتج ملـف تنفيـذى يعمـل مباشـرة دون الحاجـة‬ ‫إلى ملفات وقت التشغيل ‪ ،‬ومثال على ذلك لغة ‪ C/C++‬تقوم مترجماتها بإنتاج ملـف تنفيـذى‬ ‫‪Content Page‬‬ ‫‪٨‬‬ ‫بامتــداد ‪ ، exe‬هــذا البرنــامج يحتــوى بداخلــه علــى كــود بلغــة اﻵلــة يــتم تنفيــذه مباشــرة دون‬ ‫الحاجة إلى مفسر ‪ ،‬لغة ‪ Pascal‬أيضا تعمل بنفس اﻷسلوب‪.‬‬ ‫بیئۀ التطویر ‪IDE‬‬ ‫ً‬ ‫سابقا فجميع البرامج هى فى اﻷصل عبارة عن ملـف نـصى بـسيط ‪ ،‬فـى الـسابق كـان‬ ‫كما ذكرنا‬ ‫ً‬ ‫مرهقا ويحتـاج إلـى‬ ‫ً‬ ‫أمرا‬ ‫على المبرمج أن يكتب البرنامج بنفسه فى محرر نصوص ‪ ،‬وكان هذا‬ ‫وقت طويـل عـﻼوة علـى كثـرة اﻷخطـاء التـى يقـع فيهـا المبـرمج أثنـاء كتابـة أكـواد البرنـامج ‪،‬‬ ‫وﻻختــصار الوقــت والجهــد وﻹضــافة المزيــد مــن اﻹمكانيــات للغــات البرمجــة تــم تطــوير أدوات‬ ‫تساعد المبرمج على بنـاء البرنـامج بـسهولة وبـسرعة أكبـر ‪ ،‬حيـث تـوفر تلـك اﻷدوات محـررات‬ ‫ً‬ ‫تلقائيـــا وقوالـــب جـــاهزة لـــبعض البـــرامج‬ ‫أكـــواد ذكيـــة تكتـــشف اﻷخطـــاء ُ‬ ‫وتكمـــل التعليمـــات‬ ‫ً‬ ‫مسبقا ومصممات للنماذج تسهل علـى المبـرمج تـصميم الواجهـات ‪ ،‬كـل هـذه‬ ‫ومكونات مكتوبة‬ ‫اﻷدوات موجودة فيما يسمى بأدوات التطوير ‪ ، IDE‬فعلى سبيل المثال مجموعة لغات الـدوت‬ ‫نت تأتى معها بيئة تطوير تسمى ‪Visual Studio.Net‬‬ ‫صورة لبيئة تطوير ‪ Visual Studio‬إصدار ‪٢٠١٠‬‬ ‫‪Content Page‬‬ ‫‪٩‬‬ ‫مراحل تطویر النظام ‪:‬‬ ‫والمقصود بالنظام هنا هو أى نظام برمجى ‪ ،‬فأى برنامج يتم تطويره فى عدة مراحـل ‪ ،‬تطلـق‬ ‫عليها أيضا دورة حياة النظام ويمكن أن نطلق عليها بشكل أبسط مراحـل حـل المـشكلة ‪ ،‬هـذه‬ ‫المراحــل يمكــن اﻹســتغناء عنهــا فــى البــرامج الــصغيرة جــدا كــأن تقــوم بكتابــة برنــامج يقــوم‬ ‫بحــساب مجمـــوع عـــددين أو حـــساب النـــسبة المئويـــة أو مــا شـــابه ولكـــن فـــى البـــرامج الكبيـــرة‬ ‫والمعقدة ﻻ يمكن البدء فى البرنامج مباشرة دون المرور على هذه المراحل‪.‬‬ ‫‪ ‬التحلیل ‪Analysis‬‬ ‫ُ‬ ‫والمخرجـــات والعمليـــات‬ ‫فـــى هـــذه المرحلـــة يـــتم فهـــم البرنـــامج مـــن حيـــث ُ‬ ‫المـــدخﻼت‬ ‫الحسابية والمنطقية التى سيقوم بها والمهام التى سينفذها‪.‬‬ ‫تخيــل أنــك تعمــل مبرمجـ ًـا فــى شــركة برمجيــات وطلــب عميــل مــن الــشركة عمــل برنــامج‬ ‫ﻹجراء حسابات هندسية وإخراج تقارير بالنتائج ‪ ،‬فى مرحلة التحليل يحدث اﻵتى‪:‬‬ ‫يأتى العميل إليـك ويـشرح لـك بالتفـصيل مـاذا يريـد ‪ ،‬وبنـاء علـى مـا ذكـره العميـل تقـوم‬ ‫أنت أو المجموعة التى ستعمل فى البرنـامج بتحليـل هـذه التفاصـيل وتحديـد المطلـوب‬ ‫بدقة من مـدخﻼت ومخرجـات وعمليـات وإجـراءات بـشكل مفـصل ومرتـب تـسجل هـذه‬ ‫التفاصيل فى ملف ‪ ،‬هذا ما يحدث فى مرحلـة التحليـل بـشكل عـام وبـدون الـدخول فـى‬ ‫تفاصيل دقيقة‪.‬‬ ‫‪ ‬التصمیم ‪Design‬‬ ‫فى هذه المرحلة يتم كتابة خطوات البرنامج بشكل متسلسل ومنطقى ‪ ،‬وتستخدم فى‬ ‫ً‬ ‫أيـضا لغـة الخوارزميـات‬ ‫هذه المرحلـة لغـة تـسمى سـودو كـود ‪ Pseudo code‬وتـسمى‬ ‫وهى عبارة عن كود مزيف أو وهمى غير حقيقى الهدف منه ترتيب خطوات البرنـامج ‪،‬‬ ‫ً‬ ‫أيضا لنفس الغرض مـا يـسمى بالمخططـات أو خـرائط التـدفق ‪Flow Chart‬‬ ‫ُ‬ ‫وتستخدم‬ ‫ً‬ ‫جـدا وﻻ تـصلح إﻻ للبـرامج متناهيـة الـصغر ‪ ،‬أمـا‬ ‫ولكن كـل هـذه اﻷسـاليب تعتبـر بدائيـة‬ ‫فــى البــرامج الكبيــرة فيــتم اســتخدام طريقــة أخــرى وهــى لغــة ‪ UML‬وتــستخدم لعمــل‬ ‫نماذج من المخططات لتمثيل البرامج‪.‬‬ ‫‪Content Page‬‬ ‫‪١٠‬‬ ‫‪ ‬کتابۀ الکود ‪Coding‬‬ ‫بعــد اﻹنتهــاء مــن مرحلــة التحليــل والتــصميم أصــبح اﻷمــر فــى غايــة الــسهولة حيــت يــتم‬ ‫ترجمة خطوات البرنامج التى تم تحديدها فى خطوة التصميم إلى لغة برمجة معينة‪.‬‬ ‫‪ ‬التنفیذ واﻻختبار ‪Implementation & Testing‬‬ ‫فى هذه المرحلة يتم تنفيـذ البرنـامج وتـشغيله وتجربتـه ‪ ،‬فلـو عـدنا إلـى المثـال الخـاص‬ ‫ببرنــامج الحــسابات الهندســية يــتم تجربــة البرنــامج بإدخــال العديــد مــن القــيم ﻹجــراء‬ ‫عمليات حسابية مختلفة لتحديد مدى صحة النتائج وإن كان هناك أخطاء أم ﻻ‪.‬‬ ‫‪ ‬التوثیق والصیانۀ ‪Maintenance & Documentation‬‬ ‫فــى هــذه المرحلــة يـتم إعــداد ملفــات التوثيــق والتــى توضــح بالتفــصيل كــل المهــام التــى‬ ‫ً‬ ‫وأيـضا يـتم تـسجيل المـشاكل واﻷخطـاء التـى‬ ‫يقوم بها البرنامج لمساعدة المـستخدم ‪،‬‬ ‫تظهر عند استخدام البرنامج وإصﻼحها وتسجيل اﻻقتراحات لتطوير النظام فيما بعد‪.‬‬ ‫فلو نظرنا إلى نظام كبير ومعقد مثل نظام التشغيل ‪ Windows‬وكيف تتم فيه مراحـل‬ ‫اﻻختبار والصيانة ‪ ،‬سـنجد أن شـركة مايكروسـوفت ﻻ تطـرح إصـدارات نظـام التـشغيل‬ ‫على العمﻼء مباشرة بل ُيطرح النظام على عدة مراحل حيث يتم طرح عدد مـن النـسخ‬ ‫التجريبية للجمهور ويتم تجربة كـل نـسخة لمـدة معينـة ‪ ،‬فـى هـذه المـدة تتلقـى الـشركة‬ ‫شــكاوى واقتراحــات العمــﻼء وبنــاء عليــه تقــوم بإصــﻼح اﻷخطــاء التــى تظهــر ثــم تطــرح‬ ‫إصدار تجريبى آخر إلى أن تستقر على طرح اﻹصدار النهائى‪.‬‬ ‫فعلى سبيل المثال نظام تشغيل ‪ Windows Vista‬الذى صـدر أواخـر عـام ‪ ٢٠٠٦‬تـم طـرح عـدة‬ ‫نسخ تجريبية منه منذ عام ‪ ٢٠٠٤‬تحت اسـم ‪ Longhorn‬إلـى أن اسـتقرت الـشركة علـى الـشكل‬ ‫النهــائى تحــت اســم ‪ Vista‬ولكــن لــم يلقــى النظــام قبــول واســع ﻷســباب عد يــدة فقامــت الــشركة‬ ‫بإصــﻼح مــا بــه مــن عيــوب وأضــافت لــه بعــض التحــسينات وأصــدرته فــى عــام ‪ ٢٠٠٩‬تحــت اســم‬ ‫‪. Windows 7‬‬ ‫‪Content Page‬‬ ‫‪١١‬‬ ‫خرائط التدفق ‪: Flow Chart‬‬ ‫لقد ذكرنا خرائط التدفق فى مرحلة التصميم وتعرفنا على الفائدة منهـا وهـى تمثيـل لخطـوات‬ ‫البرنامج ويمكن أن نقوم بتعريفها على أنهـا طريقـة لتمثيـل خطـوات سـير البرنـامج باسـتخدام‬ ‫مجموعة من اﻷشكال الهندسية‪.‬‬ ‫تــــستخدم فــــى خــــرائط الت ـــدفق مجموعــــة مــــن اﻷشــــكال الهندســــية مثــــل الــــشكل البي ـــضاوى‬ ‫والمستطيل والمعين ومتوازى اﻷضﻼع واﻷسهم كما فى الشكل التالى‪:‬‬ ‫اﻷشكال اﻷساسية المستخدمة فى خرائط التدفق‬ ‫‪Content Page‬‬ ‫‪١٢‬‬ ‫أمثلۀ على خرائط التدفق‪:‬‬ ‫‪ -١‬ارسم خريطة تدفق لبرنامج يقوم بإيجاد متوسط ثﻼثة أعداد ويطبع الناتج؟‬ ‫الحل‪:‬‬ ‫قبل البدء فى رسم خريطة التدفق يجب عليك تحليل البرنامج أوﻻً‬ ‫‪ ‬تحديد معطيات المسألة )المدخﻼت( وهى ستكون عبارة عن ثﻼثة أعداد سنرمز لها‬ ‫بالرموز ‪A,B,C‬‬ ‫‪ ‬كتابة خوارزمية الحل أى المعادلة الرياضية التى ستخرج النتيجة المطلوبة وهى‬ ‫قسمة مجموع الثﻼثة أعداد على عددهم وتخزين الناتج ‪V=(A+B+C)/3‬‬ ‫‪ ‬طباعة الناتج الذى تم تخزينه فى الرمز ‪V‬‬ ‫ُ‬ ‫وترسم الخريطة بهذا الشكل‪:‬‬ ‫‪Content Page‬‬ ‫‪١٣‬‬ ‫شرح الخريطة‪:‬‬ ‫‪ ‬تبدأ خريطة التدفق بالشكل البيضاوى الذى يرمز لبداية البرنامج‬ ‫‪ ‬يتم إدخال قيم المدخﻼت التى ُيرمز لها بالرموز ‪ A,B,C‬وهذه الرموز تسمى فى لغات‬ ‫البرمجة متغيرات وهى أماكن ُتحجز فى الذاكرة لتخزين أنواع معينة من البيانات‬ ‫وسيتم شرحها بالتفصيل فيما بعد ويمكن أن نستخدم كلمة ‪ Input‬أو ‪ Enter‬فى عملية‬ ‫اﻹدخال داخل شكل متوازى اﻷضﻼع‬ ‫‪ ‬نقوم بكتابة المعادلة الرياضية لحساب متوسط الثﻼثة أعداد الذى تم إدخال قيمهم‬ ‫فى الخطوة السابقة وتخزين الناتج فى الذاكرة ‪ V=(A+B+C)/3‬داخل شكل‬ ‫المستطيل‬ ‫‪ ‬يتم طباعة قيمة المتغير الذى تم تخزين الناتج به وهو المتغير ‪ V‬عن طريق اﻷمر‬ ‫‪ Print‬أو ‪ Output‬داخل شكل متوازى اﻷضﻼع‬ ‫‪ ‬يتم إنهاء البرنامج بالشكل البيضاوى بكلمة ‪End‬‬ ‫اﻵن يمكنك بكل سهولة ترجمة هذه الخطوات إلى أى لغة برمجة‬ ‫ً‬ ‫مكتوبا بلغة فيجوال بيزك دوت نت‬ ‫وهذا هو البرنامج النهائى‬ ‫شرح أكواد البرنامج‪:‬‬ ‫‪ ١‬نقطة البداية ‪ :‬كمـا بـدأ البرنـامج فـى خريطـة التـدفق بالـشكل البيـضاوى الـذى يعبـر عـن‬ ‫بداية البرنامج يتم ترجمة هذة الخطوة إلى جملة ) (‪ Sub Main‬والتى تعبر عن بداية‬ ‫تنفيذ اﻹجراء الرئيسى أى بداية البرنامج‪.‬‬ ‫‪ ٢‬تحديــد وإدخــال قــيم المــدخﻼت ‪ :‬تــأتى الخطــوة الثانيــة فــى خريطــة التــدفق بتحديــد‬ ‫الرموز ‪ A,B,C‬للتعبير عن ثﻼثة مـدخﻼت وهـى اﻷعـداد المطلـوب حـساب المتوسـط لهـا‬ ‫ثـــم يـــتم إدخـــال القـــيم الخاصـــة بهـــا عـــن طريـــق كلمـــة ‪ Input‬أو ‪ ، Enter‬تتـــرجم هـــذه‬ ‫‪Content Page‬‬ ‫‪١٤‬‬ ‫الخطــوة فــى الكــود إلــى اﻷســطر مــن الثــانى إلــى الــسادس حيــث يــتم اﻹعــﻼن عــن حجــز‬ ‫أماكن فى الذاكرة لثﻼثة أعداد صحيحة عن طريق الجملة‪:‬‬ ‫‪VB.NET Code‬‬ ‫‪Dim A, B, C As Integer‬‬ ‫ثم يتم حجز مكان فى الذاكرة لتخزين الناتج فى المتغير ‪ V‬فى السطر التالى‪:‬‬ ‫‪VB.NET Code‬‬ ‫‪Dim V As Single‬‬ ‫بعد ذلك يتم إدخال قيم المتغيرات ‪ A,B,C‬فى الثﻼثة أسطر التالية‪:‬‬ ‫‪VB.NET Code‬‬ ‫)(‪A = Console.ReadLine‬‬ ‫)(‪B = Console.ReadLine‬‬ ‫)(‪C = Console.ReadLine‬‬ ‫‪ ٣‬حساب المتوسط ‪ :‬تأتى بعد ذلك عمليـة حـساب المتوسـط كمـا فـى خريطـة التـدفق فـى‬ ‫شكل المستطيل ويتم ترجمة هذه الخطوة إلى الكود التالى ‪:‬‬ ‫‪VB.NET Code‬‬ ‫‪V = (A + B + C) / 3‬‬ ‫‪ ٤‬إخراج الناتج ‪ :‬تأتى بعد ذلك خطوة إخراج الناتج الذى تم تخزينه فى المتغير ‪ V‬عن‬ ‫طريق الجملة التالية‪:‬‬ ‫‪VB.NET Code‬‬ ‫)‪Console.WriteLine(V‬‬ ‫‪ ٥‬إنهــاء البرنــامج ‪ :‬تــأتى بعــد ذلــك خطــوة إنهــاء البرنــامج كمــا فــى خريطــة التــدفق فــى‬ ‫الشكل البيضاوى ً‬ ‫وتترجم هذه الخطوة إلى الكود التالى ‪:‬‬ ‫‪VB.NET Code‬‬ ‫‪End Sub‬‬ ‫وبهـــذا اتـــضحت فائـــدة خـــرائط التـــدفق فهـــى مجـــرد تمثيـــل لخطـــوات البرنـــامج مرتبـــة ترتيبـ ً‬ ‫ــا‬ ‫ً‬ ‫منطقيا ‪ ،‬وعرضنا ترجمة هذا المثال إلى لغة الفيجوال بيزك لمزيد من التوضيح ولكن ﻻ تـدقق‬ ‫ً‬ ‫كثيرا اﻵن ‪ ،‬سيتم شرحها بالتفصيل فيما بعد‪.‬‬ ‫فى اﻷكواد‬ ‫‪Content Page‬‬ ‫‪١٥‬‬ ‫المثال الثانى‪:‬‬ ‫ارسم خريطة التدفق التى توضح سير خطوات برنامج يقوم بحساب ناتج فسمة عددين؟‬ ‫فى هذا المثال سنحتاج إلى إتخاذ قرار مشروط والذى يتم تمثيله فى خرائط التدفق بشكل‬ ‫ُ‬ ‫المعين ‪ ،‬حيث أنه يجب علينا اختبار قيمة العدد الثانى الذى سيأتى فى المقام والذى يجب‬ ‫أن يكون أكبر من الصفر ﻵن القسمة على صفر ليس لها معنى‪.‬‬ ‫نقوم برسم خريطة التدفق بالشكل التالى‪:‬‬ ‫بعد إدخال قيم المدخﻼت ‪ A,B‬يتم اختبار قيمة العدد الثانى إن كان أكبر من الصفر يتم‬ ‫إجراء عملية القسمة وإظهار الناتج ثم إنهاء البرنامج وإن لم يتحقق هذا الشرط فﻼ يجب أن‬ ‫تتم عملية القسمة لذا يتم تحويل مسار البرنامج إلى خطوة أخرى وهى طباعة رسالة خطأ‬ ‫ثم إنهاء البرنامج‪.‬‬ ‫‪Content Page‬‬ ‫‪١٦‬‬ ‫‪Visual Studio.Net‬‬ ‫فيجوال ستوديو هو بيئة تطوير متكاملة أنتجتها شركة مايكروسوفت وتستخدم فى برمجة‬ ‫تطبيقات سطح المكتب وتطبيقات الويب والموبايل ‪ ،‬تدعم فيجوال ستوديو مجموعة من‬ ‫لغات البرمجة منها فيجوال بيزك وسى شارب وسى‪ ++‬وتعمل هذه اللغات تحت منصة عمل‬ ‫تسمى ‪.NET Framework‬والتى تحتوى على جميع اﻷدوات التى تستخدم فى بناء وترجمة‬ ‫وتشغيل البرامج‪.‬‬ ‫‪Visual Basic.Net‬‬ ‫هى نسخة جديدة من لغة البرمجة الشهيرة ‪ Visual Basic‬ظهرت مع أول إصدار من‬ ‫إصدارات ‪ Visual Studio.Net‬فى نهاية عام ‪ ٢٠٠١‬وهى تشبه إلى حد كبير لغة ‪Visual Basic‬‬ ‫‪ 6‬وما قبلها من إصدارات حيث أن إصدار الدوت نت تم بناؤه من الصفر ولكن تم مراعاة أن‬ ‫تكون لها نفس القواعد وحتى نفس الكلمات المحجوزة والتعابير القديمة ظلت كما هى‬ ‫وأضيف إليها ‪ ،‬تعتبر لغة فيجوال بيسيك من اللغات السهلة فى التعلم والقوية فى اﻷداء‬ ‫ولها إنتشار كبير على مستوى العالم‪.‬‬ ‫‪.NET Framework‬‬ ‫هــو إطــار برمجــى أنتجتــه مايكروســوفت لبنــاء وتــشغيل البــرامج ‪ ،‬والفكــرة التــى دفعــت شــركة‬ ‫مايكروسوفت لبناء هذا اﻹطار هو أن يكون وسيط بـين البرنـامج وبـين نظـام التـشغيل وبهـذا‬ ‫تصبح البرامج تعمل بشكل مستقل عن اﻵلة بحيـث تعمـل علـى أى جهـاز بغـض النظـر عـن نـوع‬ ‫ً‬ ‫مثبتـا‬ ‫الجهاز ونظام التشغيل ‪ ،‬فقط يحتاج البرنامج إلى وجود إطار عمل دوت نت فريم ورك‬ ‫على الجهاز ‪ ،‬والفريم ورك متاح على موقع الشركة بشكل مجانى‪.‬‬ ‫يتكون إطار العمل دوت نت فريم ورك من مجموعة كبيرة مـن المكتبـات والملفـات ومترجمـات‬ ‫ً‬ ‫سابقا فالبرنامج المكتـوب بلغـة مـن لغـات الـدوت نـت‬ ‫لغات البرمجة المدمجة معه ‪ ،‬وكما ذكرنا‬ ‫يحول إلى كـود بلغـة وسـيطة ‪ IL‬ويتطلـب تنفيـذ هـذا البرنـامج تثبيـت نفـس إصـدار إطـار عمـل‬ ‫دوت نــت فــريم ورك الــذى تــم بنــاء البرنــامج بــه علــى الجهــاز المطلــوب تــشغيل البرنــامج عليــه ‪،‬‬ ‫وعنــد تــشغيل البرنــامج يقــوم متــرجم وقــت التــشغيل ‪ CLR‬بترجمــة أكــواد لغــة مايكروســوفت‬ ‫الوســيطة ‪ IL‬إلــى لغــة اﻵلــة ثــم يرســلها إلــى نظــام التــشغيل الــذى يقــوم يــدوره بإرســالها إلــى‬ ‫المعالج لتنفيذها‪.‬‬ ‫‪Content Page‬‬ ‫‪١٧‬‬ Content Page ١٨

Use Quizgecko on...
Browser
Browser