شرح الدرس
أ) دراسة مهارات التفكير الحاسوبي ومبادئ البرمجة الحاسوبية
- ستتعلم في هذه الوحدة
- مهارات التفكير الحاسوبي
- المهارات
- التفكيك/التقسيم
- تعرّف الأنماط
- التفكيك
- تحديد ووصف المشكلات والعمليات
- تقسيم المشكلات والعمليات إلى خطوات متميزة
- وصف المشكلات والعمليات في مجموعة من الخطوات المنظمة
- إيصال سمات المشكلات والعمليات للآخرين
- المهارات
- فكّر ملياً
- تعرّف الأنماط
- المصطلح الرئيس
- تعميم النمط وتجريده
- تمثيل عناصر المشكلة
- مناقشة
- المصطلح الرئيس
- نتاج التعلم أ
- المصطلح الرئيس
- ميزات وخصائص لغات البرمجة
- البرمجة
- نماذج البرمجة
- البرمجة
- البرمجة
- مقارنة وتباين لغات البرمجة
- الأجهزة والبرامج اللازمة لتشغيل البرنامج وتطويره
- الأجهزة الخاصة المطلوبة
- الأداء
- وقت التطوير
- البرمجة
- سهولة التطوير
- البنى والتقنيات وتنفيذها بلغات مختلفة
- كلمات الأوامر
- المعرفات
- البرمجة
- أنواع البيانات
- الجمل
- البرمجة
- بنى التحكم
- العوامل المنطقية
- البرمجة
- الروتينات الفرعية والوظائف والإجراءات
- هيكل البيانات
- البرمجة
- النص (أو السلسلة)
- مصفوفة (أحادية البعد)
- البرمجة
- مصفوفة (ثنائية الأبعاد)
- نتاج التعلم أ
- المكدس (STACK)
- نتاج التعلم أ
- قائمة الانتظار (FIFO)
- السجل (أو الهيكل)
- الجدول 4.9 سجل تفاصيل الطلاب
- معالجة السلاسل
- إيجاد طول سلسلة نصية بعدد الرموز
- فحص الرموز الفردية
- استخراج سلسلة فرعية
- دمج سلسلتين
ستتعلم في هذه الوحدة
- أ. دراسة مهارات التفكير الحاسوبي ومبادئ البرمجة الحاسوبية
- ب. تصميم حل برمجي لتلبية متطلبات العميل
- ج. تطوير حل برمجي لتلبية متطلبات العميل
أ) دراسة مهارات التفكير الحاسوبي ومبادئ البرمجة الحاسوبية
البرمجة ليست مجرد مسألة تعلم كيفية استخدام لغة البرمجة التي تحظى بشعبية أو طلب كبير في الوقت الحالي، بل هي تعلم كيفية حل المشكلات من خلال التفكير بطريقة منطقية وفهم ما هي لغة البرمجة، وما يمكنها فعله وكيفية استخدامها.

مهارات التفكير الحاسوبي
- تعتمد برمجة الحاسوب الناجحة على ممارستك لمهارات التفكير الحاسوبي، وتساعدك هذه المهارات على فحص المشكلة وتحليلها بشكل منهجي وتحديد الحلول المحتملة التي يمكنك تطويرها لتصبح تطبيقات برمجية فاعلة.
- يمكن فهم مهارات التفكير الحاسوبي على أنها أربع خطوات منفصلة ولكنها مترابطة، كما هو موضح في الشكل 4.1.
المهارات
- مهارات التحليل واتخاذ القرار
التفكيك/التقسيم
مهارات التفكير الحاسوبي
تعرّف الأنماط
تمثيل عناصر المشكلة تعميم النمط وتجريده
التفكيك
- التفكيك هو عملية تقسيم الأفكار المعقدة إلى أجزاء أصغر وأسهل.
- أحياناً قد يُطلق على هذه العملية التحليل إلى عوامل.
- بشكل عام، فإن المشكلات التي لا يتم تفكيكها تكون أكثر صعوبة في الحل.
- فتقسيم مشكلة كبيرة إلى عدد من المشكلات الأصغر غالباً ما يحسن فرص النجاح، لأنه يسمح لك بالتركيز على شيء واحد في كل مرة، حتى تتمكن من دراسة تفاصيله عن كثب.
يستخدم الجميع عملية التفكيك كل يوم، غالباً دون إدراك. على سبيل المثال، تتضمن عملية إعداد وجبة عائلية ما يأتي: 1 اختيار وصفة مناسبة لاتباعها 2 حساب الكميات الصحيحة من مكونات الوصفة وعدد أفراد الأسرة 3 جمع المكونات المناسبة 4 تحضير المكونات 5 طهي المكونات بالترتيب الصحيح 6 طهي المكونات بالطرق الصحيحة 7 طهي المكونات للمدد الصحيحة 8 تجميع الوجبة 9 وضع الوجبة في أطباق جاهزة للأكل.
بهذه الطريقة، يمكن تقسيم مشكلة أو مهمة واحدة (إعداد وجبة عائلية) إلى تسع مهام فرعية على الأقل، ويمكن تفكيك كل منها بشكل أكبر، إذا لزم الأمر، حتى تصبح الخطوات المطلوبة لحل كل مهمة سهلة الفهم نسبياً. في البرمجة، تتضمن عملية التفكيك المراحل الأربع الآتية:
تحديد ووصف المشكلات والعمليات
- في هذه المرحلة، ستقوم بسرد المشكلات والعمليات بشكل موجز، باستخدام لغة تتناسب مع مصدر المشكلة.
- على سبيل المثال، إذا كنت تتعامل مع مشكلة مالية، يجب عليك استخدام مصطلحات دقيقة خاصة بالقطاع المالي.
- هذا يعني أنك بحاجة إلى أن تكون على دراية باللغة التقنية المستخدمة في قطاع الأعمال المرتبط بالمشكلة.
تقسيم المشكلات والعمليات إلى خطوات متميزة
- في هذه المرحلة، ستقوم بتفكيك المشكلات والعمليات المعقدة إلى خطوات منفصلة يمكن إعادة تجميعها بشكل صحيح عند وضعها معاً. لا يوجد حد محدد لعدد الخطوات المدرجة أو عدد المستويات التي يمكنك تفكيكها.
- سوف تستمر ببساطة في تفكيك كل خطوة حتى تصل إلى مستوى مقبول من الفهم.
- على سبيل المثال، يتم تقسيم مشكلة حساب صافي أجر شخص ما (الراتب بعد خصم الضرائب والخصومات الأخرى) إلى عدة خطوات في الشكل 4.2 الوارد في الصفحة الآتية.
وصف المشكلات والعمليات في مجموعة من الخطوات المنظمة
في هذه المرحلة، ستقوم بتوثيق المشكلات والعمليات التي قمت بتفكيكها إلى مجموعة من الخطوات المنظمة. يجب أن يكون هذا واضحاً بما يكفي لتتبعه أنت أو الآخرون.
إيصال سمات المشكلات والعمليات للآخرين
في هذه المرحلة، ستناقش المشكلات والعمليات مع الآخرين. قد يشمل ذلك مبرمجين آخرين أو العميل. بمجرد أن تقوم بتفكيك مشكلة معقدة، يصبح من الممكن البدء في النظر إلى الخطوات المتضمنة لمعرفة ما إذا كانت هناك أي أنماط متكررة.
المهارات
- مهارات الإدارة الذاتية والتخطيط
- القدرة على العمل بطريقة قانونية وأخلاقية
فكّر ملياً
بصفتك مبرمجاً، يجب أن تكون مهارات الاتصال الخاصة بك مرنة. ستحتاج إلى تعديل التسليم الخاص بك لتلبية الاحتياجات المختلفة للمتلقين. على سبيل المثال، سيفهم المصطلحات الفنية بينما لا يفهم العميل. من ناحية أخرى، قد يقدر العميل استخدام اللغة الخاصة بقطاع الأعمال، ولكن قد لا يقدر المبرمجون ذلك. يجب أن تكون قادراً على توصيل المشكلة للآخرين، لأن وجود فهم واضح للمشكلة أمر ضروري لنجاحك النهائي في حلها.

