You are on page 1of 127

‫كلية التربية انوعية‬

‫جامعة دمياط‬
‫قسم اعداد معلم الحاسب االلي‬

‫حماضرات يف‬

‫ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﱪﺍﻣﺞ ﺍﳉﺎﻫﺰﺓ ﰲ ﺍﻟﺘﻌﻠﻴﻢ‬


‫الفصل األول ‪ :‬مقدمة عن لغات البرمجة‬

‫الفصل األول‬
‫مقدمة عن لغات الربجمة‬

‫لغات البرمجة ‪: Programming Languages‬‬

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

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

‫ُيعتبر الظيور الحقيقي ألول لغة برمجة في العام ‪5511‬م؛ حيث قام فريق من شركة )‪ (IBM‬بتطوير لغة‬
‫ثم تالىا في العام ‪5511‬م ظيور ثاني أقدم لغة برمجة ُعرفت باسم‬
‫برمجة ُعرفت باسم)‪ّ ، (FORTRAN‬‬
‫المختمفة عبر القرن العشرين حيث ظيرت بعض لغات البرمجة التي‬
‫)‪ ،(LISP‬وتوالى ظيور لغات البرمجة ُ‬
‫ستخدم حتى اآلن كمغة برمجة )‪ (Basic‬التي اختُرعت في العام ‪5511‬م‪ ،‬شيدت فترة السبعينيات‬
‫ل تزال تُ َ‬
‫ظيور مفيوم جديد لمغات البرمجة وىو مفيوم البرمجة الشيئية )‪(Object-oriented programming‬‬
‫صمم لتوجيييا إلى األشياء التي يستخدميا اإلنسان‪ ،‬وظيرت خالل تمك الفترة العديد‬
‫حيث كانت تمك المغات تُ ّ‬
‫تم تطويرىا في‬ ‫المختمفة التي ل يزال العديد منيا ُمستخدماً حتّى اآلن كمغة باسكال التي ّ‬
‫من لغات البرمجة ُ‬
‫العام ‪5595‬م من ِقبل نيكالوس ويرث‪ ،‬ولغة البرمجة )‪ (C‬التي ظيرت في العام ‪5592‬م‪ ،‬بينما ظيرت لغة‬

‫‪1‬‬
‫الفصل األول ‪ :‬مقدمة عن لغات البرمجة‬

‫تم تطويرىا من ِقبل إدجار كود في العام ‪5591‬م‪ ،‬ول تزال ىذه المغة‬
‫برمجة قواعد البيانات )‪ (SQL‬التي ّ‬
‫الميمة حتّى الوقت الحالي‪ ،‬كما ظيرت لغة البرمجة )‪ (++C‬في العام ‪5595‬م‪ّ .‬أدى‬
‫إحدى المغات الرئيسية و ّ‬
‫طور تيم بيرنرز لي لغة البرمجة )‪(HTML‬‬‫انتشار اإلنترنت إلى استحداث العديد من لغات البرمجة؛ حيث ّ‬
‫في العام ‪5551‬م‪ ،‬تالىا في العام التالي ظيور اثنتين من أىم لغات البرمجة في العالم وىي لغة برمجة‬
‫بايثون )‪ (Python‬ولغة برمجة فيجوال بيسك)‪ ، (Visual Basic‬وكان العام ‪5551‬م سنة ظيور لغة‬
‫تم تقديميا من ِقبل ُمبرمجين في شركة صن ميكروسيستمز ‪(Sun‬‬ ‫البرمجة جافا )‪ (Java‬التي ّ‬
‫المختمفة فضالً عن‬
‫)‪] 9[،Microsystems‬وفي الوقت الحالي ىناك عشرات اآللف من لغات البرمجة ُ‬
‫المصممون أنيا ستُساىم في ح ّل ّأية مشكمة موجودة في حياة اإلنسان‪.‬‬
‫ّ‬ ‫ستمر لمغات جديدة يرى‬
‫الم ّ‬‫التطوير ُ‬
‫خصائص لغات البرمجة‪:‬‬

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

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

‫أمثمة عمى لغات البرمجة‪:‬‬


‫يوجد العديد من األمثمة عمى أنواع مختمفة من لغات البرمجة الشائعة والمنتشرة بين الم ِ‬
‫ستخدمين‪ ،‬ومن ىذه‬ ‫ُ‬ ‫ُ‬ ‫ُ‬
‫األمثمة ما يأتي‪:‬‬

‫كائنية التوجُّو‬
‫عد ىذه المغة تطوي اًر لمغة)‪ ، (C‬وقد أُضيفت إلييا خصائص جعمت منيا لغة ّ‬
‫‪ :C++ ‬تُ ّ‬
‫البرمجيات المختمفة واأللعاب‬
‫ّ‬ ‫ستخدم ىذه المغة في تطوير‬
‫‪ ،Object oriented‬وتُ َ‬
‫كائنية التوجُّو تعتمد عمى القوالب ‪ ، Classes‬وقد ظيرت لغة الجافا في تسعينات‬
‫‪ :Java ‬ىي لغة ّ‬
‫البرمجيات‪ ،‬ومحتوى‬
‫ّ‬ ‫عد من أكثر المغات طمباً؛ إذ ُيمكن استخداميا في تطوير‬
‫القرن الماضي‪ ،‬وتُ ّ‬
‫الويب‪ ،‬واأللعاب‪ ،‬باإلضافة إلى تطبيقات اليواتف المحمولة‪.‬‬
‫متعددة الستخدامات من تطوير شركة مايكروسوفت‪ ،‬تدمج ما بين خصائص لغتّي‬
‫‪ :C# ‬ىي لغة ّ‬
‫برمجيات نظام تشغيل ويندوز‬
‫ّ‬ ‫ويمكن استخداميا في تطوير‬
‫)‪(C‬و)‪ُ ،(++C‬‬
‫‪: JavaScript ‬ىي لغة مدعومة من العديد من متصفّحات الويب ِّ‬
‫تمكن المبرمج من إضافة الرسوم‬
‫التفاعمية إلى محتوى الويب‬
‫ّ‬ ‫المتحركة والوسائط‬
‫ّ‬
‫يتم تنفيذىا من جية‬
‫ستخدم في تطوير النصوص التي ّ‬ ‫‪ :Python ‬ىي لغة عالية المستوى تُ َ‬
‫اإللكترونية أو تطبيقات اليواتف المحمولة‪،‬‬
‫ّ‬ ‫الخادم‪ Server-side scripting‬عن طريق المواقع‬
‫وتتميَّز بالبساطة وسيولة القراءة‪.‬‬

‫أنواع لغات البرمجة‪:‬‬

‫صنف لغات البرمجة إلى أنواع ُمتعددة وفقاً لمستواىا‪ ،‬وطريقة تنفيذ البرامج‪ ،‬واستخداماتيا كما يمي‪:‬‬
‫تُ ّ‬
‫أنواع لغات البرمجة وفق مستواها‪:‬‬

‫‪ ‬لغات البرمجة عالية المستوى ‪:High-Level Language‬‬

‫‪3‬‬
‫الفصل األول ‪ :‬مقدمة عن لغات البرمجة‬

‫لممبرمجين عند استخداميا في كتابة البرامج‪ ،‬حيث تُسمى األوامر‬


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

‫ومن األمثمة عمى ىذا النوع من لغات البرمجة؛ لغة‪ ، #C‬ولغة‪ ، Java‬ولغة‪ ، JavaScript‬ولغة‪، Python‬‬
‫ولغة‪SQL‬‬

‫‪ ‬لغات البرمجة منخفضة المستوى ‪:Low-Level Language‬‬

‫بأنيا عبارة عن لغات البرمجة التي تُكتب عبر نظام العد الثنائي ‪ Binary Number System‬المتمثل‬
‫ّ‬
‫المنخفضة‬
‫المستوى فإن المغات ُ‬
‫باألعداد‪ ،1 :‬و ‪ ،5‬بحيث يفيميا جياز الحاسوب‪ ،‬وعمى عكس المغات عالية ُ‬
‫المبرمجين‪ ،‬وينطوي ىذا النوع من المغات عمى فرعين من‬
‫المستوى تكون ُمعقّدة‪ ،‬وغير قابمة لمقراءة من قبل ُ‬
‫ُ‬
‫المغات‪ ،‬وىما اآلتي‪:‬‬

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

‫لغة التجميع‪ Assembly Language :‬تُعتبر لغة التجميع أسيل نسبياً من لغة اآللة؛ وذلك لحتوائيا عمى‬
‫بعض مفردات المغة اإلنجميزية؛ ككممة‪ ، add‬وكممة ‪ sub‬عمى سبيل المثال‪ ،‬مما يجعل قراءة برامجيا وفيميا‬
‫أسيل مقارنةً ببرامج لغة اآللة‪ ،‬وتعمل برامج ىذا المستوى من لغات البرمجة بمثابة ُمترجم يعمل عمى تحويل‬
‫المستوى التي يكتبيا اإلنسان إلى لغة اآللة التي تفيميا األجيزة‪ ،‬وكما ىو الحال في لغة‬
‫برامج المغات العالية ُ‬
‫‪4‬‬
‫الفصل األول ‪ :‬مقدمة عن لغات البرمجة‬

‫اآللة فإن لغات التجميع ىي لغات غير محمولة؛ أي أنو ل ُيمكن نقل برنامج مكتوب بمغة التجميع من جياز‬
‫كمبيوتر آلخر‪.‬‬

‫أنواع لغات البرمجة وفق طريقة تنفيذ البرامج‪:‬‬

‫‪ ‬المغات المفسرة ‪: Interpreted Language‬‬


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

‫‪ ‬المغات المترجمة ‪Compiled Language‬‬

‫حول أوامر البرمجية أو الكود إلى لغة اآللة الخاصة بالجياز بعد النتياء من كتابة‬ ‫بأنيا المغات التي تُ ّ‬
‫ّ‬
‫البرنامج كامالً‪ ،‬ويتم التحويل من المغة البرمجية التي ُكتب بيا البرنامج إلى لغة اآللة باستخدام ما ُيعرف‬
‫بالمترِجم ‪ ، Compiler‬ويمتاز ىذا النوع من المغات بسرعة التشغيل؛ حيث يتم تشغيل البرنامج بشكل ُمباشر‬ ‫ُ‬
‫أن برامج ىذا النوع من لغات البرمجة ل ُيمكن نقمو وتشغيمو عمى‬ ‫دون الحاجة لتحويل األوامر أولً بأول‪ ،‬إل ّ‬
‫أجيزة تعمل بأنظمة تشغيل ُمختمفة عن تمك التي يحتوييا الجياز الذي تمت كتابة البرنامج عميو‪ ،‬وتُعتبر لغة‬
‫سي )‪ (C‬أحد األمثمة عمى ىذا النوع من لغات البرمجة‪.‬‬

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

‫المختمفة تبعاً لنوع الستخدام كاآلتي‪:‬‬


‫صنف لغات البرمجة ُ‬
‫تُ ّ‬
‫‪ ‬لغات تطوير التطبيقات والبرامج‪:‬‬

‫المستخِدم يومياً‪ ،‬وتُعد كل من‬


‫المختمفة التي يتعامل معيا ُ‬
‫وىي المغات التي تُعنى بتطوير البرامج والتطبيقات ُ‬
‫لغات‪ ، C‬و‪ ، #C‬و‪ ، ++C‬و‪ ، Java‬و ‪ Visual Basic‬أشير األمثمة عمى ىذا النوع من لغات البرمجة‪.‬‬

‫‪ ‬لغات تطوير الذكاء االصطناعي‪:‬‬

‫‪5‬‬
‫الفصل األول ‪ :‬مقدمة عن لغات البرمجة‬

‫وىي المغات الخاصة بتطوير برامج الذكاء الصطناعي؛ كبرامج الروبوتات‪ ،‬وتُعد لغات‪ ، Prolog‬و‬
‫‪ ،Python‬و‪ ، AIML‬ولغة‪ ، C‬و‪ ، #C‬و ‪ ++C‬من األمثمة عمى المغات التي ُيمكن استخداميا لتطوير‬
‫المختمفة‪.‬‬
‫برمجيات الذكاء الصطناعي ُ‬
‫‪ ‬لغات تطوير قواعد البيانات‪:‬‬

‫وى ي ي ي ي ييي المغ ي ي ي ي ييات الت ي ي ي ي ييي ي ي ي ي ي ييتم اس ي ي ي ي ييتخداميا م ي ي ي ي يين ِقب ي ي ي ي ييل ُمبرمج ي ي ي ي ييي قواع ي ي ي ي ييد القواع ي ي ي ي ييد؛ بي ي ي ي ي ييدف إنش ي ي ي ي يياءىا‪،‬‬
‫والحفاظ عمى عمميا‪ ،‬ومن األمثمة عمى ىذا النوع من المغات لغة‪SQL.‬‬

‫‪ ‬لغات تطوير األلعاب‪:‬‬

‫وىي التي تُعنى بتطوير ألعاب الحاسوب‪ ،‬أو أيةّ برامج ترفييية أُخرى؛ كمغة‪ ، ++C‬ولغة‪ ، Java‬ولغة‪، #C‬‬
‫ولغة‪DarkBASIC‬‬

‫‪ ‬لغات تطوير أنظمة تشغيل أجهزة الحاسوب‪:‬‬

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

‫‪ ‬لغات تطوير اإلنترنت وصفحات الويب‪:‬‬

‫تُعتبي يير ىي ييذه المغي ييات أسي يياس وجي ييود اإلنترني ييت في ييي العي ييالم‪ ،‬حيي ييث يي ييتم مي يين خالليي ييا تصي ييميم مواقي ييع اإلنترني ييت‪،‬‬
‫‪ ،‬و‪ ،HDML‬و‪ ،Java‬و‪ ،JavaScript‬و‪ ،PHP‬و‪،XML‬‬ ‫ومتصي ي ي ييفحاتيا‪ ،‬وتُعتبي ي ي يير لغي ي ي ييات‪HTML‬‬
‫ُ‬
‫و ‪ Python‬مي ي ي ي ي ي ي ي ي ي ي ي ي يين األمثمي ي ي ي ي ي ي ي ي ي ي ي ي يية عمي ي ي ي ي ي ي ي ي ي ي ي ي ييى ىي ي ي ي ي ي ي ي ي ي ي ي ي ييذا الني ي ي ي ي ي ي ي ي ي ي ي ي ييوع مي ي ي ي ي ي ي ي ي ي ي ي ي يين لغي ي ي ي ي ي ي ي ي ي ي ي ي ييات البرمجي ي ي ي ي ي ي ي ي ي ي ي ي يية‪.‬‬

‫عناصر لغات البرمجة‪:‬‬


‫تشتمل لغات البرمجة عمى عناصر أساسية كاآلتي‪:‬‬

‫بأنيي ي ييا القواعي ي ييد التي ي ييي تُحي ي ي ّيدد كيفيي ي يية‬
‫‪ ‬الصي ي ييياغة‪ :‬تعي ي ي ّيرف الصي ي ييياغة في ي ييي لغي ي ييات البرمجي ي يية ‪ّ :Syntax‬‬
‫المسي ييتخدمة‪ ،‬ويكي ييون‬ ‫كتابي يية المفي ييردات والرمي ييوز بشي ييكل صي ييحيح في ييي البرني ييامج وفق ي ياً لمغي يية البرمجي يية ُ‬
‫عميييى‬ ‫)‪(IF‬‬‫يتم اسيييتخداميا بطريق يية ُمعين يية ككممييية‬
‫لكي ي ّل لغ يية برمج يية كممي ييات ورم ييوز محج ييوزة ي ي ّ‬
‫أن لغي ييات البرمجي يية تختمي ييف مي يين لغي يية إلي ييى أخي ييرى‬
‫سي ييبيل المثي ييال ل الحصي يير‪ ،‬وتجي ييدر اإلشي ييارة إلي ييى ّ‬
‫المبي ييرمج لألحي ييرف الصي ييغيرة والكبي ي يرة أثني يياء كتابي يية البرني ييامج‪ ،‬في ييبعض‬
‫تبع ي ياً لتعامميي ييا مي ييع اسي ييتخدام ُ‬

‫‪6‬‬
‫الفصل األول ‪ :‬مقدمة عن لغات البرمجة‬

‫المغ ي ييات البرمجي ي يية تعتب ي يير اس ي ييتخدام الح ي ييرف الكبي ي يير ُيماث ي ييل اس ي ييتخدام الح ي ييرف الص ي ييغير ف ي ييي ح ي ييين‬
‫يتغير ىذا األمر في لغات أخرى‪.‬‬ ‫ّ‬
‫عبي ي يير مصي ي ييطمح الي ي ييدللت ‪ :Semantics‬عي ي يين كيفيي ي يية اسي ي ييتخدام الرمي ي ييوز والمفي ي ييردات‬
‫‪ ‬الي ي ييدللت‪ُ :‬ي ّ‬
‫اس ي ييتخداماً صي ي ييحيحاً لتكيي ييوين جمميي يية برمجييي يية صيي ييحيحة وفق ي ي ياً لقواع ي ييد الص ي ييياغة الخاصيي يية بالمغي ي يية‪،‬‬
‫يتم تنفي ييذ الجمم يية التالي يية ف ييي‬‫يتم تنفي ييذ تم ييك الجم ييل البرمجي يية بش ييكل تسمس ييمي حي ييث ل ي ي ّ‬ ‫وع ييادةً م ييا ي ي ّ‬
‫يتم تنفيذىا صحيحة‪.‬‬ ‫البرنامج ّإل في حال كانت الجممة الحالية التي ّ‬
‫يتم اسي ييتخداميا بشي ييكل ُمعي ي ّيين مي يين ِقبي ييل‬
‫بأنيي ييا بياني ييات يجي ييب أن يي ي ّ‬
‫‪ ‬األن ي يواع تُعي ي ّيرف األن ي يواع ‪ّ :Types‬‬
‫يتم فحص ي يييا‬ ‫يتم اس ي ييتخداميا ف ي ييي البرن ي ييامج خص ي ييائص ُمح ي ييددة ي ي ي ّ‬
‫المب ي ييرمج‪ ،‬فيك ي ييون لألني ي يواع الت ي ييي ي ي ي ّ‬‫ُ‬
‫يتم إظيي ييار خطي ييأ في ييي البرني ييامج إذا تي ي ّيم إسي ييناد‬ ‫ِ‬
‫يالمترجم ‪ Compiler‬حيي ييث يي ي ّ‬ ‫مي يين قبي ييل مي ييا ُيعي ييرف بي ي ُ‬
‫يتم عممي يية فح ييص أني يواع البيان ييات وفقي ياً‬ ‫ش ييكل م يين البيان ييات لن ييوع )‪ (Type‬ل يتواف ييق مع ييو‪ ،‬وت ي ّ‬
‫لطريقتين األولى تُعرف بفحص النوع الثابت واألخرى تُعرف بفحص النوع الديناميكي‪.‬‬
‫بأنيي ي ييا بع ي ييض الخص ي ييائص واألدوات‬
‫‪ ‬المكتب ي ييات تُع ي ييرف المكتبيي ييات ‪ Libraries‬ف ي ييي لغيي ييات الب ي ييرمج ّ‬
‫المسي يياعدة التي ييي تت ي يوافر في ييي لغي يية برمجي يية ُمعيني يية بيي ييدف تطي ييوير البرني ييامج الي ييذي ُيكتي ييب باسي ييتخدام‬ ‫ُ‬
‫تم ي ييك المغ ي يية‪ ،‬وق ي ييديماً ل ي ييم يك ي يين ُينظ ي يير إل ي ييى المكتب ي ييات عم ي ييى أني ي ييا ج ي ييزء مي ي ييم م ي يين لغ ي ييات البرمج ي يية‪،‬‬
‫يإن اسي ي ي ييتخدام ىي ي ي ييذه األدوات‬
‫ولكي ي ي يين في ي ي ييي الوقي ي ي ييت الحي ي ي ييالي ومي ي ي ييع التطي ي ي ييور التكنولي ي ي ييوجي اليائي ي ي ييل في ي ي ي ّ‬
‫حتميي ياً لكتاب يية بي يرامج أكث يير فاعمي يية‪ ،‬وم يين األمثم يية عم ييى المغ ييات الت ييي ت ييوفّر‬ ‫المس يياعدة أص ييبح أمي ي اًر ّ‬ ‫ُ‬
‫المض ييمنة فيي ييا لغ يية)‪ ، (++C‬وى ييو م ييا جعمي ييا واح ييدةً م يين أنج ييح لغ ييات‬
‫ع ييدداً كبيي ي اًر م يين المكتب ييات ُ‬
‫البرمجة‪.‬‬

‫أهم لغات البرمجة المستخدمة حاليا‬

‫المستخدمة في سوق العمل عام ‪2121‬م وفقاً لما أوصت بو جمعية ميندسي‬
‫فيما يأتي أىم لغات البرمجة ُ‬
‫الكيرباء واإللكترونيات‪IEEE‬‬

‫‪ ‬لغة بايثون تُعتبر لغة بايثون ‪ Python‬إحدى أكثر لغات البرمجة استخداماً في العصر الحالي‪،‬‬
‫لممبتدئين‪ ،‬فضالً عن ّأنيا لغة مفتوحة المصدر؛ أي ّأنو ُيمكن‬
‫ويعود ذلك إلى سيولة تعمميا بالنسبة ُ‬
‫قدم بايثون ميزات دعم ُمتكاممة‪،‬‬
‫أن استخداميا مجاني‪ ،‬وتُ ّ‬ ‫ِ‬
‫ألي ُمستخدم التعديل عمييا‪ ،‬باإلضافة إلى ّ‬
‫ّ‬
‫وتوافق سيل مع خدمات شبكة الويب‪ ،‬كما يشمل استخداميا العديد من المجالت‪ ،‬كالتعمُم اآللي‪،‬‬
‫المتحركة ذات األبعاد الثالثية‪ ،‬واأللعاب‪ ،‬والتصوير الثنائي‪،‬‬
‫والتعمُم العميق‪ ،‬وتطوير حزم الرسوم ُ‬

‫‪7‬‬
‫الفصل األول ‪ :‬مقدمة عن لغات البرمجة‬

‫المحوسبة‪ ،‬كما تمتاز لغة بايثون بتوافقيا‬


‫فضالً عن قدرتيا عمى العمل ضمن التطبيقات العممية و ُ‬
‫الكبير مع لغتي البرمجة‪++C. ، C‬‬
‫‪ ‬لغة كوتمن لغة كوتمن ‪: Kotlin‬ىي لغة مفتوحة المصدر تُستخدم لبرمجة تطبيقات اليواتف الذكية‬
‫وصممت كوتمن‬‫بنظام تشغيل األندرويد‪ ،‬باإلضافة إلى تطبيقات سطح المكتب‪ ،‬وتطوير الويب‪ُ ،‬‬
‫لمتعامل والتوافُق التام مع لغة الجافا‪ ،‬بل إن ىذه المغة عالجت العديد من المشاكل التي ظيرت في‬
‫لغة الجافا‪ ،‬وتجمع لغة كوتمن ما بين البرمجة الوظيفية والبرمجة الكائنية ‪Object Oriented‬‬
‫‪ Programming‬ونظ اًر لدعم ىذه المغة لبرمجة تطبيقات األندرويد فإن شركة جوجل تعمل عمى‬
‫المميزة‪.‬‬ ‫ٍ‬ ‫ِ‬
‫بمستقبل واعد ليذه المغة ُ‬
‫الترويج ليا بشكل كبير؛ األمر الذي َيعد ُ‬
‫‪ ‬لغة جافا تُعتبر لغة الجافا ‪ :Java‬من لغات البرمجة التي تمقى انتشا اًر واستخداماً واسعاً بين‬
‫أي نوع من األجيزة بغض النظر‬‫الشركات البرمجية‪ ،‬وتمتاز ىذه المغة بتوافق برامجيا لمعمل عمى ّ‬
‫ستخدم الجافا بشكل كبير في إنتاج وبرمجة تطبيقات‬
‫عن نظام التشغيل الذي يعمل بو الجياز‪ ،‬وتُ َ‬
‫عد لغة‬
‫نظام تشغيل األندرويد؛ حيث قد يكون ذلك ىو السبب في كونيا من أىم المغات البرمجية‪ .‬تُ ّ‬
‫جيدة‪ ،‬ومن‬‫الجافا لغة ُمستقرة؛ مما يجعميا ُممتازة لمتعمُم بيدف العثور عمى وظيفة برمجية ّ‬
‫الستخدامات األخرى الشائعة لمغة الجافا؛ تطوير تطبيقات الويب‪ ،‬حيث تُوفر لغة الجافا‬
‫لم ِ‬
‫ستخدمييا عدد كبير من المكتبات ذات المصدر المفتوح التي ُيمكن التعديل عمييا‪ ،‬فضالً عن‬ ‫ُ‬
‫احتوائيا عمى العديد من واجيات برمجة التطبيقات التي تُستخدم إلنجاز ميام ُمختمفة؛ كبرمجة‬
‫الشبكات‪ ،‬وقواعد البيانات‪.‬‬
‫لغة جافا سكريبت تُعتبر لغة جافا سكريبت‪ : JavaScript‬والمعروفة أيضاً باسم نود‪.‬جي إس‬ ‫‪‬‬
‫‪ NodeJS‬المغة األقدم التي ظيرت في ُمتصفحات الويب األولى عبر التاريخ‪ ،‬وتطورت جافا‬
‫سكريبت منذ إنشاءىا حتى الوقت الحالي ‪-‬خاصةً في األعوام ‪2151‬م و‪2151‬م وما بعدىا‪-‬‬
‫لتصبح اآلن واحدة من أكثر لغات البرمجة استخداماً حول العالم‪ ،‬كما صدر عن تقرير ميارات‬
‫عد الميارة‬
‫أن لغة الجافا سكريبت تُ ّ‬
‫المطور عام ‪2151‬م لموقع الياكر رانك ‪ّ HackerRank‬‬ ‫ُ‬
‫أن برامج ىذه المغة تنتشر في‬
‫البرمجية األكثر طمباً في سوق العمل‪ ،‬ويرجع السبب في ذلك إلى ّ‬
‫المستخدمة يومياً؛ كمتصفحات الويب‪ ،‬وأجيزة الخوادم الحاسوبية‪،‬‬
‫الكثير من التطبيقات التكنولوجية ُ‬
‫كما تُعتبر ميمة في تطوير برمجيات الويب سواء تمك التي تُعنى بالعمل من جية الخادم‬
‫)‪ ،(Server‬أو من جية العميل)‪ ، (Client‬كما تُستخدم في تطوير تطبيقات اليواتف الذكية‪،‬‬
‫وخدمات التخزين السحابي‪ ،‬وأجيزة التح ُكم الدقيقة‪ ،‬وغيرىا من التطبيقات األخرى‪.‬‬

‫‪8‬‬
‫الفصل األول ‪ :‬مقدمة عن لغات البرمجة‬

‫‪ ‬لغة تايب سكريبت لغة تايب سكريبت ‪ TypeScript‬ىي لغة موجية لمكائنات مفتوحة المصدر‪،‬‬
‫طُ ّورت من ِقبل شركة مايكروسوفت عام ‪2152‬م‪ ،‬وأُنشئت لتكون بمثابة تطوير عمى لغة الجافا‬
‫سكريبت‪ ،‬حيث تحتوي عمى جميع العناصر التي تحتوييا جافا سكريبت‪ ،‬بالتالي تستطيع تطوير‬
‫المتصفحات‪،‬‬
‫أي نوع من أنواع ُ‬ ‫برمجيات جافا سكريبت‪ُ .‬يمكن تشغيل لغة تايب سكريبت عمى ّ‬
‫ألن ىذه المغة ىي لغة تطويرية عمى الجافا سكريبت فإنو ل ُيمكن‬
‫المختمفة‪ ،‬ونظ اًر ّ‬
‫وأنظمة التشغيل ُ‬
‫استخداميا لعممية إنتاج البرامج من الصفر؛ حيث يتطمب تحويل كل أوامر البرامج المكتوبة بمغة‬
‫محول برمجي ‪ Compiler‬ونظ اًر لما توفره لغة‬‫تايب سكريبت إلى لغة الجافا سكريبت باستخدام ّ‬
‫التايب سكريبت من ميزات إضافية تم تطويرىا عمى لغة الجافا سكريبت فإنو ُيتوقع أن تحل مكانيا‬
‫قريباً؛ األمرالذي ُيميد لكونيا واحدة من أكثر لغات البرمجة المرغوبة في العالم‪.‬‬
‫‪ ‬لغة جو تُعتبر لغة جو )‪ GO‬من المغات اليامة في الوقت الحالي‪ ،‬وظيرت خالل العقد الماضي‪،‬‬
‫حيث قام ميندسون في شركة جوجل بتطويرىا عام ‪2152‬م‪ ،‬وكان اليدف من تطويرىا جعل عممية‬
‫المستخدمة‪ ،‬ونجحت ىذه‬
‫ُمعالجة البيانات الخاصة بيا أسيل وأسرع من المغات البرمجية األخرى ُ‬
‫لمعالجة بياناتيا‪ ،‬وفضالً عن ذلك‬
‫المغة الجديدة في تقميص الوقت الذي احتاجتو جوجل سابقاً ُ‬
‫امتازت أيضاً في سيولة تعمُميا‪ ،‬وقابميتيا لمتطُور‪ ،‬وفعاليتيا‪ ،‬حيث جمعت ما بين اإلنتاجية‬
‫والبساطة النسبية التي تتمتع بيا لغة بايثون؛ باإلضافة إلى الكفاءة التي تتمتع بيا لغة البرمجة‪، C‬‬
‫واستخدمت لغة جو في العديد من المنصات اإللكترونية الكبيرة‪ ،‬مثل‪ ،: Google‬و‪ ، Netflix‬و‬
‫‪ ،Dropbox‬وغيرىا‪.‬‬
‫‪ ‬لغة سويفت تُعتبر لغة سويفت ‪ Swift‬لغة برمجة تم تطويرىا من ِقبل شركة أبل بيدف استخداميا‬
‫بمختمف األغراض العامة‪ ،‬ويتم استخداميا بشكل كبير في تطوير التطبيقات التي تعمل بنظام‬
‫أن ما مقداره ‪%12‬‬ ‫تشغيل‪ ، iOS‬وذلك بدلً من لغة‪ ، Objective-C‬حيث تُشير الدراسات إلى ّ‬
‫من أفضل ‪ 551‬تطبيقات موجودة عمى متجر أبل تم إنشاؤىا بمغة سويفت‪ ،‬وتمتاز ىذه المغة ُببنيتيا‬
‫المتماسكة‪ ،‬وسرعتيا‪ ،‬فضالً عن أمانيا‪ ،‬وسيولة تعمُميا‪ ،‬ونظ اًر لترويج شركة أبل ليذه‬
‫البسيطة و ُ‬
‫المبرمجين‪.‬‬
‫المغة فإنيا تحظى حالياً بشعبية كبيرة في الستخدام بين ُ‬

