بسم الله الرحمن الرحيم

اهلا بكم مره اخري في الدرس الثالث من اساسيات البرمجة
انا اعتبر هذه السلسلة هي البداية ﻷي مبرمج او بمعني آخر في هذه السلسلة نحن نعطي نظرة عامة شامله لكل مفاهيم و توضيح مجال البرمجة للمبتدئين او من لا يفقهون شئ في البرمجة
ناقشنا في الدروس السابقة :
الدرس الأول مفهوم البرمجة و فكرة عمل البرمجة والأهداف من تعلمها ونماذج البرمجة ويمكن الإطلاع عليه من هنا
الدرس الثاني احد نماذج البرمجة وهو البرمجة المنظمة ويمكن الإطلاع عليه من هنا 
نتجه اﻷن الي درس اليوم 

Lecture 3 :
سنناقش اليوم نموذج جديد من نماذج البرمجة الإلزامية
 imperative programming
نموذج البرمجة الإجرائية يتميز هذا النموذج بأنه يوفر للبرنامج الخطوات اللازمة لكي يصل الي ما يريده
وهي من اكثر واقدم الطرق انتشارا وهي تعد الطريقة البديهية في التفكير وان مفاهيم هذا النموذج تعتمد عليها اغلب اللغات الحديثة
بمعني آخر ما سنناقشه في هذا الدرس سيستمر معنا مدي الحياة

اولا المتغيرات : 
يحتاج المبرمج حاجه شديدة لعمل المتغيرات 
لان المتغيريعد من الأساسيات التي توجد في اي كود برمجي  ولا يوجد غالبا اي كود يخلوا من المتغيرات الا في الحالات النادرة 
فالمتغيرات توفر لنا طرق للتعامل مع البيانات وتوفر لنا طرق للتخزين بيانات للتعامل معها في وقت اخر 
هناك العديد من المتغيرات و يتغير نوع المتغير تبعا لعدد القيم التي يأخذها ويوجد تصنيف اخر هل المتغير يمكن تغيير قيمته ام لا يمكن تغيير قيمته
هناك متغير احادي القيمة وهو متغير يتم اعطاء له قيمة واحدة value
مثال : x=5
قيمة المتغير x تساوي قيمة واحدة وهي 5 
قيمة المتغير x غير ثابته و يمكن ان تتغير في فترة عمل البرنامج 
فمثلا يمكن ان تبدا x بقيمة 5 و تصل في نهاية البرنامج الي 10 
ويمكن ايضا جعل قيمة المتغير x ثابته لا تتغير مع فترة عمل البرنامج
توجد عدة طرق لكتابة المتغيرات في لغات البرمجة 
الطريقة الأولي : 
___1__   __2__  __3__ = __4__
فالطريقة الأولي هي تعريف المتغير بكافة تفاصيله 
فيتم تعريف المتغير هل يمكن تغييره ام غير قابل للتغيير ويتم تحديد هذا الخيار في الخانه رقم 1
ثم تحديد نوع البيانات المدخلة للمتغير اذا كانت رقم او نص او رقم عشري والخ
ويتم تحديد هذا الأمر في الخانة رقم 2 
الخانة رقم 3 يتم كتابة فيها اسم المتغير وهناك معايير محددة لكتابة اسماءالمتغيرات سنناقشها لاحقا
الخانة الرابعة والأخيرة ويتم ادخال فيها قيمة المتغير 
مثال 
const int var1 = 3;
static int var2 = 4;
هذا المثال يستخدم في لغة C حيث المتغير 1 هو من نوع const وهذا النوع غير قابل للتغير في فترة عمل البرنامج وقيمة المتغير الأول 3 و هو يأخذ بيانات من نوع رقم
المتغير 2 هو من نوع static وهذا النوع قابل للتغير في فترة عمل البرنامج وقيمة المتغير 4 وهو يأخذ بيانات من نوع رقم 

هناك بعض اللغات قامت بتبسيط هذا الأمر حيث لا يتم ادخال نوع المتغير وقابلية التغيير للمتغير
كمثال لغة python
يكتب المتغير في هذه اللغة البسيطة بهذه الطريقة 
__1__ = __2__
في هذه الطريقة يتم كتابة اسم المتغير في الخانة الأولي 
واعطاء قيمة المتغير في الخانة الثانية مهما كان نوع البيانات نص رقم صفر او واحد رقم عشري لا يوجد خيار محدد 
x=10 , c="bilal" , v=3.5
فكما نلاحظ الأمر بسيط جدا في لغة python ولكننا سنتعامل مع هذه السلسلة مع لغة C  وقمت بوضع هذا مثال بلغة python للإيضاح فقط
مثال علي التعامل مع المتغيرات عن طريق لغة C

#include <stdio.h>
int main()
{
    static int x = 5;
    printf("the firist value is : %d",x);
    x=10;
    printf("\nthe second value is : %d",x);
    return 0;
}
تجربة الكود 

ففي البداية انشأنا متغير واعطينا له قابلية التغيير static و نوع البيانات رقم و اسم المتغير x وقيمة المتغير 5
ثم طباعة المتغير الأول 
ثم التعديل علي المتغير وجعل قيمته تساوي 10 و طباعة قيمة المتغير مره اخري
حسنا ماذا لو قمنا بتغيير static الي const في المتغير دعنا نشاهد النتيجة