1.1 الحصول على راتب سنوي 1.2 حساب الأجر شهرياً قبل الخصم 1.3 حساب الخصومات 1.4 حساب الأجر شهرياً بعد الخصم 1.2.1 تقسيم الراتب السنوي على 12 شهراً 1.3.1 حساب الأجر الخاضع للضريبة 1.4.1 استقطاع جميع الخصومات من الأجر شهرياً
تعرّف الأنماط
- تعرّف الأنماط هو القدرة على رؤية السمات المتكررة داخل المشكلة وبين المشكلات المختلفة.
- على سبيل المثال، قد تنطوي مشكلة جديدة على سمات مشابهة لسمات مشكلات أخرى تم مواجهتها وحلها سابقاً. تعرف هذه الأنماط يمكن أن يجعل حل المشكلات أسهل بكثير، حيث يمكن أن يوفر نقطة انطلاق جيدة.
تعرّف الأنماط هو عملية تعتمد على خمس خطوات رئيسية: 1 تحديد العناصر أو السمات المشتركة في المشكلات أو الأنظمة. ويشمل ذلك:
- فحص المشكلات أو الأنظمة
- سرد العناصر أو السمات الموجودة في كل مشكلة أو نظام
- تسليط الضوء على العناصر الموجودة في أماكن متعددة
- تعرّف تلك العناصر أو الميزات كأنماط.
2 تحديد وتفسير الفروق الشائعة بين العمليات أو المشكلات. ويشمل ذلك:
- فحص المشكلات والعمليات
- سرد العناصر أو الميزات الموجودة في كل مشكلة أو نظام
- تسليط الضوء على ما تتفرد بها كل واحدة
- تعرّف تلك العناصر أو السمات كاختلافات.
3 تحديد العناصر الفردية داخل المشكلات. ويشمل ذلك:
- دراسة المشكلات لتحديد المدخلات والعمليات (بما في ذلك الاختيارات والتكرارات) والمخرجات الموجودة.
4 وصف الأنماط التي تم تحديدها. 5 عمل تنبؤات بناءً على الأنماط المحددة:
- لكل نمط محدد، حدد كيف يمكن استخدامه في المستقبل أو كيف يظهر في مواقف مشابهة.
المصطلح الرئيس
المصطلحات - الكلمات أو العبارات التي تستخدمها مجموعة معينة فقط والتي يجد الأشخاص خارج تلك المجموعة صعوبة في فهمها.
تعميم النمط وتجريده
يحدث تعميم النمط عندما يمكن تحديد العلاقات بين الأنماط ويمكن استخلاص استنتاجات بسيطة. على سبيل المثال، يمكن تحديد الأنماط حتى عندما لا يكون واضحاً من البداية أن هناك العديد من التشابهات. في وسائل النقل المختلفة (على سبيل المثال السيارات والحافلات والشاحنات)، يمكننا رؤية عناصر متشابهة تتكرر في أنماط التصميم. تشتمل كل مركبة على أربع عجلات ومحورين وهيكل وآلية توجيه وما إلى ذلك. من أجل حل المشكلات بفعالية، يجب أن تنظر إلى وراء ما هو واضح (في هذه الحالة، الاختلافات المادية بين أشكال النقل الثلاثة). بدلاً من ذلك، حاول تحديد العناصر المشتركة والعلاقات بين هذه العناصر. هناك جزءان في هذه المرحلة من التفكير الحسابي. تحديد المعلومات المطلوبة لحل مشكلة محددة؛ ويمكنك تحقيق ذلك من خلال معرفة:
- ما المعلومات التي تحتاج إليها
- أسباب احتياجك لهذه المعلومات ("الأساس المنطقي")
- التنسيق الذي يجب تقديم هذه المعلومات به
- مدى الحاجة إلى هذه المعلومات لمنع تأخير الحل.
ثانياً، تصفية المعلومات غير المطلوبة لحل مشكلة محددة. يمكنك تحقيق ذلك عن طريق:
- معرفة المعلومات غير المطلوبة، لأنها ستكون مصدر إلهاء
- معرفة (وتبرير) سبب استبعادك لهذه المعلومات.
تمثيل عناصر المشكلة
لتمثيل أجزاء مشكلة أو نظام بشكل عام، تحتاج إلى تحديد:
- المتغيرات - تشير إلى القيم التي قد تتغير في المشكلة أو النظام، وعادةً ما يتم إدخالها من قبل المستخدم أو كنتيجة لعملية حسابية مطلوبة
- الثوابت - تشير إلى القيم التي لا تتغير كثيراً أو تظل ثابتة لفترة معقولة في المشكلة أو النظام (على سبيل المثال، معدل الضريبة الأساسي هو 20 في المائة)
- العمليات الرئيسة - تشير إلى العمليات التي تعتبر بالغة الأهمية لفهم مشكلة ما أو كيفية عمل النظام
- عمليات متكررة - تشير إلى العمليات التي تحدث عدة مرات داخل مشكلة
- المدخلات - تشير إلى القيم التي تم إدخالها في النظام، بما في ذلك الوحدات المستخدمة، وربما أي قيم أو نطاقات صالحة (على سبيل المثال، عندما يكون الجنس هو "M" للذكور أو "F" للإناث، أو حيث يجب أن يكون سعر المنزل بين 20,000 دولار و2,000,000 دولار)
- المخرجات - تشير إلى المعلومات المقدمة للمستخدم بتنسيق مطلوب، يتم تحديده عادةً من قبل العميل كجزء من متطلباته.
في الحوسبة، التجريد هو مفهوم يتم من خلاله تقسيم الأنظمة إلى طبقات مختلفة، حيث تخفي كل طبقة تعقيد الطبقة الموجودة تحتها. وهذا يسمح للمبرمج باستخدام سمة دون الحاجة إلى معرفة كيفية عملها بالضبط: يتم ببساطة "تجريد" الاليات غير الصلة والمعقدة أو إزالتها.
- تطبيقات البرمجيات (غالباً ما تُسمى "التطبيقات" أو "البرامج") هي برامج تم تطويرها لتنفيذ مهام محددة، وحل مشاكل معينة وتلبية احتياجات المستخدم المحددة.
- هناك العديد من الطرق المختلفة لتصنيف التطبيقات: بحسب نوع ترخيص البرنامج (مجاني أو تجاري أو غير ذلك)، بحسب منصة الحاسوب (المكتبي أو المحمول أو غير ذلك) أو بحسب الاستخدام.
- الجدول 4.1 في الصفحة الآتية يوضح بعض تطبيقات البرمجيات المصنفة بحسب الاستخدام الشائع، بما في ذلك آثار استخدامها.
مناقشة
في مجموعات صغيرة أو أزواج، فكر في عملية يومية مثل حساب تكلفة تزيين الغرفة بالطلاء الجديد. حاول تحديد المتغيرات والثوابت والعمليات الرئيسة والمدخلات والمخرجات المتضمنة.
المصطلح الرئيس
الآثار - الآثار المحتملة لشيء ما.
نتاج التعلم أ
| فئة الاستخدام | الاحتياجات التي تم الوفاء بها | أمثلة | الآثار |
|---|---|---|---|
| الألعاب | ألعاب الفيديو التي يمكن استخدامها للترفيه أو التعليم أو المساعدة في التعافي بعد الصدمة. | اكتيفيجين كول أوف ديوتي، بايويوير ماس إيفكت، يوبيسوفت أساسنز كريد، بوب كاب بيغل، مايكروسوفت ماينكرافت | العزلة الاجتماعية المحتملة، مشاكل صحية (لها تأثير في ممارسة الرياضة البدنية)، الصحة النفسية (كأداة للاسترخاء)، إدمان محتمل |
| الترفيه | التطبيقات التي تساعد المستخدمين على الاسترخاء والاستمتاع بأشكال مختلفة من الوسائط، مثل الموسيقى أو الفيديو أو الكتب من خلال التنزيل أو النشر أو كليهما. | أبل آيتونز، ميكروسوفت ميديا بلاير، تطبيق أمازون كيندل | العزلة الاجتماعية المحتملة، المشاهدة/الاستماع بحسب الحاجة (استهلاك أكثر مرونة) |
| الإنتاجية | تطبيقات مثل جداول البيانات وقواعد البيانات ومعالجات النصوص وبرامج العروض التقديمية التي تساعد العمال على إنجاز المهام بشكل أكثر كفاءة، عادةً عند العمل في الأدوار الإدارية. | مايكروسوفت أوفيس، أباتشي أوبن أوفيس، أدوبي كريتيف سويت، جوجل درايف/تطبيقات للعمل | تحسين الإنتاجية، مهارات العمل الجديدة، أفكار جديدة وتقنيات حل المشكلات، كفاءة أكبر، تكلفة مخفضة |
| تخزين المعلومات وإدارتها | التطبيقات المستخدمة لتخزين وإدارة المعلومات بأمان (منع الفقدان) وتمكين الاسترجاع السريع، عادةً عبر الإنترنت. | دروب بوكس، جوجل درايف، أبل آي كلاود | تقليل مخاطر فقدان البيانات، تكرار البيانات، الوصول المرن إلى البيانات |
| مهام متكررة أو خطيرة | التطبيقات المستخدمة لأتمتة المعدات في البيئات التي تشكل خطراً على الناس أو التي تحل محل المهام اليدوية الرتيبة. | صناعة الطاقة، الشاحنات ذاتية القيادة (التعدين)، تصنيع السيارات، المعالجة الكيميائية | تقليل المخاطر الجسدية للفرد، المزيد من الرضا الوظيفي (وظائف أقل تكراراً ومملاً)، مهارات العمل الجديدة، تحسين الإنتاجية، تكلفة مخفضة |
| وسائل التواصل الاجتماعي | تطبيقات مصممة لتوصيلك بأشخاص (المعروفة سابقاً باسم تويتر) آخرين، للمساعدة في التواصل ومشاركة الأفكار والأحداث والصور ومقاطع الفيديو. | إكس، فيسبوك، سناب شات، الواتساب، بنترست، إنستغرام، ووردبريس، بلوجر | التغييرات في مهارات التواصل، القدرة على مناقشة المشكلات ومشاركتها مع الآخرين، القدرة على تبادل الأفكار مع الآخرين، المخاطر الأمنية، المخاطر التي يتعرض لها القصر والبالغون الضعفاء، إدمان محتمل، تحسين المساهمة في القضايا الهامة |
المصطلح الرئيس
- النظام الثنائي - نظام أرقام يستخدم فقط الرقمين 0 و1 لتكوين الأرقام (المعروف أيضاً باسم "الأساس 2").
- على سبيل المثال، "5" في النظام الثنائي هي 101 (1 × 1 + 2 × 0 + 4 × 1).
- تحتوي دوائر الحاسوب على حالات "تشغيل" و"إيقاف" يمكن استخدامها لتمثيل قيم 0 و1 الثنائية.
ميزات وخصائص لغات البرمجة
- تم تطوير المئات من لغات البرمجة المختلفة منذ منتصف القرن العشرين.
- تمت كتابة البرامج الأصلية بلغة الآلة (الثنائية) التي تخبر معالج الحاسوب بما يجب القيام به بالضبط، ولكن ثبت أن هذا يستغرق وقتاً طويلاً ويتطلب الكثير من المهارات.
- على الرغم من السرعة والكفاءة في التنفيذ، إلا أن مثل هذه البرامج استغرقت وقتاً طويلاً نسبياً لإنشائها وتم اعتبار التطبيقات المعقدة مهمة كبيرة.
- مع مرور الوقت، جعلت اللغات الجديدة ذات المستوى المنخفض والمستوى المرتفع أكثر قابلية للفهم.
- ونتيجة لذلك، قللت وقت إنتاج التطبيقات وبرامج الأنظمة الأكثر تعقيداً. يقارن الجدول 4.2 بين نوعين مختلفين من كود البرنامج المستخدم لإخراج شاشة الرسالة نفسها، في البداية باستخدام لغة الآلة منخفضة المستوى ثم باستخدام اللغة عالية المستوى، ++C.
المهارات
- مهارات التحليل واتخاذ القرار
- مهارات الإدارة الذاتية والتخطيط
- القدرة على العمل بطريقة قانونية وأخلاقية
المصطلحات الرئيسية
اللغات ذات المستوى المنخفض والمستوى المرتفع - في البرمجة، يشير المصطلحان "منخفض" و"مرتفع" إلى موضع اللغة في إطار فهمها بواسطة الحاسوب (على سبيل المثال، ثنائية المستوى منخفضة المستوى) وفهمها من قبل شخص (على سبيل المثال، اللغات الطبيعية مثل الإنجليزية والعربية والتايلاندية والهولندية عالية المستوى). وحدة المعالجة المركزية (CPU) - "الدماغ" المركزي للحاسوب. عادةً ما يتحكم في موارد الحاسوب ومدخلاته ومخرجاته، والأهم من ذلك، تعليمات المعالجة والبيانات التي يتم جلبها من ذاكرة الوصول العشوائي (RAM). برنامج التحويل - برنامج خاص يترجم كود البرنامج المكتوب بلغة عالية المستوى إلى تعليمات ثنائية يمكن لوحدة المعالجة المركزية معالجتها. تصحيح الأخطاء - عملية تحديد خطأ (أو خلل) في كود البرنامج وإزالته. منقول - مكتوب باستخدام بنية حاسوبية واحدة، ولكن تم تجميعه للاستخدام على جهاز آخر. يُعرف هذا أيضاً باسم التجميع المتقاطع.
| الجدول 4.2 إخراج 'طالب BTEC' باستخدام كود البرنامج منخفض وعالي المستوى | |
|---|---|
| لغة منخفضة المستوى | لغة عالية المستوى |
| طالب BTEC في كود الآلة x86 Intel (موضح بالنظام الست عشري): | "طالب BTEC" في كود مصدر ++C: |
| B4 09 • BA 09 01 • CD 21 • CD 20 • 42 54 45 20 73 74 75 64 65 6E 74 24 | cout << "BTEC student"; |
- بينما يمكننا على الأرجح قراءة كود ++C بشكل أكثر راحة، يمكن للحاسوب معالجة المكافئ منخفض المستوى بسهولة أكبر بكثير حيث أن تعليمات كود الآلة تتحدث مباشرة إلى وحدة المعالجة المركزية (CPU).
- وبالمقارنة، يجب ترجمة كود ++C بنجاح إلى لغة الآلة باستخدام برنامج التحويل قبل أن يتم تنفيذه بواسطة وحدة المعالجة المركزية.
- بنية الحاسوب معقدة إلى حد كبير.
- اللغات البرمجية منخفضة المستوى مثل لغة الآلة (التي غالباً ما تُكتب بالنظام الثنائي، وهو نظام أساسه 2، أو النظام السداسي عشري، وهو نظام أساسه 16) أو لغة التجميع، تخفي القليل جداً من هذه التعقيدات عن المبرمج.
- لكي يتمكن المبرمج من برمجة الحاسوب على هذا المستوى، يجب أن يكون على دراية بهيكلية المعالج.
- وبالمقارنة، تستخدم اللغات عالية المستوى مثل Microsoft Visual Basic .NET و++C التجريد لإخفاء تعقيدات البنية من المبرمج.
- في هذه اللغات، قد يُترجم أمر واحد إلى مئات التعليمات المعقدة ذات المستوى المنخفض التي يمكن للمعالج فهمها.
غالبية لغات البرمجة التجارية المستخدمة في العالم اليوم عالية المستوى. هذا لأن اللغات عالية المستوى تعمل على: 1 تحسين إنتاجية المبرمجين عند كتابة كود البرنامج 2 تحسين قابلية قراءة الكود 3 إنتاج كود يسهل تصحيحه 4 السماح باستخدام أدوات تطوير البرامج الأكثر مرونة 5 إنتاج كود يمكن نقله.
البرمجة
بحث
يُنسب مصطلح "الخطأ" بشكل شائع إلى رائدة الحاسوب غريس هوبر التي عثرت في عام 1945 على فراشة أصبحت محاصرة بين نقاط الاتصال في مفتاح الترحيل بالحاسوب. بمجرد إزالة "الفراشة"، عمل الحاسوب مرة أخرى. لكن في الواقع، هذا المصطلح أقدم من هذا. قم ببعض الأبحاث لمعرفة ما إذا كان بإمكانك تحديد أصلها.
- توفر اللغات ذات المستوى المنخفض التحكم النهائي في أجهزة الحاسوب.
- ومع ذلك، فهي تستغرق وقتاً طويلاً كما أنها معقدة الاستخدام.
- في المقابل، فإن اللغات عالية المستوى تلخص صعوبات التحدث إلى أجهزة الحاسوب مباشرة وتوفر فرصاً أكثر سرعة لتطوير البرامج.
- ومع ذلك، غالباً ما يكون البرنامج النهائي أقل كفاءة وأبطأ سرعة وأكبر حجماً مما قد يكون عليه إنتاجه بلغة منخفضة المستوى.