‫‪9‬‬
‫الفصل األول ‪ :‬مقدمة عن لغات البرمجة‬

‫الفرق بين لغات البرمجة‪:‬‬

‫توجد مجموعة من الفروقات بين لغات البرمجة عموماً‪ ،‬لذلك ليس بالضرورة أن تتشابو كميا معاً‪ ،‬ومن أىم‬
‫ىذه الفروقات‪:‬‬

‫صيغة الكتابة ىي الطريقة التي تتم من خالليا كتابة لغة البرمجة‪ ،‬ول تتشابو كافة المغات معاً بصيغة كتابة‬
‫واحدة‪ ،‬فمثالً‪ :‬يجب أن تنتيي ُجممة البرمجة في بعض المغات بفاصمة منقوطة‪ ،‬بعكس المغات األخرى التي‬
‫تَنتيي فييا ُجممة البرمجة بمجرد النتياء من كتابتيا‪ ،‬والنتقال لكتابة ُجممة جديدة‪.‬‬

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

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

‫‪10‬‬
‫ﺍﻟﻔﺼﻞ ﺍﻟﺜﺎﻧﻲ‬
‫ﺍﳋﻮﺍﺭﺯﻣﻴﺎﺕ‬
‫ﺳﻧﺗﻌﺭﻑ ﻋﻠﻰ ﺍﻟﻣﺭﺍﺣﻝ ﺍﻷﺭﺑﻌﺔ ﺍﻷﺳﺎﺳﻳﺔ ﻟﺣﻝ ﺍﻟﻣﺳﺎﺋﻝ )ﺗﻌﺭﻳﻑ ﺍﻟﻣﺳﺄﻟﺔ ﻭﺗﺣﻠﻳﻠﻬﺎ ﻭﺍﻟﺑﺭﻣﺟﺔ ﻭﺍﻟﺗﻭﺛﻳﻖ(‬
‫ﻭﻣﻔﻬﻭﻡ ﺍﻟﺧﻭﺍﺭﺯﻣﻳﺎﺕ ﻭﺧﺻﺎﺋﺻﻬﺎ ﻭﻁﺭﻕ ﺻﻳﺎﻏﺗﻬﺎ ﺑﺎﺳﺗﺧﺩﺍﻡ ﺍﻟﻠﻐﺎﺕ ﺍﻟﻁﺑﻳﻌﻳﺔ ﻭﺍﻟﻣﺧﻁﻁﺎﺕ ﺍﻻﻧﺳﻳﺎﺑﻳﺔ‬
‫ﻭﻛﻭﺩ ﺍﻟﺷﻔﺭﺓ ﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ ﺷﺭﺡ ﻛﺎﻣﻝ ﻟﻠﻣﺧﻁﻁﺎﺕ ﺍﻻﻧﺳﻳﺎﺑﻳﺔ ﻣﻥ ﺧﻼﻝ ﺗﺣﺩﻳﺩ ﺍﻷﺷﻛﺎﻝ ﻭﺍﻟﻌﻧﺎﺻﺭ‬
‫ﺍﻟﻣﺳﺗﺧﺩﻣﺔ ﻭﻣﺩﻟﻭﻝ ﻛﻝ ﻣﻧﻬﺎ ﻭﺍﺳﺗﺧﺩﺍﻣﻬﺎ ﻓﻲ ﺻﻳﺎﻏﺔ ﺍﻟﺧﻭﺍﺭﺯﻣﻳﺎﺕ ﻭﺷﺭﺡ ﻛﺎﻣﻝ ﻻﺳﺗﺧﺩﺍﻡ ﻛﻭﺩ ﺍﻟﺷﻔﺭﺓ ﻓﻲ‬
‫ﺻﻳﺎﻏﺔ ﺍﻟﺧﻭﺍﺭﺯﻣﻳﺎﺕ‬

‫‪ (2.1‬ﻣﻘﺩﻣﺔ ‪INTRODUCTION‬‬
‫ﻓﻲ ﻫﺫﺍ ﺍﻟﻔﺻﻝ ﺳﻧﺗﻧﺎﻭﻝ ﺍﻟﻣﺭﺍﺣﻝ ﺍﻷﺳﺎﺳ‪5‬ﻳﺔ ﺍﻟﻣﺗﺑﻌ‪5‬ﺔ ﻟﺣ‪5‬ﻝ ﺍﻟﻣﺳ‪5‬ﺎﺋﻝ ﺑ‪5‬ﺩء ﻣ‪5‬ﻥ ﺗﻌﺭﻳ‪5‬ﻑ ﺍﻟﻣﺳ‪5‬ﺄﻟﺔ ﻭﺗﺣﻠﻳﻠﻬ‪5‬ﺎ‬
‫ﺣﺗ‪55‬ﻰ ﻣﺭﺣﻠ‪55‬ﺔ ﺍﻟﺗﻭﺛﻳ‪55‬ﻖ ﻣ‪55‬ﺭﻭﺭﺍ ﺑﻣﺭﺣﻠ‪55‬ﺔ ﺍﻟﺑﺭﻣﺟ‪55‬ﺔ ﻭﺫﻟ‪55‬ﻙ ﺑﺎﻹﺿ‪55‬ﺎﻓﺔ ﺇﻟ‪55‬ﻰ ﺗﻧ‪55‬ﺎﻭﻝ ﻣﻔﻬ‪55‬ﻭﻡ ﺍﻟﺧﻭﺍﺭﺯﻣﻳ‪55‬ﺎﺕ‬
‫ﻭﺧﺻﺎﺋﺻ‪55‬ﻬﺎ ﻭﻁ‪55‬ﺭﻕ ﺻ‪55‬ﻳﺎﻏﺗﻬﺎ ﻭﺳ‪55‬ﻧﻘﻭﻡ ﺑ‪55‬ﺎﻟﺗﺭﻛﻳﺯ ﻋﻠ‪55‬ﻰ ﻁ‪55‬ﺭﻳﻘﺗﻳﻥ ﺷ‪55‬ﺎﺋﻌﻲ ﺍﻻﺳ‪55‬ﺗﺧﺩﺍﻡ ﻓ‪55‬ﻲ ﺻ‪55‬ﻳﺎﻏﺔ‬
‫ﺍﻟﺧﻭﺍﺭﺯﻣﻳﺎﺕ ﻭﻫﻣﺎ ﻁﺭﻳﻘﺔ ﺍﻟﻣﺧﻁﻁﺎﺕ ﺍﻻﻧﺳﻳﺎﺑﻳﺔ )‪ (flowchart‬ﻭﻁﺭﻳﻘﺔ ﻛﻭﺩ ﺍﻟﺷ‪5‬ﻔﺭﺓ ‪(pseudo‬‬
‫)‪.code‬‬

‫‪ (2.2‬ﻣﺭﺍﺣﻝ ﺣﻝ ﺍﻟﻣﺳﺎﺋﻝ ‪STEPS FOR PROBLEM SOLVING‬‬


‫ﻟﺣﻝ ﺍﻟﻣﺳﺎﺋﻝ ﻳﻭﺟﺩ ﻣﺭﺍﺣﻝ ﻣﺗﻌﺩﺩﺓ ﻳﺟﺏ ﺗﻧﻔﻳﺫﻫﺎ ﺑﻐﻳﺔ ﺗﺣﻘﻳﻖ ﺍﻟﺣﻝ ﺍﻷﻣﺛﻝ ﻟﻠﻣﺳﺄﻟﺔ ﻣﻥ ﺍﻟﻧﺎﺣﻳ‪5‬ﺔ ﺍﻟﺷ‪5‬ﻛﻠﻳﺔ‬
‫ﻭﺍﻟﺗﻧﻔﻳﺫﻳﺔ ﻭﻣﺭﺍﺣﻝ ﺣﻝ ﺍﻟﻣﺳﺎﺋﻝ ﻫﻲ‪:‬‬

‫‪(2.1.1‬ﺗﻌﺭﻳﻑ ﺍﻟﻣﺳﺄﻟﺔ ‪Problem Definition‬‬


‫ﻳﻌﻧﻲ ﺑﺗﻌﺭﻳﻑ ﺍﻟﻣﺳﺄﻟﺔ ﺩﺭﺍﺳﺗﻬﺎ ﻭﻓﻬﻣﻬﺎ ﻓﻬﻣﺎ ﺟﻳﺩﺍ ﻭﺗﺣﺩﻳﺩ ﺍﻟﻣﻌﻁﻳﺎﺕ )ﺍﻟﻣﺩﺧﻼﺕ( ﻭﺗﺣﺩﻳﺩ ﺍﻟﻣﺧﺭﺟﺎﺕ‬
‫ﺃﻭ ﺍﻟﻧﺗﺎﺋﺞ‬

‫‪(2.1.2‬ﺗﺣﻠﻳﻝ ﺍﻟﻣﺳﺄﻟﺔ ‪Problem Analysis‬‬


‫ﻭﻫﻰ ﻣﺭﺣﻠﺔ ﺗﺣﺩﻳﺩ ﺍﻟﻌﻣﻠﻳﺎﺕ ﻭﺍﻟﺧﻁﻭﺍﺕ ﺍﻟﺗﻲ ﺗﺅﺩﻱ ﺇﻟﻰ ﺣﻝ ﺍﻟﻣﺳﺄﻟﺔ ﻭﺗﻌﺗﺑﺭ ﻫﺫﻩ ﺍﻟﻣﺭﺣﻠﺔ ﻫﻲ ﻣﺭﺣﻠﺔ‬
‫ﻛﺗﺎﺑ‪55‬ﺔ ﺍﻟﺧﻭﺍﺭﺯﻣﻳ‪55‬ﺎﺕ ﺳ‪55‬ﻭﺍء ﻛ‪55‬ﺎﻥ ﺑﺎﺳ‪55‬ﺗﺧﺩﺍﻡ ﺍﻟﻣﺧﻁﻁ‪55‬ﺎﺕ ﺍﻻﻧﺳ‪55‬ﻳﺎﺑﻳﺔ )‪ (flowchart‬ﺃﻭ ﺑﺎﺳ‪55‬ﺗﺧﺩﺍﻡ ﻛ‪55‬ﻭﺩ‬
‫ﺍﻟﺷﻔﺭﺓ )‪(Pseudo code‬‬
‫‪(2.1.3‬ﺍﻟﺑﺭﻣﺟﺔ ‪Programming‬‬
‫ﺗﺣﻭﻳﻝ ‪ flowchart‬ﺃﻭ ‪ Pseudo code‬ﺇﻟﻰ ﺑﺭﻧﺎﻣﺞ ﻟﺣﻝ ﺍﻟﻣﺳﺄﻟﺔ ﺑﺎﺳﺗﺧﺩﺍﻡ ﺇﺣﺩﻯ ﻟﻐﺎﺕ ﺍﻟﺑﺭﻣﺟﺔ‬
‫‪ .‬ﻭﺗﻧﻘﺳﻡ ﻫﺫﻩ ﺍﻟﻣﺭﺣﻠﺔ ﺇﻟﻰ ‪4‬ﻣﺭﺍﺣﻝ ﻓﺭﻋﻳﺔ‬

‫‪Source editing (a‬‬


‫ﻳﺗﻡ ﻛﺗﺎﺑﺔ ﺍﻟﺑﺭﻧﺎﻣﺞ ﻣﻥ ﺧﻼﻝ ﻟﻭﺣﺔ ﺍﻟﻣﻔﺎﺗﻳﺢ )‪ (keyboard‬ﺑﺈﺣﺩﻯ ﻟﻐﺎﺕ ﺍﻟﺑﺭﻣﺟﺔ ﻭﻟﺗﻛﻥ‬
‫ﻋﻠﻰ ﺳﺑﻳﻝ ﺍﻟﻣﺛﺎﻝ ﻟﻐﺔ ‪python‬ﺛﻡ ﻳﺗﻡ ﺗﺧﺯﻳﻥ ﻫﺫﺍ ﺍﻟﺑﺭﻧﺎﻣﺞ ﺩﺍﺧﻝ ﺫﺍﻛﺭﺓ ﺍﻟﺣﺎﺳﺏ ﺑﺎﺳﻡ ﻭﻟﻳﻛﻥ‬
‫)‪ (test.py‬ﻣﻊ ﺍﻟﻌﻠﻡ ﺃﻥ ﺍﻻﻣﺗﺩﺍﺩ )‪ (.py‬ﺍﻟﻣﺭﻓﻖ ﻣﻊ ﺍﻻﺳﻡ ﻳﺩﻝ ﻋﻠﻰ ﺃﻥ ﺍﻟﺑﺭﻧﺎﻣﺞ ﺗﻡ ﻛﺗﺎﺑﺗﻪ‬
‫‪source‬‬ ‫ﺑﻠﻐﺔ ‪ . Python‬ﺑﺎﻧﺗﻬﺎء ﻫﺫﻩ ﺍﻟﻣﺭﺣﻠﺔ ﺍﻟﻔﺭﻋﻳﺔ ﻳﻛﻭﻥ ﻟﺩﻳﻧﺎ ﺑﺭﻧﺎﻣﺞ ﻳﺳﻣﻰ‬
‫‪program‬‬
‫‪ (b‬ﺍﻟﺗﺭﺟﻣﺔ ‪Compilation‬‬
‫ﻓﻲ ﻫﺫﻩ ﺍﻟﻣﺭﺣﻠﺔ ﺍﻟﻔﺭﻋﻳﺔ ﻳﺗﻡ ﺇﺟﺭﺍء ﺍﻟﻭﻅﺎﺋﻑ ﺍﻟﺗﺎﻟﻳﺔ ‪:‬‬
‫‪ (1‬ﺍﻟﻛﺷﻑ ﻋﻥ ﺍﻷﺧﻁﺎء ﺍﻟﻠﻐﻭﻳﺔ )‪ (syntax error‬ﻭﺗﻌﺩﻳﻠﻬﺎ ﺣﺳﺏ ﻗﻭﺍﻋﺩ ﺍﻟﻠﻐﺔ ﺍﻟﻣﺳﺗﺧﺩﻣﺔ‬
‫ﺣﺗﻰ ﻳﻛﻭﻥ ﺍﻟﺑﺭﻧﺎﻣﺞ ﺧﺎﻟﻲ ﻣﻥ ﺍﻷﺧﻁﺎء ﺍﻟﻠﻐﻭﻳﺔ‬
‫‪ (2‬ﺗﺣﻭﻳﻝ ‪ source program‬ﺇﻟﻰ ﺑﺭﻧﺎﻣﺞ ﻟﻐﺔ ﺍﻵﻟﺔ ﻳﺳﻣﻰ ‪ object file‬ﺑﻭﺍﺳﻁﺔ ﺍﻟﻣﺗﺭﺟﻡ‬
‫)‪ (compiler‬ﺍﻟﻣﺳﺗﺧﺩﻡ ﺗﺑﻌﺎ ﻟﻧﻭﻉ ﺍﻟﻠﻐﺔ ﺍﻟﻣﺳﺗﺧﺩﻣﺔ‬
‫ﺑﺎﻧﺗﻬﺎء ﻫﺫﻩ ﺍﻟﻣﺭﺣﻠﺔ ﺍﻟﻔﺭﻋﻳﺔ ﻳﻛﻭﻥ ﻟﺩﻳﻧﺎ ﻣﻠﻑ ﻳﺳﻣﻰ ‪ object file‬ﻭﻟﻳﻛﻥ ‪test.obj‬‬
‫‪ (c‬ﺍﻟﺭﺑﻁ ‪Linking‬‬
‫ﻳ‪5‬ﺗﻡ ﺑﻭﺍﺳ‪5‬ﻁﺔ ﻧﻅ‪5‬ﺎﻡ ﺍﻟﺗﺷ‪5‬ﻐﻳﻝ)‪ (operating system‬ﺭﺑ‪5‬ﻁ )‪ object file (test.obj‬ﺃﻭ‬
‫‪ object files‬ﺃﺧﺭﻯ ﻭﺫﻟﻙ ﻟﻠﺣﺻﻭﻝ ﻣﻠﻑ ﺍﻟﺗﻧﻔﻳﺫ )‪.(test.exe‬‬
‫ﻓﻲ ﻧﻬﺎﻳﺔ ﻫﺫﻩ ﺍﻟﻣﺭﺣﻠﺔ ﺍﻟﻔﺭﻋﻳﺔ ﻳﻛ‪5‬ﻭﻥ ﻟ‪5‬ﺩﻳﻧﺎ ﻣﻠ‪5‬ﻑ ﺍﻟﺗﻧﻔﻳ‪5‬ﺫ ‪ execution file‬ﻭﺍﻟ‪5‬ﺫﻱ‬
‫ﻳﺗﻡ ﺍﺳﺗﺧﺩﺍﻣﻪ ﺑﻭﺍﺳﻁﺔ ﺍﻟﻣﺳﺗﺧﺩﻡ )‪ (user‬ﻟﺗﺷﻐﻳﻝ ﺍﻟﺑﺭﻧﺎﻣﺞ‬
‫‪ (d‬ﺍﻟﻣﺣﺎﻛﺎﺓ ‪Simulation‬‬
‫ﺗﺳﺗﺧﺩﻡ ﻋﻣﻠﻳﺔ ﺍﻟﻣﺣﺎﻛﺎﺓ ﻟﻠﺗﺄﻛﺩ ﻣﻥ ﺧﻠ‪5‬ﻭ ﺍﻟﺑﺭﻧ‪5‬ﺎﻣﺞ ﻣ‪5‬ﻥ ﺍﻷﺧﻁ‪5‬ﺎء ﺍﻟﻣﻧﻁﻘﻳ‪5‬ﺔ )‪(logical errors‬‬
‫ﻭﺫﻟ‪5555‬ﻙ ﻣ‪5555‬ﻥ ﺧ‪5555‬ﻼﻝ ﺇﺩﺧ‪5555‬ﺎﻝ ﺩﺧ‪5555‬ﻝ )‪ (input‬ﻣﻌ‪5555‬ﻳﻥ ﻣﻌ‪5555‬ﺭﻭﻑ ﻣﻘ‪5555‬ﺩﻣﺎ ﻧﺗ‪5555‬ﺎﺋﺞ ﺍﻟﺑﺭﻧ‪5555‬ﺎﻣﺞ ﻟ‪5555‬ﻪ‬
‫)‪ (predefined output‬ﻓ‪555‬ﺈﺫﺍ ﻛﺎﻧ‪555‬ﺕ ﻣﺧﺭﺟ‪555‬ﺎﺕ ﺍﻟﺑﺭﻧ‪555‬ﺎﻣﺞ )‪ (results‬ﺗﺳ‪555‬ﺎﻭﻱ ﺍﻟﻧﺗ‪555‬ﺎﺋﺞ‬
‫ﺍﻟﻣﻌﺭﻓ‪55‬ﺔ ﻣﻘ‪55‬ﺩﻣﺎ )‪ (predefined output = result‬ﻛ‪55‬ﺎﻥ ﺍﻟﺑﺭﻧ‪55‬ﺎﻣﺞ ﺧﺎﻟﻳ‪55‬ﺎ ﻣ‪55‬ﻥ ﺍﻷﺧﻁ‪55‬ﺎء‬
‫ﺍﻟﻣﻧﻁﻘﻳﺔ ﻭﺇﻻ ﺳﻳﻘﻭﻡ ﺍﻟﻣﺑﺭﻣﺞ ﺑﺈﻋﺎﺩﺓ ﺍﻟﺗﺣﻘﻖ ﻣﻥ ﻋﺑﺎﺭﺍﺕ ﺍﻟﺑﺭﻧﺎﻣﺞ ﻣﺭﺓ ﺃﺧﺭﻯ ﺣﺗ‪5‬ﻰ ﻳﺗﺄﻛ‪5‬ﺩ ﻣ‪5‬ﻥ‬
‫ﺧﻠﻭ ﺍﻟﺑﺭﻧﺎﻣﺞ ﻣﻥ ﺟﻣﻳﻊ ﺍﻷﺧﻁﺎء ﺍﻟﻣﻧﻁﻘﻳﺔ‬

‫‪(2.1.4‬ﺍﻟﺗﻭﺛﻳﻖ ‪Documentation‬‬
‫ﻳﻌﻧ‪5‬ﻲ ﺑ‪5‬ﺎﻟﺗﻭﺛﻳﻖ ﻛﺗﺎﺑ‪5‬ﺔ ﺗﻘﺭﻳ‪5‬ﺭ ﻣﻧﻔﺻ‪5‬ﻝ ) ﺃﻭ ﺗﻌﻠﻳﻘ‪5‬ﺎﺕ ﻋﻠ‪5‬ﻰ ﺍﻟﺑﺭﻧ‪5‬ﺎﻣﺞ ﺍﻷﺻ‪5‬ﻠﻲ ‪(source program‬‬
‫ﻷﻫﻡ ﺍﻟﻣﻌﻠﻭﻣﺎﺕ ﻋﻥ ﺍﻟﺑﺭﻧﺎﻣﺞ ﻭﻁﺑﻳﻌﺔ ﻋﻣﻠﻪ ﺑﻬﺩﻑ ﺍﻟﺭﺟﻭﻉ ﺇﻟﻳﻪ ﻋﻧﺩ ﺍﻟﺣﺎﺟﺔ ﻭﻟﻠﻣﺳﺎﻋﺩﺓ ﻓ‪5‬ﻲ ﺍﻟﺗﻁ‪5‬ﻭﻳﺭ‬
‫ﺍﻟﻣﺳﺗﻘﺑﻠﻲ‪.‬‬

‫ﻭﻧﻅﺭﺍ ﻷﻥ ﺗﺣﻠﻳﻝ ﺍﻟﻣﺳﺄﻟﺔ )‪ (problem analysis‬ﻫﻭ ﺍﻟﺧﻁﻭﺓ ﺍﻷﺳﺎﺳﻳﺔ ﻟﺗﺣﺩﻳﺩ ﻁﺭﻳﻘﺔ ﺍﻟﺣﻝ ﻁﺑﻘ‪5‬ﺎ‬
‫ﻟﺳﺭﻋﺔ ﻭﺳﻬﻭﻟﺔ ﻭﺩﻗﺔ ﺍﻟﻭﺻﻭﻝ ﺇﻟﻰ ﺍﻟﻧﺗﺎﺋﺞ ﻟﺫﺍ ﺳﻧﺗﺣﺩﺙ ﻓﻲ ﻫﺫﺍ ﺍﻟﻔﺻ‪5‬ﻝ ﻋ‪5‬ﻥ ﺍﻟﻁ‪5‬ﺭﻕ ﺍﻟﻣﺧﺗﻠﻔ‪5‬ﺔ ﻟﺗﺣﻠﻳ‪5‬ﻝ‬
‫ﺍﻟﻣﺳﺎﺋﻝ‬

‫ﻣﺛﺎﻝ‪1 :‬‬

‫ﺃﻭﺟﺩ ﻗﻳﻣﺔ ﺍﻟﻣﺗﻐﻳﺭ ‪ Z‬ﺍﻟﻧﺎﺗﺞ ﻣﻥ ﺍﻟﻣﻌﺎﺩﻟﺔ ‪:‬‬

‫‪Z  ( X  Y )2‬‬

‫ﺧﻁﻭﺍﺕ ﺍﻟﺣﻝ‪:‬‬

‫‪ (1‬ﻓﻬ‪K‬ﻡ ﺍﻟﻣﺳ‪K‬ﺄﻟﺔ‪ :‬ﻭﻫ‪5‬ﻭ ﺣﺳ‪5‬ﺎﺏ ﻗﻳﻣ‪5‬ﺔ ﺍﻟﻣﺗﻐﻳ‪5‬ﺭ ‪ Z‬ﺍﻟﻣﻌﻁ‪5‬ﻰ ﺑﺎﻟﻣﻌﺎﺩﻟ‪5‬ﺔ ﺍﻟﺳ‪5‬ﺎﺑﻘﺔ ﻭﺗﺣﺩﻳ‪5‬ﺩ ﺍﻟﻣ‪5‬ﺩﺧﻼﺕ‬
‫ﻭﻫﻲ ‪ X and Y‬ﻭﺗﺣﺩﻳﺩ ﺍﻟﻣﺧﺭﺟﺎﺕ ﻭﻫﻭ ﺇﻳﺟﺎﺩ ﻗﻳﻣﺔ ﺍﻟﻣﺗﻐﻳﺭ ‪ Z‬ﺍﻟﻣﺣﺩﺩ ﺑﺎﻟﻣﻌﺎﺩﻟﺔ ﺍﻟﺳﺎﺑﻘﺔ‬
‫‪ (2‬ﻣﺭﺣﻠ‪KK‬ﺔ ﺍﻟﺗﺣﻠﻳ‪KK‬ﻝ‪ :‬ﺍﺳ‪55‬ﺗﻌﺭﺍﺽ ﺍﻟﻁ‪55‬ﺭﻕ ﺍﻟﻣﺧﺗﻠﻔ‪55‬ﺔ ﻟﻠﺣ‪55‬ﻝ ﻭﺍﺧﺗﺑ‪55‬ﺎﺭ ﺃﻧﺳ‪55‬ﺑﻬﺎ ﻣ‪55‬ﻥ ﻧﺎﺣﻳ‪55‬ﺔ ﺍﻟﺳ‪55‬ﺭﻋﺔ‬
‫ﻭﺍﻟﺳﻬﻭﻟﺔ ﻭﻛﺫﻟﻙ ﺍﻟﺩﻗﺔ‬
‫ﻳﻭﺟﺩ ﻁﺭﻳﻘﺗﺎﻥ ﻟﻠﺣﻝ‪:‬‬

‫ﺍﻟﻁﺭﻳﻘﺔ ﺍﻷﻭﻟﻰ‪:‬‬

‫‪ (1‬ﺍﻟﺗﻌﻭﻳﺽ ﺑﻘﻳﻣﺔ ﻛﻝ ﻣﻥ ﺍﻟﻣﺗﻐﻳﺭﻳﻥ ‪X and Y‬‬


‫‪ (2‬ﺇﻳﺟﺎﺩ ﻧﺎﺗﺞ )‪(X – Y‬‬
‫‪ (3‬ﺇﻳﺟﺎﺩ ﻣﺭﺑﻊ ﺍﻟﻧﺎﺗﺞ ﺍﻟﺳﺎﺑﻖ ﻟﻠﺣﺻﻭﻝ ﻋﻠﻰ ﻗﻳﻣﺔ ﺍﻟﻣﺗﻐﻳﺭ ‪Z‬‬
‫ﺍﻟﻁﺭﻳﻘﺔ ﺍﻟﺛﺎﻧﻳﺔ‪:‬‬

‫ﺣﺳﺎﺏ ﻗﻳﻣﺔ ﺍﻟﻣﺗﻐﻳﺭ ‪ Z‬ﻣﻥ ﺧﻼﻝ ﺍﻟﻣﻌﺎﺩﻟﺔ‬

‫‪Z  X 2  Y 2  2 * X *Y‬‬

‫‪ (1‬ﺍﻟﺗﻌﻭﻳﺽ ﺑﻘﻳﻣﺔ ﻛﻝ ﻣﻥ ﺍﻟﻣﺗﻐﻳﺭﻳﻥ ‪X and Y‬‬


‫‪ (2‬ﺇﻳﺟﺎﺩ ﻣﺭﺑﻊ ﺍﻟﻣﺗﻐﻳﺭ ‪X2 = X‬‬
‫‪ (3‬ﺇﻳﺟﺎﺩ ﻣﺭﺑﻊ ﺍﻟﻣﺗﻐﻳﺭ ‪Y2 = Y‬‬
‫‪ (4‬ﺇﻳﺟﺎﺩ ﻗﻳﻣﺔ ‪2*X*Y‬‬
‫‪ (5‬ﺇﻳﺟﺎﺩ ﻣﺟﻣﻭﻉ ﻣﺭﺑﻌﻲ ﺍﻟﻣﺗﻐﻳﺭﻳﻥ ‪+ Y2X2= X and Y‬‬
‫‪ (6‬ﺇﻳﺟﺎﺩ ﻗﻳﻣﺔ ﺍﻟﻣﺗﻐﻳﺭ ‪ Z‬ﻣﻥ ﺧﻼﻝ ﻁﺭﺡ ﻧﺎﺗﺞ ﺍﻟﺧﻁﻭﺓ ‪ 4‬ﻣﻥ ﻧﺎﺗﺞ ﺍﻟﺧﻁﻭﺓ ﺍﻟﺧﺎﻣﺳﺔ‬
‫ﺑﺗﺣﻠﻳﻝ ﺍﻟﻁﺭﻳﻘﺗﻳﻥ ﺍﻟﺳﺎﺑﻘﺗﻳﻥ ﻳﺗﺿﺢ ﺃﻥ ﺍﻟﻁﺭﻳﻘﺔ ﺍﻷﻭﻟﻰ ﺃﺳﺭﻉ ﻭﺃﺳﻬﻝ ﻓﻲ ﺍﻟﻭﺻﻭﻝ ﺇﻟﻰ ﺍﻟﺣﻝ‬

‫‪ (2.3‬ﻣﻔﻬﻭﻡ ﺍﻟﺧﻭﺍﺭﺯﻣﻳﺎﺕ ‪ALGORITHMS CONCEPTS‬‬


‫ﺟﺎءﺕ ﻛﻠﻣﺔ ﺧﻭﺍﺭ ﺯﻡ ﻣﻥ ﺍﺳ‪5‬ﻡ ﺍﻟﻌ‪5‬ﺎﻟﻡ ﺍﻟﻌﺭﺑ‪5‬ﻲ ﷴ ﺑ‪5‬ﻥ ﻣﻭﺳ‪5‬ﻰ ﺍﻟﺧ‪5‬ﻭﺍﺭﺯﻣﻲ ﻭﻫ‪5‬ﻭ ﻣ‪5‬ﻥ ﻋﻠﻣ‪5‬ﺎء ﺍﻟﺭﻳﺎﺿ‪5‬ﺔ‬
‫ﺍﻟﻌﺭﺏ ﻓﻲ ﺍﻟﻘﺭﻥ ﺍﻟﺛﺎﻣﻥ ﻋﺷﺭ ﺍﻟﻣﻳﻼﺩﻱ‬

‫‪(2.3.1‬ﺗﻌﺭﻳﻑ ﺍﻟﺧﻭﺍﺭﺯﻡ ‪Definition‬‬


‫ﻫﻲ ﻣﺟﻣﻭﻋﺔ ﻣﻥ ﺍﻟﺧﻁﻭﺍﺕ ﺍﻟﻣﻧﻁﻘﻳﺔ ﺍﻟﺗﻲ ﻳﺗﻡ ﺗﻧﻔﻳﺫﻫﺎ ﺣﺳﺏ ﺗﺭﺗﻳ‪5‬ﺏ ﻣﺣ‪5‬ﺩﺩ ﻳﺗﺻ‪5‬ﻑ ﺑﺎﻟﺩﻗ‪5‬ﺔ ﻭﺍﻟﻭﺿ‪5‬ﻭﺡ‬
‫ﻭﺍﻟﺷﻣﻭﻟﻳﺔ ﻟﻠﻭﺻﻭﻝ ﺇﻟﻰ ﺍﻟﺣﻝ ﺍﻷﻣﺛﻝ ﻟﻠﻣﺳﺄﻟﺔ‬

‫‪(2.3.2‬ﺧﺻﺎﺋﺹ ﺍﻟﺧﻭﺍﺭﺯﻣﻳﺎﺕ ‪Characteristics of Algorithms‬‬


‫ﻟﻠﺧﻭﺍﺭﺯﻣﻳﺎﺕ ﺧﺻﺎﺋﺹ ﻋﺩﺓ ﻣﻧﻬﺎ‪:‬‬

‫‪ (1‬ﺍﻟﺧﻁﻭﺍﺕ ﺍﻟﺧﻭﺍﺭﺯﻣﻳﺔ ﻣﺭﺗﺑﺔ ﺗﺭﺗﻳﺑﺎ ﻣﻧﻁﻘﻳﺎ )‪(well-ordered steps‬‬


‫‪ (2‬ﺍﻟﺧﻁﻭﺍﺕ ﺍﻟﺧﻭﺍﺭﺯﻣﻳﺔ ﻣﺣﺩﺩﺓ )‪ (defined steps‬ﻭﻣﻧﺗﻬﻳﺔ ) ‪(ended‬‬
‫‪ (3‬ﺍﻟﺧﻁﻭﺍﺕ ﺍﻟﺧﻭﺍﺭﺯﻣﻳﺔ ﺗﻧﻔﺫ ﻋﻣﻠﻳﺎﺕ ﺑﺳﻳﻁﺔ )‪(simple operations‬‬
‫‪ (4‬ﻳﻌﺭﻑ ﺍﻟﺧﻭﺍﺭﺯﻡ ﺗﻌﺭﻳﻔﺎ ﺟﻳﺩﺍﻭﺫﻟﻙ ﻣﻥ ﺧﻼﻝ ﺗﺣﺩﻳﺩ ﻭﺍﺿﺢ ﻟﺑﻳﺎﻧ‪5‬ﺎﺕ ﺍﻟ‪5‬ﺩﺧﻝ ﻭﺍﻟﻌﻣﻠﻳ‪5‬ﺎﺕ ﻭﺍﻟﺗﻌﻠﻳﻣ‪5‬ﺎﺕ‬
‫ﻭﺍﻷﻭﺍﻣﺭ‬
‫‪ (5‬ﻁﺭﻳﻘﺔ ﻋﺎﻣﺔ ﻟﻠﺣﻝ ‪ universal solution‬ﺑﺣﻳﺙ ﻳﻣﻛ‪5‬ﻥ ﺗﻁﺑﻳﻘﻬ‪5‬ﺎ ﻟﺣ‪5‬ﻝ ﻣﺳ‪5‬ﺎﺋﻝ ﺃﺧ‪5‬ﺭﻯ ﻣ‪5‬ﻥ ﻧﻔ‪5‬ﺱ‬
‫ﺍﻟﻧﻭﻉ‬
‫‪ (6‬ﺍﻟﻭﺻﻭﻝ ﺇﻟﻰ ﺍﻟﺣﻝ ﺑﻁﺭﻳﻘﺔ ﻣﺑﺎﺷﺭﺓ ﺑﺩﻭﻥ ﺗﻌﻘﻳﺩ ﺃﻭ ﺇﻁﺎﻟﺔ‬
‫‪ (2.3.3‬ﻁﺭﻕ ﺻﻳﺎﻏﺔ ﺍﻟﺧﻭﺍﺭﺯﻣﻳﺎﺕ ‪Algorithms Formation Methods‬‬
‫ﻳﻭﺟﺩ ﻁﺭﻕ ﻋﺩﻳﺩﺓ ﻟﺻﻳﺎﻏﺔ ﺍﻟﺧﻭﺍﺭﺯﻣﻳﺎﺕ ﺗﺧﺗﻠﻑ ﻓﻳﻣﺎ ﺑﻳﻧﻬﺎ ﻣﻥ ﺣﻳ‪5‬ﺙ ﺍﻟﺩﻗ‪5‬ﺔ ﻭﺳ‪5‬ﻬﻭﻟﺔ ﺍﻟﻔﻬ‪5‬ﻡ ﻭﺍﻟﺳ‪5‬ﺭﻋﺔ‬
‫ﻓﻲ ﺍﻟﻭﺻﻭﻝ ﺇﻟﻰ ﺍﻟﺣﻝ‬

‫‪ (a‬ﺍﺳﺗﺧﺩﺍﻡ ﺍﻟﻠﻐﺎﺕ ﺍﻟﻁﺑﻳﻌﻳﺔ ‪Using Natural Languages algorithms‬‬


‫ﻫﻲ ﺍﻟﻁﺭﻳﻘﺔ ﺍﻟﻣﺑﺎﺷﺭﺓ ﻟﻠﺗﻌﺑﻳﺭ ﻋﻥ ﺍﻟﺧﻭﺍﺭﺯﻡ ﻭﺫﻟﻙ ﺑﺗﻭﺿﻳﺢ ﺧﻁ‪5‬ﻭﺍﺕ ﺍﻟﺣ‪5‬ﻝ ﺑﻭﺍﺳ‪5‬ﻁﺔ ﺟﻣ‪5‬ﻝ ﻭﻋﺑ‪5‬ﺎﺭﺍﺕ‬
‫ﻣﻥ ﺧﻼﻝ ﺍﺳﺗﺧﺩﺍﻡ ﺍﻟﻠﻐﺎﺕ ﺍﻟﻁﺑﻳﻌﻳﺔ ﻛﺎﻟﻌﺭﺑﻳﺔ ﻭﺍﻹﻧﺟﻠﻳﺯﻳﺔ ﻭﺍﻟﻔﺭﻧﺳﻳﺔ‬

‫ﻣﺛﺎﻝ‪2 :‬‬

‫ﺃﻭﺟﺩ ﺍﻟﺧﻭﺍﺭﺯﻡ ﺍﻟﺫﻱ ﻳﻘﻭﻡ ﺑﺗﺣﻭﻳﻝ ﺩﺭﺟﺔ ﺍﻟﺣﺭﺍﺭﺓ ﺍﻟﺳﻧﺗﻐﺭﺍﺩ ﺇﻟﻰ ﺩﺭﺟﺔ ﻓﻬﺭﻧﻬﻳﺗﻳﺔ ﺑﺎﺳﺗﺧﺩﺍﻡ ﺍﻟﻣﻌﺎﺩﻟﺔ‬

‫‪C‬‬
‫‪F  32  9 ‬‬
‫‪5‬‬

‫ﺍﻟﺧﻭﺍﺭﺯﻡ‪:‬‬

‫‪ (1‬ﺍﻟﺳﺅﺍﻝ ﻋﻥ ﺇﺩﺧﺎﻝ ﺩﺭﺟﺔ ﺍﻟﺣﺭﺍﺭﺓ ﺍﻟﺳﻧﺗﻐﺭﺍﺩ ﺑﺭﻣﺯ ‪C‬‬


‫‪ (2‬ﺗﺧﺯﻳﻥ ﺩﺭﺟﺔ ﺍﻟﺣﺭﺍﺭﺓ ﺍﻟﺳﻧﺗﻐﺭﺍﺩ ) ‪ ( C‬ﻓﻲ ﺍﻟﺫﺍﻛﺭﺓ‬
‫‪ (3‬ﺣﺳﺎﺏ ﺩﺭﺟﺔ ﺍﻟﺣﺭﺍﺭﺓ ﺍﻟﻔﻬﺭﻧﻬﻳﺗﻳﺔ ﺍﻟﻣﻧﺎﻅﺭﺓ ﻣﻥ ﺧﻼﻝ ﺍﻟﻣﻌﺎﺩﻟﺔ ﺍﻟﺳﺎﺑﻘﺔ‬
‫‪ (4‬ﺗﺧﺯﻳﻥ ﺩﺭﺟﺔ ﺍﻟﺣﺭﺍﺭﺓ ﺍﻟﻔﻬﺭﻧﻬﻳﺗﻳﺔ ) ‪ ( F‬ﻓﻲ ﺍﻟﺫﺍﻛﺭﺓ‬
‫‪ (5‬ﻁﺑﺎﻋﺔ ﻗﻳﻣﺔ ﻛﻝ ﻣﻥ ‪F and C‬‬
‫ﺧﻭﺍﺭﺯﻡ ﺇﻋﺩﺍﺩ ﺍﻟﺭﺳﺎﻟﺔ ﺍﻟﺑﺭﻳﺩﻳﺔ ﻭ ﺧﻭﺍﺭﺯﻡ ﺳﻳﺭ ﺍﻟﻧﻅﺎﻡ ﺍﻟﻳﻭﻣﻲ ﻫ‪5‬ﻲ ﺃﻣﺛﻠ‪5‬ﺔ ﻻﺳ‪5‬ﺗﺧﺩﺍﻡ ﺍﻟﻠﻐ‪5‬ﺎﺕ ﺍﻟﻁﺑﻳﻌﻳ‪5‬ﺔ‬
‫ﻓﻲ ﺻﻳﺎﻏﺔ ﺍﻟﺧﻭﺍﺭﺯﻣﻳﺎﺕ‬
‫ﻏﺎﻟﺑ‪5‬ﺎ ﻻ ﺗﺳ‪55‬ﺗﺧﺩﻡ ﺍﻟﻠﻐ‪55‬ﺎﺕ ﺍﻟﻁﺑﻳﻌﻳ‪55‬ﺔ ﻓ‪5‬ﻲ ﺻ‪55‬ﻳﺎﻏﺔ ﺍﻟﺧﻭﺍﺭﺯﻣﻳ‪55‬ﺎﺕ ﻟﻁﻭﻟﻬ‪55‬ﺎ ﻭﺃﺣﻳﺎﻧ‪5‬ﺎ ﻟﻌ‪55‬ﺩﻡ ﺍﻟﺩﻗ‪55‬ﺔ ﻭﻟ‪55‬ﺫﻟﻙ ﻳ‪55‬ﺗﻡ‬
‫ﺍﺳﺗﺧﺩﺍﻡ ﻁﺭﻕ ﺃﺧﺭﻯ ﺃﺷﻬﺭﻫﺎ ﺍﻟﻣﺧﻁﻁﺎﺕ ﺍﻻﻧﺳﻳﺎﺑﻳﺔ )‪ (Flowcharts‬ﺃﻭ ﻛﻭﺩ ﺍﻟﺷﻔﺭﺓ‬

‫‪ (b‬ﺍﺳﺗﺧﺩﺍﻡ ﺍﻟﻣﺧﻁﻁﺎﺕ ﺍﻻﻧﺳﻳﺎﺑﻳﺔ ‪Using Flowcharts‬‬


‫ﻫﻲ ﺍﺳﺗﺧﺩﺍﻡ ﻣﺟﻣﻭﻋﺔ ﻣﻥ ﺍﻷﺷﻛﺎﻝ ﺃﻭ ﺍﻟﻌﻧﺎﺻﺭ ﺍﻟﻬﻧﺩﺳﻳﺔ ﺍﻟﻣﺗﺻﻠﺔ ﻣﻊ ﺑﻌﺿﻬﺎ ﺑﻭﺍﺳﻁﺔ ﺍﺳﺗﺧﺩﺍﻡ ﺃﺳﻬﻡ‬
‫ﻭﻧﻘﺎﻁ ﺍﺗﺻﺎﻝ‬

‫‪ (c‬ﺍﺳﺗﺧﺩﺍﻡ ﻛﻭﺩ ﺍﻟﺷﻔﺭﺓ ‪Using Pseudo code‬‬


‫ﻫﻲ ﻟﻐﺔ ﺭﻣﺯﻳﺔ ﻟﻳﺱ ﻟﻬﺎ ﻣﺗﺭﺟﻡ ﻭ ﺗﺳﺗﺧﺩﻡ ﺑﻌﺽ ﺍﻟﻌﺑﺎﺭﺍﺕ ﺍﻟﻘﺭﻳﺑﺔ ﻣﻥ ﺍﻟﻠﻐﺎﺕ ﺍﻟﻁﺑﻳﻌﻳﺔ‬

‫‪ (2.4‬ﺍﻟﻣﺧﻁﻁﺎﺕ ﺍﻻﻧﺳﻳﺎﺑﻳﺔ ‪FLOWCHARTS‬‬


‫ﻫﻲ ﺍﺳﺗﺧﺩﺍﻡ ﻣﺟﻣﻭﻋﺔ ﻣﻥ ﺍﻟﻌﻧﺎﺻﺭ ﺃﻭ ﺍﻷﺷﻛﺎﻝ ﺍﻟﻬﻧﺩﺳﻳﺔ ﺍﻟﻣﺗﺻﻠﺔ ﻣﻊ ﺑﻌﺿﻬﺎ ﺑﻭﺍﺳﻁﺔ ﺍﺳﺗﺧﺩﺍﻡ ﺃﺳﻬﻡ‬
‫ﻭﻧﻘﺎﻁ ﺍﺗﺻﺎﻝ‪ .‬ﺍﻟﺷﻛﻝ ﺭﻗﻡ ‪ 2‬ﻳﻭﺿﺢ ﺍﻟﻌﻧﺎﺻﺭ ﺍﻟﻣﺳﺗﺧﺩﻣﺔ ﻓﻲ ﺗﻛﻭﻳﻥ ﺍﻟﻣﺧﻁﻁ‪5‬ﺎﺕ ﺍﻻﻧﺳ‪5‬ﻳﺎﺑﻳﺔ ﻭﻣ‪5‬ﺩﻟﻭﻝ‬
‫ﻛﻝ ﻋﻧﺻﺭ‪ .‬ﺍﻟﺷﻛﻝ ﺭﻗﻡ ‪ 3‬ﻳﻭﺿﺢ ﻣﺣﺗﻭﻯ ﻛﻝ ﻋﻧﺻﺭ ﻣﻥ ﻋﻧﺎﺻﺭ ﺍﻟﻣﺧﻁﻁﺎﺕ ﺍﻻﻧﺳﻳﺎﺑﻳﺔ‬

‫ﺷﻛﻝ ‪ :2‬ﺍﻟﻌﻧﺎﺻﺭ ﺍﻟﻣﺳﺗﺧﺩﻣﺔ ﻓﻲ ﺗﻛﻭﻳﻥ ﺍﻟﻣﺧﻁﻁﺎﺕ ﺍﻻﻧﺳﻳﺎﺑﻳﺔ ﻭﻣﺩﻟﻭﻝ ﻛﻝ ﻋﻧﺻﺭ‬


‫ﺷﻛﻝ ‪ :3‬ﻣﺣﺗﻭﻯ ﻛﻝ ﻋﻧﺻﺭ ﻣﻥ ﺃﺷﻛﺎﻝ ﺍﻟﻣﺧﻁﻁﺎﺕ ﺍﻻﻧﺳﻳﺎﺑﻳﺔ‬

‫ﻣﻠﺣﻭﻅﺔ‬

‫ﻓ‪55‬ﻲ ﺍﻟﺷ‪55‬ﻛﻝ ﺭﻗ‪55‬ﻡ ‪ 3‬ﺍﻟﻌﻧﺻ‪55‬ﺭ ﺭﻗ‪55‬ﻡ ‪ 7‬ﻭﺍﻟﻌﻧﺻ‪55‬ﺭ ﺭﻗ‪55‬ﻡ ‪ 8‬ﻳﻣ‪55‬ﺛﻼﻥ ﺍﻟﻌ‪55‬ﺩﺍﺩﺍﺕ ﺃﻭ ﺍﻟﺗﻛ‪55‬ﺭﺍﺭ ﺍﻟﻣﺣ‪55‬ﺩﺩ ﻭﻋﻧ‪55‬ﺩ‬
‫ﺍﺳﺗﺧﺩﺍﻡ ﻫﺫﻩ ﺍﻟﻌﻧﺎﺻﺭ ﻳﺟﺏ ﺗﺣﺩﻳﺩ ﺍﻟﺗﺎﻟﻲ‬

‫‪ (1‬ﺍﺳﻡ ﺍﻟﻌﺩﺍﺩ‪counter = C :‬‬


‫‪ (2‬ﺑﺩﺍﻳﺔ ﺍﻟﻌﺩﺍﺩ‪start = 1 :‬‬
‫‪ (3‬ﻧﻬﺎﻳﺔ ﺍﻟﻌﺩﺍﺩ‪stop = 10 :‬‬
‫‪ (4‬ﻗﻳﻣﺔ ﺍﻟﻘﻔﺯ‪step = 1 :‬‬
‫ﺍﻟﻌﻧﺻﺭ ﺭﻗﻡ ‪ 8‬ﻳﻭﺿﺢ ﺃﻥ ﺍﻟﻌﺩﺍﺩ ‪ C‬ﻳﺄﺧﺫ ﺍﻟﻘﻳﻡ )‪(1, 2, 3, 4, 5, 6, 7, 8, 9, and 10‬‬
‫ﻋﻠﻰ ﺍﻟﺗﻭﺍﻟﻲ‬

‫ﻣﺛﺎﻝ ‪3:‬‬

‫ﺃﻭﺟ‪5‬ﺩ ﺍﻟﻣﺧﻁ‪5‬ﻁ ﺍﻻﻧﺳ‪5‬ﻳﺎﺑﻲ ﻟﺧ‪5‬ﻭﺍﺭﺯﻡ ﻳﻘ‪5‬ﺭﺃ ﻗ‪5‬ﻳﻡ ﺍﻟﻣﺗﻐﻳ‪5‬ﺭﺍﺕ ‪ A, B, and C‬ﻭﻳﻘ‪5‬ﻭﻡ ﺑﺣﺳ‪5‬ﺎﺏ ﻭﻁﺑﺎﻋ‪5‬ﺔ‬
‫ﺍﻟﻣﺟﻣﻭﻉ )‪ (Sum‬ﻭﺍﻟﻣﺗﻭﺳﻁ ﺍﻟﺣﺳﺎﺑﻲ )‪ (Ave‬ﻭﺣﺎﺻﻝ ﺍﻟﺿﺭﺏ )‪(Pro‬‬

‫ﺍﻟﺣﻝ‪:‬‬
‫ﺍﻟﻣﺧﻁﻁ ﺍﻻﻧﺳﻳﺎﺑﻲ )‪ (Flowchart‬ﻟﻠﻣﺛﺎﻝ ﺭﻗﻡ ‪3‬‬

‫ﻣﺛﺎﻝ‪4 :‬‬

‫ﺃﻭﺟﺩ ﺍﻟﻣﺧﻁﻁ ﺍﻻﻧﺳ‪5‬ﻳﺎﺑﻲ ﻟﺧ‪5‬ﻭﺍﺭﺯﻡ ﻳﻘ‪5‬ﻭﻡ ﺑﺗﺣﻭﻳ‪5‬ﻝ ﺩﺭﺟ‪5‬ﺔ ﺍﻟﺣ‪5‬ﺭﺍﺭﺓ ﻣ‪5‬ﻥ ﻓﻬ‪5‬ﺭ ﻧﻬﻳ‪5‬ﺕ )‪ (F‬ﺇﻟ‪5‬ﻰ ﺳ‪5‬ﻧﺗﻐﺭﺍﺩ‬
‫)‪ .(C‬ﺍﻟﺧﻭﺍﺭﺯﻡ ﻳﻘﺭﺃ ﺩﺭﺟ‪5‬ﺔ ﺍﻟﺣ‪5‬ﺭﺍﺭﺓ ﺍﻟﻔﻬﺭﻧﻬﻳﺗﻳ‪5‬ﺔ ﻭﻳﻘ‪5‬ﻭﻡ ﺑﻁﺑﺎﻋ‪5‬ﺔ ﺩﺭﺟ‪5‬ﺔ ﺍﻟﺣ‪5‬ﺭﺍﺭﺓ ﺑﺎﻟﺳ‪5‬ﻧﺗﻐﺭﺍﺩ‪ .‬ﻗﺎﻋ‪5‬ﺩﺓ‬
‫ﺍﻟﺗﺣﻭﻳﻝ ﻣﻥ ﺩﺭﺟﺔ ﺍﻟﺣﺭﺍﺭﺓ ﺍﻟﻔﻬﺭﻧﻬﻳﺗﻳﺔ ﺇﻟﻰ ﺩﺭﺟﺔ ﺍﻟﺣﺭﺍﺭﺓ ﺍﻟﺳﻧﺗﻐﺭﺍﺩ ﺗﻌﻁﻰ ﺑﺎﻟﻣﻌﺎﺩﻟﺔ ﺍﻟﺗﺎﻟﻳﺔ‪:‬‬

‫‪5‬‬
‫‪C  ( F  32) ‬‬
‫‪9‬‬

‫ﺍﻟﺣﻝ‪:‬‬

‫ﺍﻟﻣﺧﻁﻁ ﺍﻻﻧﺳﻳﺎﺑﻲ )‪ (Flowchart‬ﻟﻠﻣﺛﺎﻝ ﺭﻗﻡ ‪4‬‬


‫‪ (2.5‬ﻛﻭﺩ ﺍﻟﺷﻔﺭﺓ ‪PSEUDO CODE‬‬
‫ﻫﻲ ﻟﻐﺔ ﺭﻣﺯﻳﺔ ﻟﻳﺱ ﻟﻬ‪5‬ﺎ ‪ compiler‬ﻭﻻ ﺗﺷ‪5‬ﻛﻝ ‪ source program‬ﻭﺗﺳ‪5‬ﺗﺧﺩﻡ ﺑﻌ‪5‬ﺽ ﺍﻟﻌﺑ‪5‬ﺎﺭﺍﺕ‬
‫ﺍﻟﻘﺭﻳﺑﺔ ﻣﻥ ﺍﻟﻠﻐﺎﺕ ﺍﻟﻁﺑﻳﻌﻳﺔ‪.‬‬

‫‪ (2.5.1‬ﺧﻁﻭﺍﺕ ﺇﻧﺷﺎء ‪Pseudo code‬‬


‫‪ (1‬ﺍﻹﻋﻼﻥ ﻋﻥ ﺍﻟﻣﺗﻐﻳﺭﺍﺕ )‪(variables declaration‬‬
‫ﻟﻺﻋﻼﻥ ﻋﻥ ﺍﻟﻣﺗﻐﻳﺭﺍﺕ ﻳﺟﺏ ﺗﺣﺩﻳﺩ ﺍﻟﺗﺎﻟﻲ‬

‫‪ (a‬ﺍﺳﻡ ﺍﻟﻣﺗﻐﻳﺭ ﻭﺍﻟﺫﻱ ﻳﺣﺩﺩ ﺑﻭﺍﺳﻁﺔ ﺍﻟﻣﺳﺗﺧﺩﻡ‬


‫‪ (b‬ﻧﻭﻉ ﺍﻟﻣﺗﻐﻳﺭ‪Integer, Real, Character, String, Boolean) :‬‬
‫‪ (c‬ﺗﻬﻳﺋﺔ ﺍﻟﻣﺗﻐﻳﺭﺍﺕ ﺑﻘﻳﻡ ﺃﻭﻟﻳﺔ ﺇﻥ ﻭﺟﺩﺕ )‪(Optional‬‬
‫ﻓﻲ ﺑﻌﺽ ﻟﻐﺎﺕ ﺍﻟﺑﺭﻣﺟﺔ ﻳﻛﻭﻥ ﺍﻟﻬﺩﻑ ﻣﻥ ﺍﻹﻋﻼﻥ ﻋﻥ ﺍﻟﻣﺗﻐﻳﺭ ﻫﻭ ﺇﺑﻼﻍ ﺍﻟﻣﺗﺭﺟﻡ ‪ compiler‬ﻋﻥ‬
‫ﻧﻭﻉ ﺍﻟﻣﺗﻐﻳﺭ )‪ (Variable data type‬ﻟﻳﻘﻭﻡ ﺑﺗﺣﺩﻳﺩ ﺍﻟﻣﺳﺎﺣﺔ ﺍﻟﺗﺧﺯﻳﻧﻳﺔ ﺍﻟﻣﻁﻠﻭﺑﺔ ﻟﻪ ﺩﺍﺧﻝ ﺍﻟﺫﺍﻛﺭﺓ‬
‫ﻭﺍﻟﺗﻲ ﻳﻣﻛﻥ ﺃﻥ ﺗﺣﺩﺩ ﻛﺎﻟﺗﺎﻟﻲ ‪:‬‬

‫‪a) Integer = 2 bytes‬‬


‫‪b) Real = 4 bytes‬‬
‫‪c) Character = 1 bytes‬‬
‫ﺍﻟﻣﺗﻐﻳ‪5‬ﺭ ﻣ‪5‬ﻥ ﺍﻟﻧ‪5‬ﻭﻉ ‪ Integer‬ﻳﺷ‪5‬ﻐﻝ ‪ 2 bytes‬ﻣ‪5‬ﻥ ﺍﻟ‪5‬ﺫﺍﻛﺭﺓ‪ .‬ﺍﻟﻣﺗﻐﻳ‪5‬ﺭ ﻣ‪5‬ﻥ ﺍﻟﻧ‪5‬ﻭﻉ ‪ Real‬ﻳﺷ‪5‬ﻐﻝ ‪4‬‬
‫‪ bytes‬ﻣﻥ ﺍﻟﺫﺍﻛﺭﺓ‪ .‬ﺍﻟﻣﺗﻐﻳﺭ ﻣﻥ ﺍﻟﻧﻭﻉ ‪ Character‬ﻳﺷﻐﻝ ‪ 1 bytes‬ﻣﻥ ﺍﻟﺫﺍﻛﺭﺓ‬

‫‪ (2‬ﻛﺗﺎﺑﺔ ﻛﻠﻣﺔ ‪ Begin‬ﻟﺑﺩﺍﻳﺔ ﺍﻟﺧﻭﺍﺭﺯﻡ‬


‫ﻳﺟﺏ ﻛﺗﺎﺑﺔ ﻛﻠﻣﺔ ‪ Begin‬ﻟﺑﺩﺍﻳﺔ ﺍﻟﺧﻭﺍﺭﺯﻡ‬

‫‪ (3‬ﻛﺗﺎﺑﺔ ﺟﺳﻡ ﺍﻟﺧﻭﺍﺭﺯﻡ‪ :‬ﻭﺍﻟﺫﻱ ﻳﺣﺗﻭﻱ ﻋﻠﻰ ﺍﻟﺗﺎﻟﻲ‪:‬‬


‫‪ (a‬ﻋﺑﺎﺭﺓ ﻗﺭﺍءﺓ ﺩﺧﻝ ﺍﻟﺧﻭﺍﺭﺯﻡ ‪Read statement‬‬
‫‪ (b‬ﺍﻟﻌﺑﺎﺭﺍﺕ ﺍﻟﺗﻧﻔﻳﺫﻳﺔ )ﺍﻟﺗﻌﻠﻳﻣﺎﺕ ﻭﺍﻟﻌﻣﻠﻳﺎﺕ ﻭﺍﻷﻭﺍﻣﺭ(‬
‫‪ (c‬ﻋﺑﺎﺭﺓ ﻁﺑﺎﻋﺔ ﻧﺗﺎﺋﺞ ﺍﻟﺧﻭﺍﺭﺯﻡ ‪Write statement‬‬
‫‪ (4‬ﻛﺗﺎﺑﺔ ﻛﻠﻣﺔ ‪ End‬ﻹﻧﻬﺎء ﺍﻟﺧﻭﺍﺭﺯﻡ‬
‫ﻳﺟﺏ ﺇﻧﻬﺎء ﺍﻟﺧﻭﺍﺭﺯﻡ ﺑﻛﺗﺎﺑﺔ ﻛﻠﻣﺔ ‪ End‬ﻓﻲ ﻧﻬﺎﻳﺗﻪ‬
‫ﻣﺛﺎﻝ ‪5 :‬‬

‫ﺃﻭﺟﺩ ‪ Pseudo code‬ﻟﻠﻣﺛﺎﻝ ﺭﻗﻡ ‪3‬‬

‫ﺍﻟﺣﻝ‪:‬‬

‫ﻣﺛﺎﻝ ‪6 :‬ﺍﻭﺟﺩ ‪ Pseudo code‬ﻟﻠﻣﺛﺎﻝ ﺭﻗﻡ ‪4‬‬


‫الفصل الثالث‪ :‬مقدمة عن البرمجة بلغة الفيجوال بيسك دوت نت‬

‫الفصل الثالث‬
‫مقدمة عن البرمجة بلغة‬
‫الفيجوال بيسك دوت نت‬

‫برنامج مايكروسوفت فيجوال استوديو ىو بيئة تطوير متكاممة )‪ (IDE‬تم ابتكاره من شركة مايكروسوفت‪ ،‬إذ‬
‫تم تصميمو لتطوير برامج الكمبيوتر الخاصة بنظام الويندوز ومواقع اإلنترنت وتطبيقات االنترنت وتطبيقات‬
‫أيضا اإلصدار الخاص بيم من‪ ، Visual Studio‬مما يمكنيم من العمل‬
‫الجوال‪ .‬كما يمتمك المبرمجون ً‬
‫مجانا عمى األنظمة األساسية الشائعة مثل ‪ Windows‬و ‪ Mac OS X‬و ‪Linux.‬‬
‫عمى الرموز ً‬

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

‫يعمل ‪ Visual Studio‬عمى منصات سطح المكتب الرائدة ويم ّكن الشركات من تطوير تطبيقات الويب‬
‫والجوال لنظامي التشغيل ‪ Android‬و ‪ iOS.‬كما أنو يدعم لغات البرمجة المختمفة‪ ،‬بما في ذلك ‪ C‬و ‪C ++‬‬
‫و( ‪ C ++ / CLI‬عبر )‪ Visual C ++‬و( ‪ VB.NET‬عبر )‪ Visual Basic .NET‬و( ‪ C #‬عبر‬
‫)‪ Visual C #‬كما أصبح يوفرالدعم لمغات األخرى مثل ‪ M‬و ‪ Python‬و‪ ، Ruby‬عبر خدمات المغة‬
‫أيضا ‪ XML / XSLT‬و ‪ HTML / XHTML‬و ‪ JavaScript‬و ‪CSS.‬‬
‫المثبتة بشكل منفصل‪ ،‬ويدعم ً‬

‫إلنشاء تطبيقات ‪ Windows‬بمغة برمجة ‪ ، VB.NET‬ستحتاج أوالً إلى تثبيت ‪Visual Studio‬‬
‫‪ Integrated Development Environment (IDE). Microsoft Visual Studio‬ىو بيئة تطوير‬
‫متكاممة )‪ (IDE‬من ‪ Microsoft‬حيث يمكنك تطوير أنواع مختمفة من التطبيقات عمى منصة ‪ .NET.‬كما‬
‫يسمح لممطور بتصحيح أخطاء تطبيقاتو وتشغيميا‪.‬‬

‫لتنزيل ‪ ، Visual Studio‬انتقل إلى صفحة تنزيل‪Visual Studio‬‬

‫‪https://visualstudio.microsoft.com/downloads/.‬‬

‫‪21‬‬
‫الفصل الثالث‪ :‬مقدمة عن البرمجة بلغة الفيجوال بيسك دوت نت‬

‫يمكنك تحديد أحد اإلصدارات التالية‪.‬‬

‫)‪ Visual Studio 2019 Community (Free download‬‬


‫)‪ Visual Studio 2019 Professional (Free trial‬‬
‫)‪ Visual Studio 2019 Enterprise (Free trial‬‬

‫سوف نستخدم ‪ Visual Studio 2019 Community Edition.‬إنيا نسخة مبسطة من ‪Visual Studio‬‬
‫خصيصا لألشخاص الذين يتعممون البرمجة ‪.‬يحتوي عمى واجية مستخدم مبسطة ويغفل الميزات‬
‫ً‬ ‫‪ ،‬تم إنشاؤىا‬
‫المتقدمة لإلصدار االحترافي لتجنب االلتباس ‪.‬لذا انقر فوق الزر تنزيل مجاني ‪ ،‬وبمجرد تنزيل ممف ‪* .exe‬‬
‫‪ ،‬انقر بزر الماوس األيمن وحدد تشغيل كمسؤول في الممف الذي تم تنزيمو لبدء التثبيت‪.‬‬

‫‪22‬‬
‫الفصل الثالث‪ :‬مقدمة عن البرمجة بلغة الفيجوال بيسك دوت نت‬

‫‪23‬‬
‫الفصل الثالث‪ :‬مقدمة عن البرمجة بلغة الفيجوال بيسك دوت نت‬

‫بعد اختيار حزمة البرامج المختارة يتم الضغط عمي ‪Install‬‬

‫النشاء مشروع جديد‪:‬‬

‫يتم اختيار ‪create new project‬‬

‫النشاء ‪ Console App‬يتم اختيار )‪ Console App (.NET Core‬ثم الضغط علي ‪Next‬‬
‫‪24‬‬
‫الفصل الثالث‪ :‬مقدمة عن البرمجة بلغة الفيجوال بيسك دوت نت‬

‫يتم تحديد اسم المشروع ومكان الحفظ ثم الضغط عمي ‪Create‬‬

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

‫‪25‬‬
‫الفصل الثالث‪ :‬مقدمة عن البرمجة بلغة الفيجوال بيسك دوت نت‬

‫لتنفيذ الكود السابق يتم اختيار ‪Debug > Start Without Debugging‬‬

‫‪26‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

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

‫مقدمة‬

‫لغة ال ‪ visual Basic .net‬ىي لغة برمجة حاسوبية موجية لمكائنات يتم تطبيقيا عمى ‪.NET‬‬
‫‪Framework.‬عمى الرغم من أنيا تطور لمغة ‪ Visual Basic‬الكالسيكية ‪ ،‬إال أنيا ليست متوافقة مع‬
‫اإلصدارات السابقة مع‪ ، VB6‬وأي كود مكتوب في اإلصدار القديم ال يتم ترجمتو ضمن‪VB.NET.‬‬

‫مثل جميع لغات ‪ .NET‬األخرى ‪ ،‬تتمتع ‪ VB.NET‬بدعم كامل لممفاىيم الموجية لمكائنات‪ .‬كل شيء في‬
‫‪VB.NET‬ىو كائن ‪ ،‬بما في ذلك جميع األنواع األولية ‪ ، (Short‬و ‪ ، Integer‬و ‪ ، Long‬و ‪، String‬‬
‫و ‪ ، Boolean‬وما إلى ذلك( واألنواع المحددة من قبل المستخدم ‪ ،‬واألحداث ‪ ،‬وحتى التجميعات‪ .‬ترث كافة‬
‫الكائنات من فئة الكائن األساسية‪.‬‬

‫يتم تنفيذ ‪ VB.NET‬بواسطة إطار عمل ‪ .Microsoft .NET‬لذلك ‪ ،‬لديو حق الوصول الكامل إلى جميع‬
‫أيضا تشغيل برامج ‪ VB.NET‬عمى ‪ ، Mono‬البديل‬
‫المكتبات في ‪ .Net Framework.‬من الممكن ً‬
‫أيضا في ‪ Linux‬أو ‪.Mac OSX‬‬
‫المفتوح المصدر لـ ‪ ، NET.‬ليس فقط في نظام ‪ ، Windows‬ولكن ً‬

‫األسباب التالية تجعل ‪ VB.Net‬لغة احترافية مستخدمة عمى نطاق واسع‪:‬‬

‫‪‬‬ ‫‪Modern, general purpose.‬‬


‫‪‬‬ ‫‪Object oriented.‬‬
‫‪‬‬ ‫‪Component oriented.‬‬
‫‪‬‬ ‫‪Easy to learn.‬‬
‫‪‬‬ ‫‪Structured language.‬‬
‫‪‬‬ ‫‪It produces efficient programs.‬‬
‫‪‬‬ ‫‪It can be compiled on a variety of computer platforms.‬‬
‫‪‬‬ ‫‪Part of .Net Framework.‬‬

‫‪27‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫مميزات البرمجة القوية ‪VB.Net‬‬

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


‫ً‬ ‫يتمتع ‪ VB.Net‬بالعديد من ميزات البرمجة القوية التي تجعمو‬
‫العالم ‪.‬ومن ىذه المميزات‪:‬‬

‫‪‬‬ ‫‪Boolean Conditions‬‬


‫‪‬‬ ‫‪Automatic Garbage Collection‬‬
‫‪‬‬ ‫‪Standard Library‬‬
‫‪‬‬ ‫‪Assembly Versioning‬‬
‫‪‬‬ ‫‪Properties and Events‬‬
‫‪‬‬ ‫‪Delegates and Events Management‬‬
‫‪‬‬ ‫‪Easy-to-use Generics‬‬
‫‪‬‬ ‫‪Indexers‬‬
‫‪‬‬ ‫‪Conditional Compilation‬‬
‫‪‬‬ ‫‪Simple Multithreading‬‬

‫إطار عمل ال ‪:.Net‬‬


‫أساسيا ثورًيا يساعدك عمى كتابة األنواع التالية من التطبيقات ‪:‬‬
‫ً‬ ‫نظاما‬
‫يعد إطار عمل ‪ً .Net‬‬
‫‪‬‬ ‫‪Windows applications‬‬
‫‪‬‬ ‫‪Web applications‬‬
‫‪‬‬ ‫‪Web services‬‬

‫تطبيقات إطار العمل ‪ .Net‬ىي تطبيقات متعددة المنصات‪ .‬تم تصميم إطار العمل بطريقة يمكن‬ ‫‪‬‬

‫استخدامو من أي من المغات التالية ‪: Visual Basic‬و ‪ C #‬و ‪ C ++‬و ‪ Jscript‬و ‪، COBOL‬‬


‫إلخ‪.‬‬
‫يمكن لجميع ىذه المغات الوصول إلى إطار العمل وكذلك التواصل مع بعضيا البعض‪.‬‬ ‫‪‬‬

‫يتكون إطار عمل ‪ .Net‬من مكتبة ضخمة من األكواد المستخدمة من قبل لغات العميل مثل‬ ‫‪‬‬

‫‪VB.Net.‬تستخدم ىذه المغات المنيجية الشيئية‪.‬‬

‫‪28‬‬
‫ مكونات لغة الفيجوال بيسك دوت نت‬: ‫الفصل الرابع‬

.Net -‫فيما يمي بعض مكونات إطار عمل‬

 Common Language Runtime (CLR)


 The .Net Framework Class Library
 Common Language Specification
 Common Type System
 Metadata and Assemblies
 Windows Forms
 ASP.Net and ASP.Net AJAX
 ADO.Net
 Windows Workflow Foundation (WF)
 Windows Presentation Foundation
 Windows Communication Foundation (WCF)
 LINQ

– ‫ بشكل أساسي من األجزاء التالية‬VB.Net ‫يتكون برنامج‬


 Namespace declaration
 A class or module
 One or more procedures
 Variables
 The Main procedure
 Statements & Expressions
 Comment
:‫مثال‬

:‫ناتج التنفيذ‬

29
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫شرح الكود السابق‪:‬‬

‫يتم استخدام السطر األول من برنامج ‪ Imports System‬لتضمين مساحة اسم النظام في البرنامج‬ ‫‪‬‬

‫يحتوي السطر التالي عمى إعالن ‪ VB.Net ،module1 ، Module‬لغة برمجو موجية ‪ ،‬لذا‬ ‫‪‬‬

‫يجب أن يحتوي كل برنامج عمى وحدات ‪ modules‬تحتوي عمى البيانات واإلجراءات التي‬
‫يستخدميا برنامجك‬
‫قد تحتوي الفئات أو الوحدات بشكل عام عمى أكثر من إجراء واحد ‪.‬تحتوي اإلجراءات عمى الكود‬ ‫‪‬‬

‫القابل لمتنفيذ ‪ ،‬أو بعبارة أخرى ‪ ،‬تحدد سموك الفصل و يمكن أن يكون اإلجراء ًأيا مما يمي–‬

‫‪‬‬ ‫‪Function‬‬
‫‪ Sub‬‬
‫‪ Operator‬‬
‫‪ Get‬‬
‫‪ Set‬‬
‫‪ AddHandler‬‬
‫‪ RemoveHandler‬‬
‫‪ RaiseEvent‬‬
‫السطر التالي )'ىذا البرنامج( سوف يتجاىمو المترجم وقد تم وضعو إلضافة تعميقات إضافية في‬ ‫‪‬‬

‫البرنامج‪.‬‬
‫يحدد السطر التالي اإلجراء الرئيسي ‪ ،‬وىو نقطة الدخول لجميع برامج ‪ .VB.Net‬يوضح اإلجراء‬ ‫‪‬‬

‫الرئيسي ما ستفعمو الوحدة أو الفئة عند تنفيذىا‪.‬‬


‫يحدد اإلجراء الرئيسي سموكو مع العبارة)"‪،Console.WriteLine ("Hello World‬‬ ‫‪‬‬

‫‪ WriteLine‬ىي طريقة ‪ method‬من فئة وحدة التحكم المحددة في مساحة اسم النظام‪ .‬يؤدي ىذا‬
‫البيان إلى ظيور الرسالة "‪ "!World ،Hello‬ليتم عرضيا عمى الشاشة‪.‬‬
‫السطر األخير من )( ‪ Console.ReadKey‬مخصص لمستخدمي ‪ VS.NET.‬سيؤدي ىذا إلى‬ ‫‪‬‬

‫منع الشاشة من العمل واإلغالق بسرعة عند تشغيل البرنامج من‪Visual Studio .NET.‬‬

‫‪30‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫بناء الجممة األساسي في لغة ‪"basic syntax " VB.ne‬‬

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

‫اي ان ‪ ، VB.Net‬يمكن تعريفو عمى أنو مجموعة من الكائنات التي تتواصل عبر استدعاء أساليب بعضيا‬
‫البعض‪ .‬وفيما يمي عرض لمعني متغيرات الفئة والعنصر واألساليب والمثال‪.‬‬

‫الكائن ‪ Objet‬الكائنات ليا حاالت وسموكيات ‪.‬مثال‪ :‬لكمب حاالت ‪ -‬المون ‪ ،‬االسم ‪ ،‬الساللة‬ ‫‪‬‬

‫وكذلك السموكيات ‪ -‬اليز ‪ ،‬النباح ‪ ،‬األكل ‪ ،‬إلخ‪ .‬الكائن ىو مثيل لفئة‬


‫الفئة ‪ :Class‬يمكن تعريف الفئة عمى أنيا نموذج ‪ /‬مخطط يصف السموكيات ‪ /‬الحاالت التي‬ ‫‪‬‬

‫تدعميا الكائنات من نوعيا‬


‫األساليب ‪ :Methods‬الطريقة ىي في األساس سموك ‪.‬يمكن لمفصل أن يحتوي عمى العديد من‬ ‫‪‬‬

‫الطرق ‪.‬إنو في الطرق التي تتم فييا كتابة المنطق ‪ ،‬ومعالجة البيانات وتنفيذ جميع اإلجراءات ‪.‬‬
‫متغيرات المثيل ‪ Instance Variables‬لكل كائن مجموعتو الفريدة من متغيرات الحالة ‪.‬يتم إنشاء‬ ‫‪‬‬

‫حالة الكائن بواسطة القيم المعينة لمتغيرات الحالة ىذه‪.‬‬

‫المعرفات ‪:Identifiers‬‬

‫المعرف ىو اسم يستخدم لتعريف فئة أو متغير أو وظيفة أو أي عنصر آخر محدد بواسطة المستخدم‪.‬‬
‫القواعد األساسية لتسمية الفئات في ‪ VB.Net‬ىي كما يمي‪-‬‬

‫يجب أن يبدأ االسم بحرف يمكن أن يتبعو تسمسل من األحرف أو األرقام )‪ (9 - 0‬أو شرطة سفمية‪.‬‬ ‫‪‬‬

‫قما‪.‬‬
‫ال يمكن أن يكون الحرف األول في المعرف ر ً‬

‫‪31‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫يجب أال يحتوي عمى أي مسافة مضمنة أو رمز مثل؟ ‪ .}{ ][ () * & ^ ٪# @ !+ -‬؛ ‪ / "" :‬و‬ ‫‪‬‬

‫\‪ .‬ومع ذلك ‪ ،‬يمكن استخدام شرطة سفمية‪(_).‬‬


‫ال ينبغي أن تكون كممة رئيسية محجوزة‪.‬‬ ‫‪‬‬

‫الكممات المحجوزة ‪:VB.Net Keywords‬‬

‫أنواع البيانات ‪:Data Types‬‬

‫‪32‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

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

‫‪33‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫‪34‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫مثال ‪:‬‬

‫ناتج التنفيذ‪:‬‬

‫‪35‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫دوال التحويل في المغه ‪:Conversion Functions‬‬

‫‪36‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫مثال ‪:‬‬

‫ناتج التنفيذ‪:‬‬

‫المتغيرات ‪:Variables‬‬

‫المتغير ليس سوى اسم ُيعطى لمنطقة التخزين التي يمكن لبرامجنا معالجتيا ‪.‬كل متغير في ‪ VB.Net‬لو نوع‬
‫معين ‪ ،‬والذي يحدد حجم وتصميم ذاكرة المتغير ؛ نطاق القيم التي يمكن تخزينيا في تمك الذاكرة ؛ ومجموعة‬
‫العمميات التي يمكن تطبيقيا عمى المتغير‪.‬‬

‫‪37‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫لقد ناقشنا بالفعل أنواع البيانات المختمفة ‪.‬يمكن تصنيف أنواع القيم األساسية المتوفرة في ‪ VB.Net‬عمى أنيا‬

‫االعالن عن المتغيرات ‪:‬‬

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

‫الصيغة العامة لالعالن عن المتغيرات‪:‬‬

‫حيث‪:‬‬
‫‪ :Attribute list‬قائمة السمات ىي قائمة السمات التي تنطبق عمى المتغير‪) .‬اختياري‪(.‬‬ ‫‪‬‬

‫‪ : Access modifier‬يحدد معدل الوصول مستويات الوصول لممتغيرات ‪ ،‬ولو قيم مثل ‪-‬‬ ‫‪‬‬

‫‪) .Public, Protected, Friend, Protected Friend and Private‬اختياري‪(.‬‬


‫يعمن ‪ Shared‬عن متغير مشترك ‪ ،‬والذي ال يرتبط بأي مثيل محدد لفئة أو بنية ‪ ،‬بل إنو متاح‬ ‫‪‬‬

‫لجميع مثيالت الفئة أو الييكل‪) .‬اختياري‪(.‬‬


‫عنصر متطابقًا ‪ ،‬أو مجموعة من العناصر‬
‫ًا‬ ‫تشير ‪ Shadows‬إلى أن المتغير يعيد إعالن ويخفي‬ ‫‪‬‬

‫المحممة بشكل زائد ‪ ،‬في فئة أساسية‪) .‬اختياري(‪.‬‬

‫‪38‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫يشير ‪ Static‬إلى أن المتغير سيحتفظ بقيمتو ‪ ،‬حتى عند إنياء اإلجراء الذي تم اإلعالن عنو فيو‪).‬‬ ‫‪‬‬

‫اختياري(‪.‬‬
‫‪ ReadOnly‬تعني أن المتغير يمكن قراءتو ‪ ،‬لكن ال يمكن كتابتو‪ .‬اختياري‪.‬‬ ‫‪‬‬

‫يحدد ‪ WithEvents‬أن المتغير ُيستخدم لالستجابة لألحداث التي أثيرت بواسطة المثيل المخصص‬ ‫‪‬‬

‫لممتغير‪).‬اختياري(‪.‬‬
‫‪ :Variable list‬توفر قائمة المتغيرات قائمة المتغيرات المعمنة‪.‬‬ ‫‪‬‬

‫يحتوي كل متغير في قائمة المتغيرات عمى النحو واألجزاء التالية–‬

‫‪ :Variable name‬ىو اسم المتغير‬

‫قائمة الحدود ‪ -‬اختيارية‪ :‬يوفر قائمة بحدود كل ُبعد من أبعاد متغير المصفوفة‬

‫جديد – اختياري‪ :‬يقوم بإنشاء مثيل جديد لمفئة عند تشغيل عبارة‪Dim‬‬

‫نوع البيانات )مطموب( في حالة تشغيل الخيار ‪ Strict.‬تحدد نوع بيانات المتغير‬

‫‪ :Intializer‬تييئة أو تعيين قيمة )اختياري( إذا لم يتم تحديد جديد ‪.‬التعبير الذي يتم تقييمو وتعيينو إلى‬
‫المتغير عند إنشائو‪.‬‬

‫تعيين قيمة لممتغير‪:‬‬

‫‪39‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫تتم تييئة المتغيرات )يتم تعيين قيمة ليا( بعالمة يساوي متبوعة بتعبير ثابت ‪.‬الشكل العام لمتييئة ىو–‬

‫مثال‪:‬‬

‫مثال ‪:2‬‬

‫ناتج التنفيذ‪:‬‬

‫توفر فئة وحدة التحكم في مساحة اسم النظام وظيفة ‪ ReadLine‬لقبول المدخالت من المستخدم وتخزينيا‬
‫في متغير ‪.‬عمي سبيل المثال‪،‬‬

‫‪40‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫ناتج التنفيذ‪ :‬باعتبار أن المستخدم أدخل عبارة ‪hello world‬‬

‫الثوابت ‪:Constants‬‬

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

‫اإلعالن عن الثوابت ‪:‬‬

‫في ‪ ، VB.Net‬يتم التصريح عن الثوابت باستخدام تعميمة ‪ Const.‬يتم استخدام عبارة ‪ Const‬في الوحدة‬
‫النمطية ‪ ،‬أو الفئة ‪ ،‬أو الييكل ‪ ،‬أو اإلجراء ‪ ،‬أ لالستخدام بدالً من القيم الحرفية‪.‬‬

‫الصيغه العامة‪:‬‬

‫‪41‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫‪ : Attributes list‬تحدد قائمة السمات المطبقة عمى الثوابت ؛ يمكنك تقديم سمات متعددة مفصولة‬ ‫‪‬‬

‫بفواصل‪) .‬اختياري‪(.‬‬
‫‪: accessmodifier‬يحدد الرمز الذي يمكنو الوصول إلى ىذه الثوابت‪Public, Protected, .‬‬ ‫‪‬‬
‫‪Friend, Protected Friend, or Private.‬‬
‫‪ :Shadows‬ىذا يجعل الثابت يخفي عنصر برمجة لو اسم متطابق في فئة أساسية‪) .‬اختياري(‪.‬‬ ‫‪‬‬

‫‪ - :Constantlist‬تعطي قائمة بأسماء الثوابت المعمنة‪) .‬مطموب(‪.‬‬ ‫‪‬‬

‫حيث يحتوي كل اسم ثابت عمى النحو واألجزاء التالية –‬ ‫‪‬‬

‫مثال‪:‬‬

‫ناتج التنفيذ‪:‬‬

‫‪42‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫العبارات ‪:Satments‬‬

‫العبارات ىو تعميمات كاممة في برامج ‪ Visual Basic.‬قد تحتوي عمى كممات أساسية وعوامل ومتغيرات‬
‫وقيم حرفية وثوابت وتعبيرات‪.‬‬

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

‫‪ ‬بيانات اإلقرار ‪ :Declaration statements‬ىذه ىي العبارات التي تقوم فييا بتسمية متغير أو‬
‫أيضا تحديد نوع البيانات‬
‫ثابت أو إجراء ‪ ،‬ويمكن ً‬
‫‪ ‬البيانات القابمة لمتنفيذ ‪ :Executable statements‬ىذه ىي البيانات التي تبدأ اإلجراءات ‪.‬يمكن‬
‫ليذه العبارات استدعاء طريقة أو وظيفة أو حمقة أو فرع من خالل كتل من التعميمات البرمجية أو‬
‫‪an Assignment‬‬ ‫تعيين قيم أو تعبير لمتغير أو ثابت ‪.‬في الحالة األخيرة ‪ ،‬يطمق عميو‬
‫‪.statement‬‬

‫اإلعالن عن العبارات ‪:‬‬

‫‪ ‬تُستخدم عبا ارت التصريح لتسمية وتعريف اإلجراءات والمتغيرات والخصائص والمصفوفات والثوابت ‪.‬‬
‫أيضا تحديد نوع البيانات ومستوى الوصول والنطاق‬
‫عندما تقوم بتعريف عنصر برمجة ‪ ،‬يمكنك ً‬
‫‪ ‬تتضمن عناصر البرمجة التي قد تعمنيا ‪variables, constants, enumerations, classes,‬‬
‫‪structures, modules, interfaces, procedures, procedure parameters, function‬‬
‫‪returns, external procedure references, operators, properties, events, and‬‬
‫‪delegates‬‬

‫‪43‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫‪44‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫‪45‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫‪46‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫مثال‪:‬‬

‫ناتج التنفيذ‪:‬‬

‫المعامالت ‪:Operators‬‬

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

‫‪‬‬ ‫معامالت حسابية ‪Arithmetic Operators‬‬


‫‪‬‬ ‫معامالت مقارنة ‪Comparison Operators‬‬
‫‪‬‬ ‫معامالت منطقية ‪Logical/Bitwise Operators‬‬
‫‪‬‬ ‫معامالت اسناد القيمة ‪Assignment Operators‬‬

‫‪47‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫المعامالت الحسابية ‪: Arithmetic Operators‬‬

‫يوضح الجدول التالي جميع العمميات الحسابية التي يدعميا ‪ VB.Net.‬افترض أن المتغير ‪ A‬يحمل ‪2‬‬
‫والمتغير ‪ B‬يحمل ‪ ، 7‬ثم–‬

‫معامالت المقارنة ‪:Comparison Operators‬‬

‫يوضح الجدول التالي جميع عوامل المقارنة التي يدعميا ‪ VB.Net.‬افترض أن المتغير ‪ A‬يحمل ‪00‬‬
‫والمتغير ‪ B‬يحمل ‪ ، 20‬إذن–‬

‫‪48‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫المعامالت المنطقيه ‪Logical/Bitwise Operators‬‬

‫‪49‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫معامالت اسناد القيمة ‪Assignment Operators‬‬

‫‪50‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫السالسل الحرفية ‪:Strings‬‬

‫شيوعا‬
‫ً‬ ‫في ‪ ، VB.Net‬يمكنك استخدام سالسل كمصفوفة من األحرف ‪ ،‬ومع ذلك ‪ ،‬فإن الممارسة األكثر‬
‫ىي استخدام الكممة األساسية ‪ String‬لإلعالن عن متغير سمسمة ‪.‬الكممة األساسية لمسمسمة ىي اسم مستعار‬
‫لفئة‪System.String.‬‬

‫إنشاء كائن سمسمة‬

‫يمكنك إنشاء كائن سمسمة باستخدام إحدى الطرق التالية‬

‫من خالل تخصيص سمسمة حرفية لمتغير سمسمة باستخدام ُمنشئ فئة ‪String‬‬ ‫‪‬‬

‫باستخدام عامل ربط السمسمة )‪(+‬‬ ‫‪‬‬

‫عن طريق استرداد خاصية أو استدعاء طريقة تقوم بإرجاع سمسمة‬ ‫‪‬‬

‫من خالل استدعاء طريقة تنسيق لتحويل قيمة أو كائن إلى تمثيل سمسمة‬ ‫‪‬‬

‫مثال ‪:‬‬

‫‪51‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫خصائص السالسل الحرفية‪:‬‬

‫تحتوي فئة ‪ String‬عمى العديد من الطرق ‪ Methods‬التي تساعدك في العمل مع كائنات السمسمة ‪.‬يقدم‬
‫شيوعا‪-‬‬
‫ً‬ ‫بعضا من أكثر الطرق‬
‫الجدول التالي ً‬

‫‪52‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫‪53‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫‪54‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫مثال يقوم بمقارنة سمسمتين حرفيتين‪:‬‬

‫‪55‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫البحث عن جزء من سمسمه حرفيه‪:‬‬

‫‪56‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫الحصول عمي سمسمه فرعية‬

‫ربط سمسمتين حرفيتين‬

‫‪57‬‬
‫الفصل الرابع ‪ :‬مكونات لغة الفيجوال بيسك دوت نت‬

‫‪58‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫الفصل اخلامس‬
‫اجلمل الشرطية واحللقات التكرارية‬

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

‫في البرمجة تسمي عممية التحقق من عبارة معينة شرطاً ‪Condition‬أو بنية شرطية ‪.Flow Conrol‬‬
‫توجد العديد من الجمل الشرطية داخل برنامج ‪ ،VB.net‬وسوف نستعرض تمك الجمل كما يمي‪،‬‬

‫أوالً‪ :‬الجمل الشرطية ‪:IF Conditions‬‬


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

‫‪59‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫األنواع المختمفه لمجمل الشرطيه ‪:‬‬


‫‪‬‬ ‫‪If ... Then statement‬‬
‫‪‬‬ ‫‪If...Then...Else statement‬‬
‫‪‬‬ ‫‪nested If statements‬‬
‫‪‬‬ ‫‪Select Case statement‬‬
‫‪‬‬ ‫‪nested Select Case statements‬‬

‫‪If ... Then statement‬‬

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

‫بناء الجممة‪:‬‬

‫حيث ‪ ،‬الشرط ىو شرط منطقي أو عالئقي و العبارة (العبارات) ىي عبارة بسيطة أو مركبة ‪.‬مثال عمى عبارة‬
‫‪If-Then‬ىي–‬

‫‪60‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

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

‫مثال‪:‬مقارنة بين قيمة رقمين‬

‫‪61‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫‪:If...Then...Else statement‬‬
‫الغرض منيا‪ :‬يمكن أن يتبع عبارة ‪ If‬جممة ‪ Else‬اختيارية ‪ ،‬والتي يتم تنفيذىا عندما يكون التعبير المنطقي‬
‫خطأ ‪.‬‬
‫إذا تم تقييم التعبير المنطقي إلى صحيح ‪ ،‬فسيتم تنفيذ كتمة التعميمات البرمجية إذا ‪ ،‬واال فسيتم تنفيذ كتمة‬
‫التعميمات البرمجية‪.‬‬

‫بناء الجممة‪:‬‬

‫‪62‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫مثال‪:‬‬

‫‪63‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫‪The If...Else If...Else Statement‬‬

‫جدا الختبار شروط‬


‫الغرض منيا‪ :‬يمكن أن يتبع جممة ‪ If‬جممة اختيارية ‪ ، Else if ... Else‬وىي مفيدة ً‬
‫متنوعة باستخدام جممة ‪ If ... Else If‬واحدة‪.‬‬
‫عند استخدام عبارات ‪ ، If ... Else If ... Else‬ىناك بعض النقاط التي يجب وضعيا في االعتبار‪.‬‬
‫‪ ‬يمكن أن يكون لـ ‪ If‬صفر أو واحد آخر ويجب أن يأتي بعد ‪Else If's‬‬
‫‪ ‬يمكن أن يكون لـ ‪ If‬من صفر إلى العديد من ‪ Else If‬ويجب أن تأتي قبل‪Else‬‬
‫‪ ‬مرة واحدة إذا تحققت جممة ‪ ، Else‬فمن يتم اختبار أي من عالمات ‪ Else‬أو ‪ Else‬المتبقية‪.‬‬

‫بناء الجممة‪:‬‬

‫‪64‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫الحمقات المتداخمه ‪Nested If statements‬‬

‫‪65‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫يمكنك إجراء تداخل لـ ‪ ElseIf ... Else‬بنفس الطريقة التي قمت بتضمين عبارة ‪ If‬المتداخمة‪.‬‬

‫مثال‪:‬‬

‫جممة ‪:Select Case statement‬‬

‫‪66‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫الغرض منيا‪:‬‬
‫تسمح عبارة ‪ Select Case‬لممتغير باختباره من أجل المساواة مقابل قائمة من القيم ‪.‬تسمى كل قيمة حالة ‪،‬‬
‫ويتم التحقق من المتغير الجاري تشغيمو لكل حالة محددة‪.‬‬

‫بناء الجممة‪:‬‬

‫‪ ‬التعبير ‪ -‬ىو تعبير يجب تقييمو ألي نوع من أنواع البيانات األولية في ‪ ، VB.Net‬عمى سبيل‬
‫المثال ‪،Long ،Integer ،Decimal ،Double ،Date ،Char ،Byte ،Boolean ،‬‬
‫‪ UShort.‬قائمة‬ ‫‪ULong ،UInteger ،String ،Single ،Short ،SByte ،Object‬و‬
‫‪ ‬التعبير ‪ -‬قائمة عبارات التعبير التي تمثل قيم مطابقة لمتعبير‪ .‬عبارات التعبير المتعددة مفصولة‬
‫بفاصالت‪.‬‬
‫‪ ‬الجمل ‪ -‬العبارات التالية لمحالة التي يتم تشغيميا إذا كان تعبير التحديد يطابق أي بند في قائمة‬
‫التعبير‪.‬‬
‫‪ - statements Else ‬العبارات التالية لمحالة األخرى التي تعمل إذا كان تعبير التحديد ال يتطابق‬
‫مع أي بند في قائمة التعبير ألي من عبارات الحالة‪.‬‬

‫‪67‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫‪68‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫جممة ‪Nested Select Case statements‬‬

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

‫مثال‪:‬‬

‫‪69‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫ثانياً‪ :‬الحمقات التكرارية ‪Loops‬‬


‫قد يكون ىناك موقف عندما تحتاج إلى تنفيذ كتمة من التعميمات البرمجية عدة مرات ‪.‬بشكل عام ‪ ،‬يتم تنفيذ‬
‫التعميمات بالتسمسل‪ :‬يتم تنفيذ العبارة األولى في الوظيفة أوالً ‪ ،‬متبوعة بالثانية ‪ ،‬وىكذا ‪.‬توفر لغات البرمجة‬
‫تعقيدا ‪.‬تسمح لنا تعميمة ‪ loop‬بتنفيذ عبارة أو مجموعة من‬
‫ً‬ ‫ىياكل تحكم متنوعة تسمح بمسارات تنفيذ أكثر‬
‫العبارات عدة مرات ‪ ،‬وفيما يمي الشكل العام لبيان الحمقة في معظم لغات البرمجة–‬

‫‪‬‬ ‫‪Do Loop‬‬


‫‪‬‬ ‫‪For...Next‬‬
‫‪‬‬ ‫‪For...Next‬‬
‫‪‬‬ ‫‪While... End While‬‬
‫‪‬‬ ‫‪While... End While‬‬
‫‪‬‬ ‫‪Nested loops‬‬

‫الحمقة التكرارية ‪:DO‬‬

‫صحيحا أو حتى يصبح الشرط‬


‫ً‬ ‫الغرض منيا‪ :‬يكرر مجموعة العبارات المرفقة عندما يكون الشرط المنطقي‬
‫صحيحا ‪.‬يمكن إنياؤه في أي وقت ببيان‪Exit Do.‬‬
‫ً‬

‫‪70‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫بناء الجممة‪:‬‬

‫‪71‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫‪72‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫الحمقة التكرارية ‪:For …. Next‬‬

‫محددا من المرات ويحسب فيرس الحمقة عدد تك اررات الحمقة‬


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

‫بناء الجممة‪:‬‬

‫‪73‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫‪74‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫الحمقة التكرارية ‪:Each…. Next‬‬

‫الغرض منيا‪ :‬يكرر مجموعة من العبارات لكل عنصر في المجموعة ‪.‬تُستخدم ىذه الحمقة لموصول إلى جميع‬
‫العناصر ومعالجتيا في مصفوفة أو مجموعة ‪VB.Net.‬‬
‫بناء الجممة‪:‬‬

‫مثال‪:‬‬

‫‪75‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫الحمقة التكرارية ‪While….. End while‬‬

‫صحيحا‪ ،.‬ىنا ‪ ،‬النقطة األساسية في حمقة‬


‫ً‬ ‫معينا‬
‫الغرض منيا‪ :‬ينفذ سمسمة من العبارات طالما أن شرطًا ً‬
‫أبدا ‪.‬عندما يتم اختبار الشرط والنتيجة خاطئة ‪ ،‬سيتم تخطي جسم الحمقة‬
‫‪while‬ىي أن الحمقة قد ال تعمل ً‬
‫وسيتم تنفيذ الجممة األولى بعد حمقة ‪while.‬‬

‫بناء الجممة‪:‬‬

‫‪76‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫مثال‪:‬‬

‫الحمقة التكرارية ‪:With ….. End with‬‬

‫الغرض منيا ‪ :‬ينفذ سمسمة من العبارات التي تشير بشكل متكرر إلى كائن أو بنية واحدة‪.‬‬

‫بناء الجممة‪:‬‬

‫‪77‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫الحمقات التكرارية المتداخمة‪:‬‬

‫بناء جممة ‪Nested For… next‬‬

‫‪78‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫بناء جممة ‪Nested While… end‬‬

‫بناء جممة ‪Nested Do… Loop‬‬

‫مثال‪ :‬لطباعة االعداد االولية من ‪ 2‬الي ‪.011‬‬

‫‪79‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫‪ ‬عبارات التحكم في الحمقات التكرارية ‪Loop Control Statements‬‬

‫تغير عبارات التحكم في الحمقة التنفيذ من تسمسمو الطبيعي ‪.‬عندما يترك التنفيذ نطاقًا ‪ ،‬يتم إتالف جميع‬
‫الكائنات التمقائية التي تم إنشاؤىا في ىذا النطاق‪.‬‬

‫‪ Exit statement‬‬


‫‪ Continue statement‬‬
‫‪ GoTo statement‬‬

‫العبارة ‪:Exit‬‬

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

‫بناء الجممة‪:‬‬

‫‪80‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫مثال‬

‫‪81‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫العبارة ‪:Continue‬‬

‫الغرض منيا‪ :‬يتسبب بيان ‪ Continue‬في أن تتخطى الحمقة الجزء المتبقي من جسدىا وتعيد اختبار حالتيا‬
‫عمى الفور قبل التكرار ‪.‬إنو يعمل إلى حد ما مثل بيان الخروج ‪.‬بدالً من فرض اإلنياء ‪ ،‬فإنو يفرض التكرار‬
‫التالي لمحمقة عمى الحدوث ‪ ،‬متخطياً أي رمز بينيما ‪.‬بالنسبة لمحمقة ‪ ، For ... Next‬تتسبب عبارة‬
‫‪Continue‬في تنفيذ االختبار الشرطي وزيادة أجزاء الحمقة ‪.‬من أجل حمقات ‪، while and Do ... while‬‬
‫تتسبب عبارة المتابعة في تمرير عنصر التحكم في البرنامج إلى االختبارات الشرطية‪.‬‬

‫بناء الجممة‪:‬‬

‫‪82‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫جممة ‪:Go To‬‬

‫الغرض منيا‪ :‬تنقل عبارة ‪ GoTo‬التحكم دون قيد أو شرط إلى سطر محدد في إجراء‪.‬‬

‫بناء الجممة‪:‬‬

‫‪83‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫‪84‬‬
‫الفصل الخامس‪ :‬الجمل الشرطية والحلقات التكرارية‬

‫‪85‬‬
‫الفصل السادس‪ :‬المصفوفات ‪Arrays‬‬

‫الفصل السادس‬
‫المصفوفات ‪Arrays‬‬

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

‫انشاء المصفوفة‪:‬‬

‫لإلعالن عن مصفوفة في ‪ ، VB.Net‬يمكنك استخدام العبارة ‪ Dim.‬عمي سبيل المثال‪،‬‬

‫أيضا تهيئة عناصر المصفوفة أثناء التصريح عن المصفوفة ‪.‬عمي سبيل المثال‪،‬‬
‫يمكنك ً‬

‫يمكن تخزين العناصر في المصفوفة والوصول إليها باستخدام فهرس المصفوفة ‪.‬يوضح البرنامج التالي‬
‫هذا–‬

‫‪86‬‬
‫الفصل السادس‪ :‬المصفوفات ‪Arrays‬‬

‫المصفوفات الديناميكية ‪Dynamic Arrays‬‬

‫المصفوفات الديناميكية عبارة عن مصفوفات يمكن تحديد أبعادها واعادة تحديد أبعادها حسب حاجة‬
‫البرنامج ‪.‬يمكنك تعريف مصفوفة ديناميكية باستخدام جممة ‪ReDim.‬‬

‫بناء الجممة – ‪ReDim‬‬

‫‪87‬‬
‫الفصل السادس‪ :‬المصفوفات ‪Arrays‬‬

‫حيث‪:‬‬

‫‪ :Preserve ‬تساعد الكممة األساسية ‪ Preserve‬في الحفاظ عمى البيانات في مصفوفة موجودة عند‬
‫تغيير حجمها‬
‫‪. Arrayname‬هو اسم المصفوفة المراد إعادة أبعادها‬ ‫‪‬‬
‫‪ :Suscripts ‬تحدد البعد الجديد‪.‬‬

‫مثال النشاء مصفوفة‪:‬‬

‫‪88‬‬
‫الفصل السادس‪ :‬المصفوفات ‪Arrays‬‬

‫المصفوفات متعددة األبعاد ‪Multi-Dimensional Arrays‬‬

‫أيضا المصفوفات المستطيمة‬


‫يسمح ‪ VB.Net‬بالصفائف متعددة األبعاد ‪.‬تسمى المصفوفات متعددة األبعاد ً‬

‫يمكنك إعالن مصفوفة ثنائية األبعاد من السالسل عمى أنها–‬

‫أو ‪ ،‬مصفوفة ثالثية األبعاد لمتغيرات عدد صحيح‪-‬‬

‫مثال ‪ :‬لمصفوفة ثنائية االبعاد‪:‬‬

‫‪89‬‬
‫الفصل السادس‪ :‬المصفوفات ‪Arrays‬‬

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

‫يمكن ترتيب عناصر المصفوفة حسب الترتيب االبجدي كما يمكن ترتيب المصفوفات الرقمية من االصغر‬
‫الي االكبر وذلك يتم من خالاللدالة ‪ Sort‬التابعة لمفئة ‪Array‬‬

‫الدالة ‪ Add Range‬تسمح باضافة جميع عناصر المصفوفة الي االداة ‪ Listbox‬بدال من استخدام الحمقات‬
‫التك اررية أو اضافة كل عنصر عمي حده من خالل الدالة ‪Add‬‬

‫‪90‬‬
‫الفصل السادس‪ :‬المصفوفات ‪Arrays‬‬

‫مثال‪:‬‬

‫‪91‬‬
‫الفصل السادس‪ :‬المصفوفات ‪Arrays‬‬

‫قمب عناصر المصفوفة‪:‬‬

‫يمكن ذلك من خالل الدالة ‪ Reverse‬ليصبح آخر عنصر هو أول عنصر وهكذا‪.‬‬

‫‪92‬‬
‫الفصل السادس‪ :‬المصفوفات ‪Arrays‬‬

‫مثال عن المصفوفة متعددة االبعاد‪:‬‬

‫‪93‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫الفصل السابع‬
‫عناصر التحكم ‪Basic Controls‬‬

‫مقدمو‬

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

‫يعا وسيالً ‪ ،‬مثل دعم‬


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

‫‪94‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫ثم‬
‫الضغط عمي زر ‪create‬‬

‫‪95‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫الكائن ىو نوع من عناصر واجية المستخدم التي تقوم بإنشائيا في نموذج ‪ Visual Basic‬باستخدام عنصر‬
‫تحكم مربع األدوات‪ .‬في الواقع ‪ ،‬في ‪ ، Visual Basic‬النموذج نفسو ىو كائن‪ .‬يتكون كل عنصر تحكم‬
‫‪Visual Basic‬من ثالثة عناصر ميمة‪-‬‬

‫‪ ‬الخصائص ‪ Properties‬التي تصف الكائن‬


‫شيئا‬
‫كائنا يفعل ً‬
‫‪ ‬األساليب ‪ Methods‬تجعل ً‬
‫‪ ‬األحداث ‪ Events‬ىي ما يحدث عندما يقوم الجسم بشيء ما‪.‬‬

‫خصائص التحكم ‪Control Properties‬‬

‫يمكن نقل جميع كائنات ‪ Visual Basic‬أو تغيير حجميا أو تخصيصيا عن طريق تعيين خصائصيا‪.‬‬
‫الخاصية ىي قيمة أو خاصية يحتفظ بيا كائن ‪ ، Visual Basic‬مثل التسمية التوضيحية أو المون األمامي‪.‬‬

‫‪96‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫يمكن تعيين الخصائص في وقت التصميم باستخدام نافذة الخصائص أو في وقت التشغيل باستخدام عبارات‬
‫في كود البرنامج‪.‬‬

‫حيث‪:‬‬

‫‪ ‬الكائن ىو اسم الكائن الذي تقوم بتخصيصو‪.‬‬


‫‪ ‬الخاصية ىي الخاصية التي تريد تغييرىا‪.‬‬
‫‪ ‬القيمة ىي إعداد الخاصية الجديد‪.‬‬

‫أحداث التحكم ‪Control Events‬‬

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

‫مثال‪ :‬حدث تحميل النموذج‬

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

‫‪97‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫عناصر التحكم االساسية ‪Basic Controls‬‬

‫يوفر ‪ VB.Net‬مجموعة كبيرة ومتنوعة من عناصر التحكم التي تساعدك عمى إنشاء واجية مستخدم ثرية ‪.‬‬
‫يتم تحديد وظائف كل ىذه الضوابط في فئات التحكم ذات الصمة ‪.‬يتم تحديد فئات التحكم في مساحة االسم‬
‫‪System.Windows.Forms.‬‬

‫‪98‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫مثال‪ :‬التعامل مع عنصر التحكم ‪:Button‬‬

‫‪ ‬ادراج العنصر‬
‫‪ ‬ضبط الخصائص‪properities‬‬
‫‪ ‬ضبط ال‪methods‬‬
‫‪ ‬ضبط االحداث ‪events‬‬
‫‪ ‬كتابة الكود‬

‫‪99‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫‪100‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫‪101‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫كتابة كود خاص باظيار رسالة عند الضغط عمي الزر‬

‫‪102‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫النماذج ‪:Forms‬‬

‫لنبدأ بإنشاء تطبيق ‪ Window Forms‬باتباع الخطوات التالية في ‪Microsoft Visual Studio -‬‬
‫أخير ‪ ،‬حدد موافق ‪ ،‬ينشئ ‪Microsoft‬‬
‫ممف ← مشروع جديد ← تطبيقات نماذج ‪ً Windows‬ا‬
‫‪Visual Studio‬مشروعك ويعرض نموذج النافذة التالية باسم‪Form1.‬‬

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

‫‪103‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

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

‫‪104‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫‪105‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫‪106‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫عنصر التحكم مربع نص ‪:Text box‬‬

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

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

‫‪ ‬قم بسحب وافالت ثالثة عناصر تحكم تسمية وثالثة عناصر تحكم مربع نص في النموذج‬
‫‪ ‬قم بتغيير النصوص الموجودة عمى الممصقات إلى‪ :‬االسم والمنظمة والتعميقات ‪ ،‬عمى التوالي‬
‫‪ ‬قم بتغيير أسماء مربعات النص إلى ‪ txtName‬و ‪ txtOrg‬و ‪ ، txtComment‬عمى التوالي ‪.‬‬
‫عين اسمو عمى ‪ btnMessage‬وخاصيتو النصية عمى‬
‫‪ ‬قم بسحب واسقاط زر التحكم في النموذج ‪ّ .‬‬
‫"‪"send message‬‬
‫‪ ‬انقر فوق الزر إلضافة حدث ‪ Click‬في نافذة التعميمات البرمجية وأضف الكود التالي‪.‬‬

‫‪107‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫عنصر التحكم ‪:Label‬‬

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

‫‪108‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

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

‫اتخذ الخطوات التالية‬

‫‪ ‬قم بسحب وافالت عنصر تحكم ‪ label‬في النموذج‬


‫‪ ‬قم بتعيين الخاصية ‪ Text‬لتوفير التسمية التوضيحية ‪"This is a Label Control".‬‬
‫‪ ‬قم بتعيين خاصية الخط من نافذة الخصائص ‪.‬‬
‫‪ ‬انقر فوق التسمية إلضافة حدث ‪ Click‬في نافذة التعميمات البرمجية واضافة األكواد التالية‪.‬‬

‫‪109‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫‪110‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫العنصر قائمة ‪:List box‬‬

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

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

‫‪111‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫التحكم ىذا ‪.‬انقر فوق الزر عالمات الحذف (‪ )...‬بجوار خاصية العناصر ‪.‬يؤدي ىذا إلى فتح مربع الحوار‬
‫‪ ،String Collection Editor‬حيث يمكنك إدخال القيم واحدة في كل سطر‪.‬‬

‫في المثال التالي ‪ ،‬دعنا نضيف مربع قائمة في وقت التصميم ونضيف عناصر عميو في وقت التشغيل ‪.‬اتخذ‬
‫الخطوات التالية –‬

‫‪ ‬قم بسحب وافالت تسميتين ‪ ،‬زر وعنصر تحكم ‪ ListBox‬في النموذج ‪.‬‬
‫عين خاصية ‪ Text‬في التصنيف األول لتوفير التسمية التوضيحية " ‪choose your favorite‬‬ ‫‪ّ ‬‬
‫‪destination for higher studies‬‬
‫‪ ‬قم بتعيين خاصية ‪ Text‬لمتسمية الثانية لتوفير التسمية التوضيحية ‪ Destination‬سيتغير النص‬
‫عنصر في القائمة‬
‫ًا‬ ‫الموجود عمى ىذه التسمية في وقت التشغيل عندما يحدد المستخدم‬
‫‪ ‬انقر فوق مربع القائمة وعناصر تحكم الزر إلضافة الرموز التالية في محرر كتابة الكود‬

‫‪.‬‬

‫‪112‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫عنصر التحكم ‪:Combo box‬‬

‫ُيستخدم عنصر تحكم ‪ ComboBox‬لعرض قائمة منسدلة بالعناصر المتنوعة ‪.‬إنو مزيج من مربع نص‬
‫عنصر منيا ‪.‬لنقم بإنشاء مربع تحرير وسرد عن‬
‫ًا‬ ‫عنصر وقائمة منسدلة يختار المستخدم‬
‫ًا‬ ‫يدخل فيو المستخدم‬
‫طريق سحب عنصر تحكم ‪ ComboBox‬من ‪ Toolbox‬وافالتو في النموذج‪.‬‬

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

‫‪113‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫في ىذا المثال ‪ ،‬دعنا نمأل مربع تحرير وسرد بعناصر مختمفة ‪ ،‬ونحصل عمى العناصر المحددة في مربع‬
‫التحرير والسرد ونعرضيا في مربع قائمة وفرز العناصر‬

‫قم بسحب وافالت مربع تحرير وسرد لتخزين العناصر ‪ ،‬ومربع قائمة لعرض العناصر المحددة ‪ ،‬وعناصر‬
‫تحكم بأربعة أزرار إلضافتيا إلى مربع القائمة بالعناصر المحددة ‪ ،‬ولملء مربع التحرير والسرد ‪ ، Fill‬ولفرز‬
‫العناصر‪ Sort‬ومسح قائمة مربع التحرير والسرد‪ ، Clear‬عمى التوالى ‪.‬أضف عنصر تحكم تسمية يعرض‬
‫العنصر المحدد‪.‬‬

‫‪114‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫‪115‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫عناصر التحكم ‪Radio buttons‬‬

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

‫لنقم بإنشاء ثالثة أزرار اختيار عن طريق سحب عناصر تحكم ‪ RadioButton‬من ‪ Toolbox‬واسقاطيا‬
‫في النموذج‪.‬‬

‫‪116‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫مثال‪:‬‬

‫في المثال التالي ‪ ،‬دعنا ننشئ مجموعتين من أزرار االختيار ونستخدم أحداث ‪ CheckedChanged‬لتغيير‬
‫خاصية ‪ BackColor‬و ‪ ForeColor‬لمنموذج‪.‬‬

‫‪117‬‬
Basic Controls ‫ عناصر التحكم‬:‫الفصل السابع‬

Public Class Form1


Private Sub Form1_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
' Set the caption bar text of the form.
Me.Text = "tutorialspont.com"
End Sub

Private Sub RadioButton1_CheckedChanged(sender As Object, _


e As EventArgs) Handles RadioButton1.CheckedChanged
Me.BackColor = Color.Red
End Sub

Private Sub RadioButton2_CheckedChanged(sender As Object, _


e As EventArgs) Handles RadioButton2.CheckedChanged
Me.BackColor = Color.Green
End Sub

Private Sub RadioButton3_CheckedChanged(sender As Object, _


e As EventArgs) Handles RadioButton3.CheckedChanged
Me.BackColor = Color.Blue
End Sub

Private Sub RadioButton4_CheckedChanged(sender As Object, _


e As EventArgs) Handles RadioButton4.CheckedChanged
Me.ForeColor = Color.Black
End Sub

Private Sub RadioButton5_CheckedChanged(sender As Object, _


e As EventArgs) Handles RadioButton5.CheckedChanged
Me.ForeColor = Color.White
End Sub

Private Sub RadioButton6_CheckedChanged(sender As Object, _


e As EventArgs) Handles RadioButton6.CheckedChanged
Me.ForeColor = Color.Red
End Sub
End Class

118
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫عنصر التحكم ‪:Check box‬‬

‫يسمح عنصر التحكم ‪ CheckBox‬لممستخدم بتعيين خيارات النوع صح ‪ /‬خطأ أو نعم ‪ /‬ال ‪.‬يمكن لممستخدم‬
‫تحديدىا أو إلغاء تحديدىا ‪.‬عند تحديد خانة اختيار ‪ ،‬فإنيا تحتوي عمى القيمة ‪ ، True‬وعندما يتم مسحيا ‪،‬‬
‫فإنيا تحمل القيمة ‪False.‬‬

‫لنقم بإنشاء مربعي اختيار عن طريق سحب عناصر تحكم ‪ CheckBox‬من ‪ Toolbox‬واسقاطيا في‬
‫النموذج‪.‬‬

‫في ىذا المثال ‪ ،‬دعنا نضيف أربع خانات اختيار في مربع المجموعة ‪ .‬ستسمح خانات االختيار لممستخدمين‬
‫باختيار المصدر الذي تعرفوا منو عمى المنظمة ‪.‬إذا اختار المستخدم مربع االختيار الذي يحتوي عمى نص‬
‫فسيطمب من المستخدم التحديد ويتم توفير مربع نص إلعطاء اإلدخال ‪.‬عندما ينقر المستخدم‬
‫"‪ُ ، "Others‬‬
‫فوق الزر "‪ ، "Submit‬يتمقى ‪ /‬تتمقى الرسالة المناسبة ‪.‬النموذج في عرض التصميم–‬

‫‪119‬‬
Basic Controls ‫ عناصر التحكم‬:‫الفصل السابع‬

Public Class Form1


Private Sub Form1_Load(sender As Object, e As EventArgs) _
Handles MyBase.Load
' Set the caption bar text of the form.
Me.Text = "tutorialspoint.com"
Label1.Visible = False
TextBox1.Visible = False
TextBox1.Multiline = True
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) _


Handles Button1.Click
Dim str As String
str = " "

If CheckBox1.Checked = True Then


str &= CheckBox1.Text
str &= " "
End If

If CheckBox2.Checked = True Then


str &= CheckBox2.Text
str &= " "
End If

If CheckBox3.Checked = True Then


str &= CheckBox3.Text
str &= " "
120
Basic Controls ‫ عناصر التحكم‬:‫الفصل السابع‬

End If

If CheckBox4.Checked = True Then


str &= TextBox1.Text
str &= " "
End If
If str <> Nothing Then
MsgBox(str + vbLf + "Thank you")
End If
End Sub

Private Sub CheckBox4_CheckedChanged(sender As Object, _


e As EventArgs) Handles CheckBox4.CheckedChanged
Label1.Visible = True
TextBox1.Visible = True
End Sub
End Class

121
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫عنصر التحكم ‪:Scroll bar‬‬

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

‫دعنا نضغط عمى ‪ HScrollBar control‬و ‪ VScrollBar control‬من ‪ Toolbox‬ونضعيما في‬


‫النموذج‪.‬‬

‫‪122‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫عنصر التحكم ‪:Tree View‬‬

‫‪123‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

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

‫دعنا نضغط عمى عنصر تحكم ‪ TreeView‬من ‪ Toolbox‬ونضعو في النموذج‪.‬‬

‫‪124‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫‪125‬‬
‫الفصل السابع‪ :‬عناصر التحكم ‪Basic Controls‬‬

‫‪126‬‬

You might also like