حسنا ظهر لنا خطأ برمجي ينص الخطأ ان متغير x للقراءة فقط وغير قابل للتعديل عليه وهذا يوضح مفهوم المتغير القابل للتعديل و الغير قابل للتعديل
حسنا بالتأكيد يأتي في بالنا سؤال ما الفائدة من انشاء متغير قيمته لاتتغير 
حسنا نستخدم هذا النوع عند استخدام حقائق مثل قيمة pi او قيمة رياضية ثابته

هناك نوع آخر من المتغيرات يمكنه اخذ اكثر من فيمة مثل المصفوفات Arrays و القواميس dictionary / Hash
نبدا بالمصفوفات :
المصفوفات هي نوع من المتغيرات يمكننا من عمل متغير يأخذ اكثر من قيمة 
__1__ __2__ __3__[__4__] = {__,__5,__}
يتم عمل المصفوفات بهذه الطريقة 
يتم كتابة في الخانة الأولي قابلية التعديل اما ان تكون static او const وفي حالة لم يتم كتابة الخانة رقم 1 يتم تلقائيا تعريف المتغير انه قابل للتغيير static
في الخانة الثانية يتم تحديد نوع البيانات المدخلة رقم او نص او رقم عشري الخ 
والخانة الثالثة يوضع فيها اسم المصفوفة 
الخانة الرابعة يوضع فيها عدد عناصر المصفوفة 
تحديد عدد العناصر المصفوفة غير اجباري حيث يمكن عدم كتابة شئ في خانة الرابعة ويتم وضع عدد العناصر تلقائيا داخل خانة 4
ثم خانة 5 وهنا توضع قيم المصفوفة ويفصل بين كل متغير و آخر عن طريق  علامة ,
ولكي يتم استدعاء اي قيمة من داخل المصفوفة عن طريق
__1__[__2__]
حيث يوضع في الخانة الأولي اسم المصفوفة 
ويكتب في الخانة الثانية رقم العنصر الذي نريد استدعائ ه 
للمصفوفات عدة عمليات مثل اضافة عنصر حذف عنصر تعديل عنصر وسنناقش هذا الأمر في سلسلة تعلم C التي سنبدأ بها قريبا
الأهم في هذا الدرس فهم مفهوم Array في البرمجة وهذا هو المرجو من هذا الدرس 
حسنا دعنا نكمل درسنا 
سنقوم بعمل تجربة علي المصفوفات 
#include <stdio.h>
int main()
{
    static int Array[3]={1,2,3};
    printf("the firist value is : %d",Array[0]);
    printf("\nthe second value is : %d",Array[1]);
    printf("\nthe third value is : %d",Array[2]);
    return 0;
}
ولنشاهد التجربة في البداية قبل شرح فكرة عمل الكود

يتم ترتيب العناصر داخل المصفوفة حيث تبدا ترتيب العناصر من 0 الي آخر المصفوفة 
مثال : 
العنصر 1 يأخذ رقم 0
العنصر 2 يأخذ رقم 1
العنصر 3 يأخذ رقم 2
حسنا اذا اردنا تعديل عنصر داخل المصفوفة نقوم بكتابة اسم المصفوفة ورقم العنصر الذي نريد تغييره ثم القيمة الجديدة 
دعنا نجرب هذا الكود

سنقوم بعمل مصفوفة تحتوي علي 3 عناصر نقوم بعرض العناصر في البداية اعلم ان هذه الطريقة سيئة في عرض العناصر من ناحية الكود سنناقش في الدرس القادم طريقة لعرض المصفوفة في سطر واحد نعود لموضوعنا
بعد ان قمنا بعرض المصفوفة نأخذ قيمة من المتغير ونقوم بوضعها في المصفوفة مكان العنصر رقم 0 
ثم نعرض القيمة مره أخري 
لنري هذا في صورة لكي تتضح الفكرة

نتطرق الأن الي القواميس dictionary / hash
وهي احد المتغيرات التي تستقبل اكثر من قيمة 
تتميز هذا النوع من المتغيرات بأنه يتم اعطاء كل قيمة مفتاح يكون المفتاح بمثابة العنوان للقيمة 
فعندما نريد استدعاء قيمة يمكننا استدعائها عن طريق مفتاح القيمة

وهذا يكفي للقواميس لانها معقدة جدا وهذه السلسلة موجهه للمبتدئين 

ننطلق لمتغيرات القيمة الخالية 
وهي متغيرات يتم انشاءها ولكن لا يتم اسناد قيمة لها او يتم اسناد قيمة لها تساوي Null اي مثال توضيحي
static int x ;
static int x =Null;
وفي بعض الأحيان يتم اسناد قيمة 0 الي المتفيرة خالي القيمة 

نكتفي اليوم بهذا القدر اليوم
ناقشنا فيه تعريف نموذج البرمجة الإجرائية و فكرة المتغير داخل البرمجة وكيفية كتابة متغير والتعامل معه وانواع المتغيرات
سنكمل في الدرس القادم المتغيرات التي يمكنها ان تحدد مسار عمل البرنامج و سنتعرف علي الشروط والحلقات التكرارية بتوضيح اكبر من ناحية نموذج البرمجة الإجرائية 

تصميم : بلال حسان سعدي
تعليقات