نماذج البرمجة
أدت أنواع مختلفة من المشكلات إلى ظهور أنماط برمجة مختلفة. يهدف كل نمط، يُعرف بالنموذج، إلى حل مشكلة بطريقة مختلفة، غالباً لتلبية احتياجات المستخدم المختلفة. يوضح الجدول 4.3 الأنواع الأكثر شيوعاً لنماذج البرمجة.
- يمكن أن تنتمي بعض لغات البرمجة إلى نماذج متعددة.
- على سبيل المثال، يشيع استخدام "لغة روبي" بشكل كلغة برمجة نصية، ولكنها تحتوي أيضاً على العديد من الميزات كائنية التوجه (OO).
- تعتمد لغة مايكروسوفت فيجوال بيسك دوت نت، والتي يصنفها الكثيرون على أنها لغة تعتمد على الأحداث، بشكل كبير على الفئات (مثل الأزرار والمربعات الحوار) التي تمثل جوهر نظام تشغيل Microsoft Windows. وبالتالي، يمكن اعتبارها أيضاً لغة موجهة للكائنات.
| الجدول 4.3 نماذج لغة البرمجة المختلفة | ||
|---|---|---|
| نماذج البرمجة | لغات البرمجة | الميزات والخصائص |
| البرمجة الإجرائية | بيسك، سي، فورتران | غالباً ما تكون اللغات الإجرائية هي الأولى التي يتعلمها المبرمج. وغالباً ما تُعتبر أداة للأغراض العامة وتستخدم لإنشاء العديد من أنواع التطبيقات المختلفة. تتم كتابتها عادةً في مجموعة من الخطوات المحددة جيداً والتي تحل مشكلة محددة، على سبيل المثال إجراء عملية حسابية بسيطة في لغة سي، كما هو موضح في الشكل 4.3. • إذا أصبحت الخطوات معقدة أو طويلة أو متكررة، فقد يختار المبرمج تقسيم الخطوات إلى إجراءات منفصلة، ولكل منها غرض واحد يمكن استخدامه عدة مرات. • يمكن أيضاً استخدام مصطلح "ضروري" لوصف هذا النوع من اللغة، لكن اللغات الحتمية تميل إلى الاعتماد بشكل أقل على الإجراءات. |
```c #include <stdio.h> #include <string.h>
int main () { int a; int b; int c;
puts ("Enter first number"); scanf("%d", &a); puts ("Enter second number"); scanf("%d", &b);
c = a + b; printf("%d + %d = %d",a,b,c);
return 0; } ```
البرمجة
| الجدول 4.3 متابعة | ||
|---|---|---|
| نماذج البرمجة | لغات البرمجة | الميزات والخصائص |
| كائنية التوجه (OO) | ++C • Microsoft C# • Oracle Java™ • PHP • Ada • Python • Ruby | البرمجة كائنية التوجه هي نهج حديث شائع للبرمجة. تعتمد اللغات كائنية التوجه على مفاهيم "الفئات" و"الكائنات" لحل مشاكل العالم الحقيقي. ونظراً لهذا النهج، يتم استخدامها بشكل شائع لتصميم ألعاب الفيديو ومواقع التجارة الإلكترونية وأنظمة قواعد البيانات وواجهات المستخدم. • في اللغات كائنية التوجه، يتم إنشاء الكائنات من فئات يتم تصميمها عادةً على غرار "أشياء" في العالم الحقيقي مثل العملاء والحسابات المصرفية والمنتجات والطلبات وما إلى ذلك. تعمل كل فئة كخريطة برمجية، حيث تقوم بتغليف (أو احتواء) حالة الشيء (بياناته أو خصائصه) وسلوكياته (وظائفه أو طرقه) في كود البرنامج راجع (الشكل 4.4). يقوم المبرمج بإنشاء تفاعلات محددة بين الكائنات المختلفة من أجل حل المشكلة. نظراً لوجود كل فئة على حدة، يمكن تعديلها أو تكييفها بسهولة لتعكس التغييرات التي تحدث في العالم الحقيقي دون أن يكون لها تأثير سلبي في الحل بأكمله. وهذا يجعل اللغات كائنية التوجه جذابة للغاية للمطورين عندما يفكرون في متطلبات معالجة الصيانة المستمرة. |

| نماذج البرمجة | لغات البرمجة | الميزات والخصائص |
|---|---|---|
| القائمة على الأحداث (ED) | مايكروسوفت فيجوال بيسك دوت نت، بايثون، روبي، جافا سكريبت | هذا نموذج شائع لتطوير التطبيقات الرسومية التي تستجيب للأحداث التي يتم إنشاؤها إما عن طريق النظام (مثل ساعة النظام) وإما عن طريق المستخدم (مثل النقر بالفأرة). • عادةً ما تعمل البرامج التي تعتمد على الأحداث بشكل غير متسلسل مع المستخدمين القادرين على تحديد العمليات التي يريدون تنفيذها بدلاً من اتباع المدخلات المحددة مسبقاً لبنية أكثر صرامة. • يركز المطورون عادةً على برمجة الأحداث، وهي الشفرة التي تحدد الإجراءات التي يجب تنفيذها عند تشغيل حدث معين عبر مراقب. المراقب هو عملية تنتظر حدوث حدث معين. على سبيل المثال، إذا تم النقر فوق خيار قائمة ملف->فتح، فسيتم عرض مربع حوار فتح ملف. |
| الآلة | لغة الآلة • لغة التجميع (يشار إليها أحياناً بشكل رسمي باسم "المجمع") | هذه هي لغات البرمجة ذات المستوى الأدنى والتي توفر التحكم في الأجهزة الأساسية للآلة. ويجب كتابة كود الآلة لعائلة وحدة معالجة مركزية معينة، مثل Intel x86 (32 بت) أو x64 (64 بت). لا يمكن تشغيله بسهولة على منصات مختلفة دون التحويل إلى تعليمات وحدة المعالجة المركزية للنظام الجديد أو محاكاة تعليمات وحدة المعالجة المركزية الأصلية. • وتستخدم لغة التجميع سلسلة من أساليب الاستذكار الملائمة للأشخاص لتمثيل تعليمات وحدة المعالجة المركزية الأساسية. أما الوسائل المساعدة للذاكرة، فهي وسائل تساعد الناس على تذكر المفاهيم المعقدة، عادةً من خلال التمثيل البصري أو الأقوال أو القوافي التي يسهل تذكرها. في لغة التجميع، تعمل الوسائل المساعدة للذاكرة على تحسين قابلية القراءة وزيادة الإنتاجية. • على سبيل المثال، عند إضافة 4 + 2 في لغة التجميع: • mov يعني نقل، add يعني إضافة و int 20 ينهي البرنامج. • bx ax عبارة عن سجلات (مناطق ذاكرة عالية السرعة) داخل وحدة المعالجة المركزية. • mov ax, 0004 • mov bx, 0002 • add ax, bx • int 20 • تأتي الوسائل المساعدة للذاكرة هذه في شكل أكواد تشغيل ومعاملات. تصف أكواد التشغيل العملية التي يتم تنفيذها والمعاملات هي القيم التي تتم معالجتها بواسطة العملية. • في لغة الآلة، يبدو هذا الكود نفسه معبراً عنه بالنظام الست عشري هكذا: • B8 04 00 • BB 02 00 • 01 D8 • CD 20 |
البرمجة
| الجدول 4.3 متابعة | ||
|---|---|---|
| نماذج البرمجة | لغات البرمجة | الميزات والخصائص |
| لغات الترميز | HTML (لغة ترميز النص التشعبي) • XML (لغة الترميز القابلة للتوسعة) | من أجل التنفيذ، يجب ترجمة لغة التجميع إلى لغة الآلة باستخدام برنامج خاص يسمى المترجم. • غالباً ما تُستخدم لغات الآلة عندما تكون السرعة أمراً حيوياً أو عندما يكون الوصول منخفض المستوى إلى أجهزة الحاسوب أو الاتصال بالإلكترونيات المتصلة أمراً مهماً. على سبيل المثال، يمكن استخدامه في آلات البيع وشاشات العرض الأمامية وألعاب الفيديو. • الترميز هو شكل من أشكال اللغة المستخدمة لتحديد تنسيق محتوى المستند بطريقة منظمة باستخدام علامات خاصة. على سبيل المثال، يتم استخدام <P> في HTML للإشارة إلى بداية ونهاية الفقرة، كما هو موضح في الشكل 4.5. • <p>A new paragraph</p> • الشكل 4.5 • يمكن استخدام لغات الترميز الأخرى لتمثيل هياكل البيانات بطريقة محايدة للمنصة. على سبيل المثال، إدخالات من مكتبة رموز وجهات المطارات الدولية، كما هو موضح في الشكل 4.6. • غالباً ما يتم استخدام XML كتنسيق مفضل لنقل البيانات بين أنظمة الحاسوب والتطبيقات المختلفة، مثل عند تصدير واستيراد البيانات بين أنظمة قواعد العلاقات التي عادة ما تكون غير متوافقة. • <AIRPORT> • <COUNTRY>Thailand</COUNTRY> • <CAPITAL>Bangkok</CAPITAL> • <CODE>BKK</CODE> • </AIRPORT> • <AIRPORT> • <COUNTRY>Pakistan</COUNTRY> • <CAPITAL>Islamabad</CAPITAL> • <CODE>ISB</CODE> • </AIRPORT> • الشكل 4.6 يُستخدم الترميز لإظهار بنية البيانات |
| البرمجة النصية | Perl • جافا سكريبت • Ruby • PHP | يتم استخدام أنواع مختلفة من لغات البرمجة لأغراض مختلفة. • يتم استخدام JavaScript في تصميم الويب لأتمتة العمليات وإضافة ميزات تفاعلية إلى صفحات الويب. • PHP هي لغة برمجة نصية شائعة على جانب الخادم تستخدم لإنشاء تطبيقات معقدة عبر الإنترنت تستخدم في التجارة الإلكترونية. • غالباً ما يتم استخدام Perl وRuby لأتمتة عمليات النظام على الحاسوب عن طريق ربط وتنفيذ المهام التي ربما تم تشغيلها في الأصل بشكل منفصل من قبل المستخدم. على سبيل المثال، يعرض الشكل 4.7 برنامج Ruby لعرض أول 255 بايت من ملف محدد على الشاشة. • #!/usr/bin/ruby • filename = ARGV[0] • aFile = File.new(filename, "r") • if aFile • content = aFile.sysread(255) • puts content • else • puts "Unable to open file!" • end • الشكل 4.7 نموذج برنامج روبي |


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

الأجهزة والبرامج اللازمة لتشغيل البرنامج وتطويره
تتطلب بعض لغات البرمجة أجهزة وبرامج محددة لتشغيل البرنامج وتطويره. المتطلبات المفضلة للغات البرمجة الشهيرة موضحة في الشكل 4.8.
- تعتبر بعض لغات البرمجة، مثل C، "متعددة المنصات". هذا يعني أنها مدعومة على العديد من المجموعات المختلفة من الأجهزة وأنظمة التشغيل.
- من المحتمل أن يفسر هذا سبب استمرار شعبية لغة C بين المبرمجين التجاريين، على الرغم من حقيقة أنها صدرت لأول مرة في عام 1972.
مناقشة
في مجموعات صغيرة أو أزواج، ناقش لماذا تعتقد أنك قد تحتاج إلى مقارنة لغات البرمجة ولماذا من المهم أن يكون لديك مجموعة متنوعة من اللغات المختلفة. تابع القراءة الآن وشاهد عدد الأسباب التي حددتها بشكل صحيح.
الأجهزة الخاصة المطلوبة
- عند برمجة حلول للأجهزة الخارجية، من الشائع جداً توصيل حاسوب مكتبي بجهاز خاص، عادة واجهة البرمجة التسلسلية (SPI) أو مجموعة عمل الاختبار المشتركة (JTAG).
- عادة ما يتم توصيل هذا الجهاز الخاص بجهاز حاسوب مكتبي عبر ناقل تسلسلي عالمي (USB) أو كبل تسلسلي أو متوازي.
- يسمح للمطور بإجراء عملية تسمى البرمجة داخل النظام (ISP). تسمح البرمجة داخل النظام (ISP) بإعادة برمجة الأجهزة دون إزالتها من دائرتها الأصلية.
- على سبيل المثال، الاستخدام الشائع للبرمجة داخل النظام (ISP) هو إعادة برمجة الهاتف المحمول لإصلاحه أو فتح ميزاته، كما هو موضح في الشكل 4.9 في الصفحة الآتية.
الأداء

- تتباين لغات البرمجة في كفاءة أدائها.
- عادةً ما يتم قياس الأداء بناءً على قدرة اللغة على تنفيذ الخوارزميات المعقدة مقارنة بالوقت.
- على سبيل المثال، تستفيد بعض لغات البرمجة بشكل أفضل من وحدة المعالجة المركزية من خلال وجود مترجمين أكثر كفاءة يقومون بإنشاء كود آلة محسن.
- تقوم بعض لغات البرمجة بإدارة ذاكرة الوصول العشوائي بشكل أكثر كفاءة من غيرها من خلال اتخاذ تدابير صارمة لجمع البيانات المهملة.
- جمع البيانات المهملة ليس عملية إلزامية وبعض اللغات، مثل C، تتطلب من المبرمج أن يتذكر إلغاء تخصيص الذاكرة التي لم تعد قيد الاستخدام يدوياً. قد يؤدي جمع البيانات المهملة بشكل مكثف إلى تسريع اللغة ولكنه ينطوي على خطر حدوث "تسرب" للذاكرة.
المصطلح الرئيسي
جمع البيانات المهملة - عملية تلقائية تحاول استعادة ذاكرة الوصول العشوائي المحجوزة بواسطة برنامج لتخزين البيانات، على سبيل المثال معرف (متغير أو كائن) لم تعد هناك حاجة إليه.
بعض لغات البرمجة مناسبة بشكل أفضل لبعض مجالات التطبيق. تعتبر لغة C للأغراض العامة، ولكنها فعالة بشكل خاص للتحكم في الأجهزة والإلكترونيات الخارجية بسبب التحكم المنخفض المستوى في نظام الحاسوب. يتم استخدام Java لإنشاء تطبيقات لصفحات الويب وتطبيقات Android للأجهزة المحمولة. يعني نهج "الكتابة مرة واحدة والتشغيل في أي مكان" (WORA) أنه مدمج في العديد من الأشكال المختلفة لأجهزة الترفيه المنزلي، مثل أجهزة استقبال التلفزيون ومشغلات بلو راي. تُستخدم لغة PHP لإنشاء تطبيقات خادم للأنشطة التجارية في مجال التجارة الإلكترونية، والتجارة عبر الإنترنت، وغيرها. تُستخدم لغة #C لإنشاء ألعاب الفيديو لنظام Microsoft Windows وأجهزة الألعاب الشهيرة، وذلك بفضل سهولة استخدامها مع مجموعة أدوات Microsoft XNA، التي تُعتبر مجموعة شائعة من الأدوات المستخدمة في تطوير ألعاب الفيديو. يتم استخدام Objective-C لإنشاء تطبيقات الجوال لأجهزة نظام التشغيل iOS الخاص بأجهزة أبل، مثل iPad وiPhone وما إلى ذلك.
وقت التطوير
يعتبر وقت التطوير اعتباراً مهماً عند اختيار نموذج البرمجة. كما رأينا، البرامج المكتوبة باستخدام لغة الآلة ولغة التجميع تكون فعالة وتُنفذ بسرعة كبيرة، ولكن وقت التطوير عند
البرمجة
استخدام هذه اللغات قد يكون أطول كثيراً مقارنة بالعمل مع اللغات عالية المستوى في بيئات التطوير الحديثة.
- في البرمجة التجارية، يتم ربط الوقت مباشرة بالمال، لذلك هناك تركيز قوي على كتابة كود موثوق مع الحد الأدنى من الأخطاء في أسرع وقت ممكن.
- ونتيجة لذلك، فإن لغات البرمجة التي تدعمها أدوات التطوير الغنية بالميزات التي تدعي تقليل وقت التطوير شائعة.
- ومع ذلك، قد يكون من الصعب قياس وقت التطوير.
- هذا لأنه من الصعب تحديد المقاييس المقبولة والاتفاق عليها داخل المجال.
- على سبيل المثال، يمكنك اعتبار عدد أسطر الكود (LOC) المكتوبة في الساعة مقياساً مقبولاً، ولكن هذا لا يأخذ في الاعتبار عدد الأخطاء ذات الصلة التي يتم إنشاؤها.
- بالإضافة إلى ذلك، إذا علم المبرمج أن إنتاجيته تقاس بعدد أسطر الكود (LOC) الذي ينشئه في الساعة، فقد يشجعه ذلك على كتابة كود مطول بشكل مفرط.
المقياس - شكل متفق عليه للقياس يتيح المقارنة والتقييم. مطول - استخدام كلمات أو أكواد أكثر من اللازم.
سهولة التطوير
كما ذكرنا سابقاً، فإن بعض لغات البرمجة أسهل في الاستخدام من غيرها، لأن بعض اللغات تقدم لمطور البرمجيات أدوات متقدمة يمكن أن تقدم تلميحات أو كود برنامج يتم إنشاؤه تلقائياً. على سبيل المثال، يقوم Microsoft Visual Basic .NET بتحويل نماذج الإدخال التي تم إنشاؤها باستخدام وظيفة السحب والإفلات إلى كود برنامج تلقائياً.
يمكن أن تؤثر جودة الأدوات الأخرى المتاحة داخل محرر لغة البرمجة أيضاً على سهولة التطوير وإنتاجية المبرمج. تشمل هذه الأدوات أنظمة المساعدة، وتمييز بناء الجملة وأدوات تصحيح الأخطاء.
- تسليط الضوء على بناء الجملة هو ميزة في العديد من أدوات تحرير لغات البرمجة. حيث يعرض هياكل برمجية مختلفة بألوان محددة. على سبيل المثال، قد يظهر التعليق باللون الأخضر، وسلسلة النص باللون الأحمر وهكذا. يجد معظم المطورين أن الكود الناتج أسهل في القراءة والفهم وتصحيح الأخطاء.
- توفر أدوات تصحيح الأخطاء للمبرمج مجموعة من الميزات التي تساعدهم في تحديد الأخطاء في الكود وإزالتها. تشمل أدوات تصحيح الأخطاء الشائعة التتبع والمراقبة ونقاط التوقف.
فكّر ملياً
بغض النظر عن لغة البرمجة أو النظام الأساسي أو أدوات التطوير التي تستخدمها، ستحتاج إلى تطوير وإظهار السلوك المهني المناسب لصناعة البرمجة. وتشمل هذه السلوكيات:
- أن تكون منضبطاً - يجب عليك تحديد أهداف التنمية ذات الصلة والعمل وفقاً لجداول زمنية واقعية
- احترام الآخرين وآرائهم، خاصة عندما يقدمون لك ملاحظات أساسية حول برنامجك ومدى ملاءمته عند تقييمه مقابل احتياجات المستخدم الأصلية
- تقييم النتائج لمساعدتك على تبرير توصياتك وقراراتك، خاصة في ما يتعلق بتصميم الحل الخاص بك أو تنفيذه
- مقارنة الأهداف المحددة ونتائجها النهائية ومقارنتها، حيث سيساعدك ذلك على فهم أدائك كمطور ومحلل للمشكلات
- العمل مع الآخرين كجزء من فريق - هذا مهم بشكل خاص عند المساهمة في مهمة أكبر لحل المشكلات تشمل الآخرين. يجب عليك تقديم الدعم لزملائك ومساعدتهم على إدارة عبء العمل المشترك والاستجابة بشكل إيجابي وبناء للاعتراضات والنزاعات والمساعدة في إدارة توقعات عميلك.
يمكنك البحث واستكشاف لغات برمجة مختلفة عبر الإنترنت من خلال استخدام بيئات التطوير الافتراضية. تتيح لك هذه البيئات تحديد لغة معينة وإدخال بعض الأكواد الأساسية للبرنامج ثم تنفيذها.
البنى والتقنيات وتنفيذها بلغات مختلفة
- بناءات لغات البرمجة هي اللبنات الأساسية المستخدمة لإنشاء برنامج.
- ستستخدمها بطرق مختلفة وتطبق تقنيات متنوعة لحل المشكلات التي تُعطى لك.
- شيء واحد ستكتشفه في وقت مبكر جداً هو أن العديد من البنى والتقنيات شائعة عبر عدد من اللغات، وهو ما يعني إمكانية الاستفادة من معرفتك من معرفتك بلغة في استخدام لغات أخرى.
- تم استخدام عينات من الأكواد من عدد من لغات البرمجة الشهيرة لمساعدتك في مقارنة وتباين بنياتها وتقنياتها.
- ومع ذلك، تم كتابة عينات الأكواد الأكبر في هذه الوحدة بلغة Microsoft C#، وهي لغة شائعة جداً في مجال تطوير البرمجيات.
- مع تقدم مهاراتك، ستجد أنه من السهل نسبياً تحويل هذه العينات البرمجية إلى لغة هدف أخرى.
كلمات الأوامر
- مفهوم الكلمات المحجوزة (أو الأوامر) هو في صميم معظم لغات البرمجة.
- لا يمكن للمبرمج استخدام هذه الكلمات المحجوزة لتسمية الأشياء (انظر المعرفات).
- بدلاً من ذلك، يتم استخدامها لأمر إجراء معين، مثل 'فتح ملف'، 'مسح الشاشة' أو 'وضع نص على الشاشة'. يمكن أن تختلف كمية الكلمات المحجوزة والغرض منها اختلافاً كبيراً بين لغات البرمجة المختلفة، ولكن عندما تصبح أكثر خبرة كمطور، ستبدأ في تحديد المفاهيم المتكررة.
موضوعات ذات صلة
يتم عرض قائمة الكلمات المحجوزة لـ Java في الوحدة 7: تطوير تطبيقات الأجهزة المحمولة.
المعرفات
المعرف هو اسم يسهل على المبرمجين استخدامه ويمثل كمية مخزنة في ذاكرة الوصول العشوائي للحاسوب. تُستخدم أنواع عديدة من المعرفات في البرامج، ولكن بعض الأنواع الأكثر شيوعاً هي:
- ثابت - هذا معرف يمثل قيمة لن تتغير في أثناء تشغيل البرنامج.
- متغير - هذا معرف يمثل قيمة قد تتغير في أثناء تشغيل البرنامج.
- على سبيل المثال، عندما يقوم شخص بتسجيل الدخول إلى برنامج، يتم عادةً تخزين اسمه وكلمة المرور كمتغيرات، حيث ستكون هذه التفاصيل مختلفة لكل مستخدم.
- ومع ذلك، يجب على البرنامج الذي يحسب سعر تلفزيون جديد في ماكينة تسجيل النقد الإلكترونية في المتجر أن يضمن إضافة معدل أي ضريبة مبيعات حالية إلى السعر.
- تختلف ضرائب المبيعات في البلدان حول العالم، ولكن الطريقة التي تُدار بها في البرنامج هي نفسها.
- لن تتغير هذه القيمة مع كل عملية بيع، لذا يمكن تعيينها كقيمة ثابتة.
من أجل إنشاء (أو إعلان) ثابت أو متغير، يجب عليك تزويد لغة البرمجة بشيئين:
- اسم
- نوع بيانات.
- يجب عليك دائماً اختيار اسم معقول وهادف.
- على سبيل المثال، سيكون اسم المتغير الجيد لتخزين اسم المستخدم هو 'username'. لا يمكن استخدام بعض الأسماء لأنها محجوزة من قبل اللغة لاستخدام معين، عادة لأنها كلمة أمر.
- تختلف هذه الكلمات المحجوزة بين لغات البرمجة المختلفة، لذا كن حذراً.
البرمجة
- هناك العديد من اصطلاحات التسمية المختلفة المستخدمة في البرمجة.
- يتم كتابة الرمز الأول من كل كلمة تالية برمز حرف إنجليزي كبير (CamelCase) أو استخدام رمز ربط الكلمات برمز تسطير سفلي (snake_case).
- كلاهما ربما الأكثر شيوعاً في البرمجة الحديثة، على سبيل المثال إذا أردنا تخزين عمر المستخدم بالسنوات (كعدد صحيح أو عدد كامل) في #C:
| الجمل المتصلة | int userAge; | الكلمة الأولى بحروف صغيرة. يتم كتابة الرمز الأول من كل كلمة تالية برمز حرف إنجليزي كبير. |
|---|---|---|
| snake_case | int user_age; | كل الكلمات بحروف صغيرة. يتم ربط الكلمات برمز تسطير سفلي. |
ينطبق مفهوم المتغيرات المحلية والعالمية أيضاً على تطوير تطبيقات الأجهزة المحمولة، كما هو موضح في الوحدة 7: تطوير تطبيقات الأجهزة المحمولة.
- تحتوي معظم لغات البرمجة أيضاً على مفهوم المتغيرات المحلية والعالمية.
- أسهل طريقة للتفكير في هذا هي تذكر أن المتغيرات العالمية يمكن استخدامها في أي مكان في كود البرنامج الخاص بك.
- المتغيرات المحلية تقتصر على الاستخدام في كتلة الكود (مثل الدالة) التي تم التصريح بها فيها.
أنواع البيانات
- تدعم جميع لغات البرمجة تقريباً مفهوم البيانات.
- يتم استخدام نوع البيانات لتحديد نوع القيمة التي يمكن للمتغير أو الثابت تخزينها، والعمليات التي يمكن إجراؤها عليها وسلوكها داخل البرنامج.
- تقدم معظم لغات البرمجة العديد من أنواع البيانات المختلفة للمبرمج لاستخدامها.
الأنواع الأكثر شيوعاً من البيانات المستخدمة هي:
- رمز - هذا يخزن رمزاً واحداً (الرمز هو رمز أبجدي أو رقم أو مساحة فارغة أو علامة ترقيم)
- سلسلة - يخزن مجموعة من الرموز
- عدد صحيح - يخزن رقماً كاملاً (أي رقم دون منازل عشرية)
- حقيقي (يُطلق عليه أحياناً النقطة العائمة) - يخزن هذا رقماً يحتوي على منازل عشرية
- منطقية (Boolean) - هذه قيمة منطقية تخزن إما (1) true وإما (0) false
نظراً لأن هذه الأنواع من البيانات شائعة جداً، فمن الممكن مقارنة تنفيذها في لغات البرمجة المختلفة، كما هو موضح في الجدول 4.4 في الصفحة الآتية.
توصف بعض اللغات بأنها كتابة قوية وأخرى بأنها كتابة ضعيفة (أو فضفاضة). هذا يُحدث فرقاً جوهرياً في رسمية لغة البرمجة. تتطلب لغات البرمجة ذات النوع القوي أن تكون البيانات وأنواع البيانات متسقة عند استخدامها.
- على سبيل المثال، في جافا (Java)، إذا تم إعلان متغير كعدد صحيح، فيجب استخدامه فقط لتخزين المتغيرات الصحيحة، وإلا قد تحدث أخطاء.
- ومع ذلك، فإن لغة C غير صارمة في تحديد الأنواع: حيث ستقوم البيانات تلقائياً بتحويل البيانات تلقائياً إلى النوع الصحيح الذي يتوقعه المتغير دون الحاجة إلى أن يضيف المبرمج أي كود محدد للقيام بذلك.
- هذه ميزة مناسبة، لكنها يمكن أن تؤدي إلى نتائج غير متوقعة.
الجمل
الجمل هي الجانب الأساسي للعديد من لغات البرمجة. إنها تحدد الإجراءات الأساسية التي يمكن تنفيذها وغالباً ما يجمعون بين عدد من تراكيب اللغة.
تظهر أمثلة لأنواع الجمل الأساسية مع مكافئات لغوية مباشرة في الجدول 4.5 في الصفحة الآتية. هناك العديد من أوجه التشابه بينهما. على سبيل المثال، كلها حساسة لحالة الأحرف، ولكن فقط بعضها يتطلب فواصل منقوطة لتحديد نهاية الجملة.
نصائح
كن حذراً عند التعامل مع أنواع البيانات. فكر دائماً في البيانات التي تريد تخزينها ونوع البيانات الأنسب للاستخدام. إن يؤدي الخطأ في نوع البيانات إلى مشاكل مثل اقتطاع المنازل العشرية والتقريب غير الصحيح، وكلاهما قد يكون كارثياً في تطبيق يتعامل مع المال.
منطقية (Boolean) - شكل من أشكال البيانات المنطقية سُميت على اسم عالم الرياضيات في القرن التاسع عشر جورج بول. حساس لحالة الأحرف - عندما تتعرف لغة برمجة على الفرق بين رموز الأحرف الإنجليزية الكبيرة والصغيرة، مثل "A" و"a". على سبيل المثال، إذا كانت كلمة الأمر برمز من رموز أحرف إنجليزية صغيرة، فسيحدث خطأ إذا تمت كتابتها بشكل غير متوقع برموز أحرف إنجليزية كبيرة. تفضل معظم لغات البرمجة الحديثة رموز الأحرف الإنجليزية الصغيرة.
البرمجة
| الجدول 4.4 إعلانات المتغيرات باستخدام أنواع بيانات مختلفة في لغات برمجة مختلفة | |||
|---|---|---|---|
| ما يجب الإعلان عنه... | C | C++ | Microsoft Visual Basic .NET |
| Initial (character) | char initial; | char initial; | Dim initial As Char |
| Username (string) | char username[20]; | string username; | Dim username As String |
| Age (integer) | int age; | int age; | Dim age As Integer |
| Price (real) | float price; | float price; | Dim price As Double |
| Valid (Boolean) | Not available | bool valid; | Dim valid As Boolean |
| الجدول 4.5 أنواع الجمل، أغراضها وتعبيراتها في لغات مختلفة | ||||
|---|---|---|---|---|
| نوع الجملة | الغرض | Microsoft C# | C++ | Ruby |
| التعيين (Assignment) | تخزين قيمة في معرف (متغير أو ثابت). | userAge = 17; | userAge = 17; | userAge = 17 |
| المدخلات (Input) | السماح بإدخال المستخدم، عادة من لوحة المفاتيح أو ملف. | userName = Console.ReadLine(); | cin >> userName; | userName = gets |
| المخرجات (Output) | إنشاء مخرجات للمستخدم، عادةً إلى الشاشة أو الطابعة أو مكبر الصوت أو الملف وما إلى ذلك. | Console.WriteLine("Hello"); | cout << "Hello"; | puts "Hello" |
التسلسل - إجراء تلو الآخر، لا شيء مفقود، لا شيء متكرر. الاختيار - الإجراءات المختارة بناءً على الحالة المقدمة والتي يتم تقييمها على أنها صحيحة أو خاطئة. التكرار - عملية متكررة، عادة ما يتم القيام بشيء ما بشكل متكرر حتى تقترب من الحل قدر الإمكان.
يشبه كود #C للاختيارات والتكرارات إلى حد كبير أمثلة Java الموجودة في الوحدة 7: تطوير تطبيقات الأجهزة المحمولة.
بنى التحكم
عادةً ما يتم بناء الخوارزميات التي تتحكم في البرامج باستخدام مزيج من ثلاثة كتل بناء برمجية أساسية تُعرف بهياكل التحكم. هياكل التحكم هذه هي التسلسل والاختيار والتكرار.
العوامل المنطقية
- العوامل هي رموز خاصة تستخدم لأداء مهام خاصة في البرنامج.
- تعمل العمليات المنطقية مثل "And" و"Or" و"Not" وما إلى ذلك وفقاً لمبادئ منطقية، ويتم استخدامها لدمج الشروط في عبارات 'if' والحلقات المختلفة.
- على سبيل المثال، يظهر العامل المنطقي 'And' (&&) في مثال حالة الجملة 'if' الموضح في الكود الزائف في الشكل 4.10 في الصفحة الآتية.
- في هذا المثال، سيحصل العميل على شحن مجاني إذا كانت قيمة طلبه أكثر من مبلغ محدد وإذا كان عنوانه يبعد أقل من 25 كيلومتراً. يجب أن يكون كلا الجزأين من الشرط صحيحين للتأهل للشحن المجاني.
- يجب توخي الحذر عند الانتقال بين اللغات.
- على سبيل المثال، في بعض اللغات (مثل Visual Basic .NET) يتم استخدام علامة '=' الواحدة لاختبار المساواة، بينما في لغات أخرى (PHP، C++، C#، Java) يتم استخدام '==' بدلاً من ذلك.
- عليك استغراق وقتاً في فحص الأنواع المختلفة من العوامل المتاحة في لغة البرمجة المستهدفة.
البرمجة
`` IF customerOrder > 50 and deliveryDistance < 26 THEN Output confirmation of discount message `` الشكل 4.10 عينة من الكود الزائف
يتم توفير قائمة مفصلة لمشغلات Java الشائعة (بما في ذلك الأنواع المنطقية) في الوحدة 7: تطوير تطبيقات الأجهزة المحمولة.
الروتينات الفرعية والوظائف والإجراءات
- الروتينات الفرعية والدوال والإجراءات هي مصطلحات تُستخدم في البرمجة الإجرائية، حيث يتم تقسيم الكود إلى عدد من الوحدات المختلفة.
- قد يُطلق على كل وحدة اسم روتين فرعي أو دالة أو إجراء بحسب لغة البرمجة المستخدمة.
- كل وحدة مسؤولة عن أداء مهمة واحدة وعادة ما تكون بين 5 و50 سطراً من الكود في الطول.
يوضح كود #C الموضح في الشكل 4.11 استخدام دالة معرفة من قبل المبرمج لحساب مساحة الدائرة عند إعطاء نصف قطر محدد.

```c class Program { const float PI = 3.14f;
static void Main(string[] args) { float radius; float area;
radius = 10.0f; area = calcAreaCircle(radius); // function call
Console.WriteLine("Area of circle is {0}", area); Console.ReadKey(); }
// function declaration public static float calcAreaCircle(float radius) { return PI radius radius; } } ```
الشكل 4.11 كود لحساب مساحة الدائرة بمعلومية نصف القطر
- يعني استخدام هذه الوحدات أن الكود يميل إلى أن يكون أسهل في الكتابة والقراءة وتصحيح الأخطاء.
- عادةً ما يمكن إعادة استخدام الكود المكتوب بهذه الطريقة من خلال حلول متعددة ويسمح بتقسيم تطبيق واحد والعمل عليه من قبل عدة مبرمجين في الوقت نفسه، ما يعني أن وقت التطوير يمكن تقليله.
هيكل البيانات
- هيكل البيانات هو تقنية تُستخدم لجمع وتنظيم عناصر البيانات في هيكل رسمي، ما يساعد على معالجة البيانات بكفاءة.
- على الرغم من أن توافر هياكل معينة يختلف بين لغات البرمجة المختلفة، إلا أن العديد منها شائع جداً. تشمل هياكل البيانات الشائعة هذه السلسلة، والمصفوفة (أحادية وثنائية الأبعاد)، والمكدس، والانتظار والسجل.
تحتوي جميع لغات البرمجة تقريباً على دالات مكتبة يمكن للمبرمجين استخدامها عند حل المشكلات المعقدة. تسمح دالات المكتبة للمبرمج بأداء المهام الشائعة ولكن الحاسمة على البيانات، مثل تنسيق مظهرها أو العثور على طول السلسلة أو مربع الرقم. يمكنك أيضاً تنزيل وتثبيت دالات الطرف الثالث من المواقع الإلكترونية ذات السمعة الطيبة لتوسيع لغات البرمجة.
البرمجة
- أحياناً، يمكن البرمجة بشكل أكثر كفاءة من خلال اختيار واستخدام هياكل بيانات محددة، خاصة عندما يتم دمج ذلك مع هياكل التحكم في التكرار (الحلقات).
- يصبح مطورو البرمجيات على دراية بهياكل البيانات المختلفة في أثناء تعلمهم لغات البرمجة المختلفة، ويرد في ما يأتي بعض هياكل البيانات الأكثر شيوعاً.
النص (أو السلسلة)
- هذه بنية بيانات تُستخدم لتخزين مجموعة من الرموز إذ لا يتطلب الرمز الواحد على الأقل بايت واحد من ذاكرة الوصول العشوائي.
- قد تكون السلاسل ذات 'طول ثابت' (على سبيل المثال، تحتوي فقط على عشرة رموز).
- بدلاً من ذلك، يمكنهم استخدام رمز "terminator" خاص لتحديد نهايتهم.
- قد يعني هذا أن سلسلة تتطلب رمز إضافي، ولكنه يسمح لها بأن تكون ذات أطوال مرنة.
يمكن الوصول إلى كل رمز فردي في سلسلة باستخدام الفهرس الموضعي الخاص به. على سبيل المثال، في الجدول 4.6، الكوكب[2] هو 'r'. لاحظ أن فهرس الموضع الأول هو دائماً 0.
| الجدول 4.6 لكل رمز في سلسلة يوجد فهرس موضعي | ||||||
|---|---|---|---|---|---|---|
| البيئة | 0 | 1 | 2 | 3 | 4 | 5 |
| إ | r | t | h | # |
يتم توضيح هذا المثال في سلاسل #C في الشكل 4.12.

```c string Planet; Planet = "Earth";
Console.WriteLine("Whole string is {0}", Planet); Console.WriteLine("3rd character is {0}", Planet[2]); ```
الشكل 4.12 العمل مع سلاسل #C
تستخدم بعض اللغات مصفوفة ثابتة أحادية البعد من الرموز لمحاكاة سلسلة نصية، بدلاً من استخدام نوع بيانات سلسلة نصية محدد. ومع ذلك، فإن استخدامها مشابه جداً.
- تُستخدم السلاسل عادةً لتخزين النصوص البسيطة التي يدخلها المستخدم، مثل اسم المستخدم.
- قد تُستخدم السلاسل أيضاً لإدخال نصوص أكثر تعقيداً للمعالجة، مثل محتوى البريد الإلكتروني أو الرسائل الفورية أو التغريدات.
- يُستخدم مصطلح 'substring' لوصف جزء من سلسلة أكبر، على سبيل المثال 'Ear' هو جزء من 'Earth'.
مصفوفة (أحادية البعد)
في العادة، هذا هيكل بيانات ثابت، ما يعني أنها ذات حجم ثابت. ومع ذلك، فإن لغات البرمجة الحديثة تكون عادةً أكثر مرونة وتسمح بتغيير حجم المصفوفة.
عادةً ما يمكن للمصفوفة تخزين نوع واحد فقط من البيانات، ويُقبل أي نوع من البيانات، مثل الأعداد الصحيحة والرموز والقيم المنطقية.
إذا أردنا تخزين سبع درجات حرارة قصوى يومية بالدرجة المئوية لمحطة الطقس المحلية، فسنقوم بإنشاء مصفوفة من سبعة أرقام عشرية، كما هو موضح في الجدول 4.7.
| الجدول 4.7 مصفوفة أحادية البعد من سبعة أرقام عشرية | |||||||
|---|---|---|---|---|---|---|---|
| Temperature | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| 12.50 | 10.45 | 12.30 | 14.60 | 17.70 | 11.20 | 12.50 |
البرمجة
- يبدو أن هذا يشبه السلسلة.
- في الواقع، يمكنك اعتبار السلسلة مصفوفة من الرموز، وكما هو الحال مع السلسلة، من الممكن الوصول إلى العناصر الفردية أو العناصر في المصفوفة باستخدام الفهرس المطلوب.
- على سبيل المثال، [4] Temperature هي 17.70. يوضح الشكل 4.13 إنشاء هذه المصفوفة البسيطة أحادية البعد والوصول إليها في #C.

```c //create the array of decimal temperatures float[] temperature = new float[7];
//initialise each element temperature[0] = 12.50f; temperature[1] = 10.45f; temperature[2] = 12.30f; temperature[4] = 14.60f; temperature[4] = 17.70f; temperature[5] = 11.20f; temperature[6] = 12.50f;
//select Thursday's and output it Console.WriteLine("Temperature on Thursday is {0} degrees C", temperature[4]);
//wait for keypress to continue Console.ReadLine(); ```
الشكل 4.13 مصفوفة أحادية الأبعاد في #C
مصفوفة (ثنائية الأبعاد)
- مصفوفة ثنائية الأبعاد تشبه المصفوفة أحادية الأبعاد، لكنها يمكن أن تخزن عدة صفوف من البيانات.
- تخيل أننا ما زلنا نريد تخزين سبع درجات حرارة قصوى يومية بالدرجة المئوية لمحطة طقس محلية، ولكننا نحتاج إلى القيام بذلك على مدار ثلاثة أسابيع متتالية.
- في هذه الحالة، سنقوم بإنشاء مصفوفة ثنائية الأبعاد مكونة من سبعة في ثلاثة أرقام عشرية، كما هو موضح في الجدول 4.8.
| الجدول 4.8 مصفوفة ثنائية الأبعاد | |||||||
|---|---|---|---|---|---|---|---|
| Temperature | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| 0 | 12.50 | 10.45 | 12.30 | 14.60 | 17.70 | 11.20 | 12.50 |
| 1 | 12.22 | 11.00 | 10.00 | 20.00 | 21.00 | 14.00 | 15.50 |
| 2 | 13.00 | 14.00 | 14.50 | 14.60 | 12.30 | 14.00 | 14.60 |
- كما كان من قبل، من الممكن الوصول إلى العناصر الفردية أو العناصر في المصفوفة باستخدام كلا المؤشرين، على سبيل المثال، [1][4] Temperature هي القيمة الموجودة حيث يلتقي العمود 4 والصف 1: 21.00. من الممكن استخدام أوامر أعلى للأبعاد.
- يمكن استخدام مصفوفة ثلاثية الأبعاد لتخزين 21 درجة حرارة قمنا بتخزينها لكل من محطات الطقس الخمس المختلفة.
- يمكن تقسيم المصفوفات ودمجها.
- في بعض اللغات، يُطلق على هذا اسم تفجير المصفوفات ودمج المصفوفات.
- في اللغات التي يتم فيها تخزين السلاسل بوصفها صفوفاً من الرموز، فإن استخراج السلاسل الفرعية ودمج السلاسل المختلفة هي استخدامات عملية لهذه الأنواع من العمليات.
- راجع معالجة السلسلة في الصفحة 27 لمزيد من المعلومات حول استخراج السلسلة الفرعية وتسلسل السلسلة.
قد يختلف الترتيب الفعلي للفهارس بين لغات البرمجة المختلفة. القاعدة العامة هي أن ترتيب الوصول إلى عنصر سيعكس ترتيب الإعلان الخاص بالمصفوفة، أي لا يمكنك الوصول إلى عنصر في [1][4] Temperature لأن هذه المؤشرات لا تعكس ترتيب الإعلان الخاص بالمصفوفة.
الوحدة 4 البرمجة
نتاج التعلم أ
المصطلح الرئيس
LIFO - يعني هذا "آخر من يدخل، أول من يخرج" ويصف كيفية معالجة البيانات في بعض هياكل البيانات. هذا يعني أن العنصر الأخير من البيانات الذي تم الضغط عليه هو أيضًا العنصر الأول من البيانات الذي يتم سحبه مرة أخرى.
المكدس (STACK)
يُعرف المكدس بأنه هيكل بيانات يعتمد على طريقة LIFO. لديها عمليتان أساسيتان: الدفع والسحب (يُعرف أحيانًا بالدفع والإخراج). المكدسات جزء أساسي من نظام تشغيل أي منصة حاسوبية، وهي أداة شائعة يستخدمها المبرمج عند تطوير الحلول. يتم عرض المكدسات بشكل عمودي، كما هو موضح في الشكل 4.14.

يمكنك رؤية عملية المكدس في #C في الشكل {4.15}.
```csharp using System; using System.Collections;
namespace stack { class Program { static void Main(string[] args) { char data; //single item of stack data Stack st = new Stack(); //our stack
//push onto stack st.Push('A'); st.Push('B'); st.Push('C');
//show the stack Console.WriteLine("Current stack: "); foreach (char ch in st) { Console.WriteLine(ch); }
//remove from stack top - it should be "C" data = (char)st.Pop(); Console.WriteLine("The popped value: {0}", data);
//push onto stack again st.Push('D');
//show the changed stack Console.WriteLine("Current stack: "); foreach (char ch in st) { Console.WriteLine(ch); }
//wait for keypress to continue Console.ReadKey(); } } } ```

نتاج التعلم أ
الشكل 4.15 متابعة
المصطلحات الرئيسة
الخوارزميات المتكررة - جزء من كود البرمجة الذي ينفذ نفسه بشكل متكرر حتى يصل إلى حالة نهائية حيث يمكن إرجاع النتيجة المحسوبة. FIFO - هذا يعني "أول من يدخل، أول من يخرج". هذا يعني أن العنصر الأول من البيانات المضافة هو أيضًا العنصر الأول من البيانات الذي يمكن إزالته.
- على عكس المصفوفة، حيث يمكن الوصول إلى العناصر بأي ترتيب، يمكن الوصول إلى المكدس فقط بطريقة آخر ما يدخل، أول ما يخرج.
- يمكن أن يكون هذا مفيدًا بشكل خاص عند معالجة الخوارزميات المتكررة.
- غالبًا ما يتم تضمين المكدسات في مكتبة لغة البرمجة، مع جميع الأساليب اللازمة لمعالجتها.
قائمة الانتظار (FIFO)
على عكس المكدس، تُعرف قائمة الانتظار البسيطة باسم بنية بيانات FIFO ولديها عمليتان أساسيتان:
- إضافة (إلى قائمة الانتظار) أو "إدراج"
- إزالة (من بداية قائمة الانتظار) أو "إلغاء قائمة الانتظار".
فقط البيانات الموجودة في مقدمة قائمة الانتظار يمكن الوصول إليها وإزالتها. مثل المكدسات، تُعتبر قوائم الانتظار جزءًا حيويًا من نظام تشغيل أي منصة حاسوبية. على سبيل المثال، قد تكون على دراية بمفهوم قائمة انتظار الطابعة. بالنسبة للمبرمج، فهي طريقة ممتازة لإدارة معالجة المهام. يتم عرض قوائم الانتظار بشكل أفقي كما هو موضح في الشكل 4.16.



```csharp using System; using System.Collections; using System.Linq; using System.Text;
namespace queue { class Program { static void Main(string[] args) { char data; //single item of queue data Queue q = new Queue(); //our queue //add to queue q.Enqueue('A'); q.Enqueue('B'); q.Enqueue('C');
//show the queue Console.WriteLine("Current queue: "); foreach (char ch in q) { Console.Write(ch + " "); }
//remove from head - it should be 'A' data = (char)q.Dequeue(); Console.WriteLine("The removed value: {0}", data);
//add to queue again q.Enqueue('D');
//show the changed queue Console.WriteLine("Current queue: "); foreach (char ch in q) { Console.Write(ch + " "); }
الشكل 4.17 متابعة
السجل (أو الهيكل)
السجل هو مفهوم مشابه للمصفوفة. ومع ذلك، فإنه يختلف لأنه يمكنه تخزين مزيج من أنواع البيانات داخل هيكله. على سبيل المثال، يمكن استخدامه لتخزين التفاصيل، كما هو موضح في الجدول 4.9.
الجدول 4.9 سجل تفاصيل الطلاب
| الطالب | StudentID | الاسم الأول: | اللقب | العمر | مسجل |
|---|---|---|---|---|---|
| 2001 | بريستون | مايلا | 21 | صواب |
في هذا المثال، يتم تخزين "رقم تعريف الطالب" و"عمره" كأعداد صحيحة، و"الاسم الأول" و"اسم العائلة" كسلاسل نصية و"مسجل" كقيمة منطقية. يظهر تنفيذ بسيط لهيكل سجل في #C في الشكل 4.18 في الصفحة الآتية.
22 الوحدة 4 البرمجة
نتاج التعلم أ
```csharp using System; using System.Linq; using System.Text;
namespace ConsoleApplication1 { public class testStructure { //create the record structure struct Student { public int StudentID; public string Surname; public string Forename; public int Age; public bool Enrolled; };
public static void Main(string[] args) { Student mystudent; //declare mystudent of type Student structure
//initialise the elements in the record structure mystudent.StudentID = 2001; mystudent.Surname = "Preston"; mystudent.Forename = "Myla"; mystudent.Age = 21; mystudent.Enrolled = true;
//print the data in the record structure Console.WriteLine("ID : {0}", mystudent.StudentID); Console.WriteLine("Surname : {0}", mystudent.Surname); Console.WriteLine("Firstname : {0}", mystudent.Forename); Console.WriteLine("Age : {0}", mystudent.Age); Console.WriteLine("Enrolled : {0}", mystudent.Enrolled);

يمكنك أيضًا إنشاء مصفوفة من الهياكل لتخزين مثيلات من سجل ما. لهذا السبب، يمكن اعتبار السجل (أو "البنية") كأساس لتخزين السجلات البسيطة في جدول بيانات أو ملف بيانات ثنائي.
معالجة السلاسل
- على الرغم من أن السلاسل هي ببساطة مجموعة من الرموز، إلا أنها قد تحتاج إلى معالجة. يُعرف هذا العمل عادةً بين المبرمجين بمعالجة السلاسل.
- غالبًا ما يحتاج المبرمجون إلى تنفيذ عمليات معينة على السلاسل النصية ومعظم لغات البرمجة عالية المستوى تحتوي على دوال مكتبية متخصصة للمساعدة.
- في ما يأتي بعض المهام الشائعة، مع أمثلة عملية على كود #C توضح تنفيذها.
- وظائف السلاسل النصية المماثلة موجودة في العديد من لغات البرمجة الأخرى.
23 الوحدة 4 البرمجة
إيجاد طول سلسلة نصية بعدد الرموز
في الشكل 4.19، يتم استخدام خاصية الطول لكائن السلسلة النصية 'month' للوصول إلى عدد الرموز في السلسلة.
```csharp string month = "January"; int length;
length = month.Length; Console.WriteLine("{0} is {1} characters long", month, length); ```

فحص الرموز الفردية
في الشكل 4.20، سيكون الناتج هو 'الرمز 3 من كلمة January هو 'u'، لأن 'u' هو الرمز الموجود في الموضع 3.
```csharp string month = "January"; char singleLetter; int whichLetter = 3;
singleLetter = month[whichLetter]; Console.WriteLine("Character {0} of {1} is {2}", whichLetter, month, singleLetter); ```

استخراج سلسلة فرعية
في الشكل 4.21، سيكون الناتج هو 'Substring is ua'. هذا هو الناتج لأننا نبدأ الاستخراج عند الموضع 3 ('u')، ونريد استخراج الرمزين الآتيين، بما في ذلك ذلك الأول ('ua').
```csharp string month = "January"; string subString; int startPos = 3; int howMany = 2;
subString = month.Substring(startPos, howMany); Console.WriteLine("Substring is {0}", subString); ```

دمج سلسلتين
الدمج (Concatenation) هو عملية ضم الأشياء معًا، ويُستخدم في البرمجة لوصف عملية ضم سلاسل أقصر معًا لتشكيل سلاسل أطول، على سبيل المثال "Hello" و"World!" لتشكيل "Hello World!". في الشكل 4.22 في الصفحة الآتية، نقوم بدمج سلسلتين: 'January' و' has 31 days'. الناتج سيكون 'Joined string is January has 31 days'. هذا هو الناتج لأننا نستخدم عامل الدمج '+' لربط السلسلتين معًا. تتوفر تقنيات أخرى في #C، ولكن ربما يكون هذا هو الأبسط في الاستخدام.
24 الوحدة 4 البرمجة
```csharp string month = "January"; string saying = " has 31 days."; string combined;
combined = month + saying; Console.WriteLine("Joined string is {0}", combined); ```

هذه معاينة من الدرس. أكمل القراءة في التطبيق