السلام عليكم أصدقائي متتبعي دورة دراسة و تحليل الخوارزميات .
إن كنت عزيزي القارئ قد غفلت عن الدرس السابق و التمهيدي في هذه الدورة ، فيسعدنا اولا ان تطلع عليه عبر الرابط التالي ، ناقشنا في الدرس السابق ماهية الخوارزميات و الهدف منها و كيف سنستفيد منها في دوراتنا القادمة ، و فهمنا الهدف البرمجي من وراءها ، و الحمد لله لقيت هذه الدورة إستحسان مجموعة مهولة من القراء و المتابعين ، و لذلك ، قررنا ان نحاول تقديم هذه الدورة بشكل يومي ( او توفرت الظروف ) ، لذلك ، إحجز مكانك معنا في هذه الدورة ، و إربط حزام الأمان ، فنحن على وشك أن نأخذك في رحلة في عالم من المقالات المشروحة في عالم الخوارزميات بهذه الدورة المميزة .
نبذة عن درس اليوم :
في دورتنا هذه لمراجعة تحليل و دراسة الخوارزميات ، سنقود قطارة المعرفة هذا بين طيات هذا المجال ، و سنتعرف على كل جزء من أجزاء الخوارزميات على حدة في كل من مواضيعنا القادمة في هذا المجال ، في موضوعنا السابق ، تعرفنا على كينونة الخوارزميات و ماهيتها ، و اليوم سنتعرف على المتغيرات و التي سنشرحها هي الأخرى في فقراتنا القادمة ، المتغيرات كنبذة أولية ، لا غنى عنها في أي لغة برمجة ، فهي ستساعدنا كثيرا في كتابة شفرة برمجية صحيحة و قوية ، الى جانب ذلك ، سنتعرف على أنواع هذه المتغيرات و الهدف من كل نوع .ما هي المتغيرات ؟
لا شك انك سمعت في إحدى اللغات البرمجية إسم المتغير او Variable ولا شك انك سمعت أيضا ان لها عدة أنواع (متغيرات تقبل قيم نصية مثل Char او String , متغيرات تقبل قيم عددية Integer , double ...) و غيرها من المتغيرات الأخرى ، لكن السؤال المطروح هنا ، ما هي هذه المتغيرات ؟
دعني اوضح لك عزيزي بدون تعقيد ولا إطالة المتغيرات في لغة البرمجة هي أسماء تستخدم للإشارة و التلاعب بقيم يتم تعيينها لها ، كما انها توفر وسيلة لوضع علامات على البيانات مع إسم وصفي لها و يمكن للمتغيرات ان تكون من أنواع مختلفة .
أنواع المتغيرات :
للمتغيرات أنواع أيضا ، فالمتغير كما جاء في إسمه يتغير حسب الحاجة و يتأقلم حسب الكود البرمجي او دعنا نقول انك انت من يجعله يتأقلم حسب الكود البرمجي ، و إليك عزيزي القارئ بعض أهم أنواع المتغيرات مع شرحها و تبسيطها أيضا للقارئ المبتدئ :byte (number, 1 byte)
النوع byte هو متغير عددي يحتوي رقم من 1byte .
short (number, 2 bytes)
النوع short هو ايضا متغير عددي يمكنه إحتواء رقم من 2bytes .
int (number, 4 bytes)
النوع Int ايضا متغير عدد يمكنه هذه المرة إحتواء رقم من 4bytes .
long (number, 8 bytes)
النوع long كذلك متغير يقبل إحتواء أرقام عددية ولكن هذه المرة الرقم من 8bytes .
float (float number, 4 bytes)
هذا المتغير يقبل إحتواء أعداد من 4bytes ولكن هذه المرة يقبل الأعداد العشرية (15.22 ...) .
double (float number, 8 bytes)
المتغير double هو ايضا شبيه ب float و لكن يستطيع إحتواء أعداد من 8bytes .
char (a character, 2 bytes)
هذا النوع من المتغيرات يقبل حرف او رقم أو اي قيمة بشرط ان تكون من 2bytes.
String(Text)
يقبل إدراج نص كبير غير محدد في الحجم .
boolean (true or false, 1 byte)
يقبل هذا النوع القيم false او true او 0 او 1 و يستخدم بشكل كبير في البرمجة في الحالات الشرطية.
ستلاحظ أخي الكريم في مجموعة كبيرة من أنواع المتغيرات أعلاه ، ان اكثرها يقبل الأرقام ، و قد يتبادر الى ذهنك سؤال : بما انها تقبل أرقاما ، فلما لا أستعمل متغير واحد رقمي فقط ، يعني من المنطقي أليس كذلك ؟ لما كل هذا التغيير و التنويع في الأنماط إن كانت أكثريتها تحفظ الأرقام ، ببساطة شديدة مجددا ، دعني اشرح لك الأمر بمثال بسيط :
تخيل معي أنك تكتب شفرة برمجية لحساب مجموع الأرقام من 1 إلى 1000 في هذه الحالة المجموع لن يكون كبيرا جدا (500500) ولن يحتاج لموارد كبيرة من الجهاز لتخزين تلك البيانات (نتحدث عن الرام) ، و لكن إذا غيرنا العملية و دعونا نحسب ضرب الأعداد من 1 الى 20 فقط ، ففي هذه الحالة الرقم سيكون كبير جدا (2.43290200817664E18) و لن تستطيع تخزينه في اي من هذه المتغيرات بشكله العادي هذا ، لذلك اثتاء كتابتك للشفرة البرمجية يجب عليك ضبط هذه الأمور و لا تستهن بها لأنها من الضروريات فكلما كانت الشفرة كبيرة و كنت على سبيل المثال تضع كل المتغيرات من النوع float او double سوف تلاحظ ان الجهاز يتشنج و يصبح بطيء نوعا ما لذلك فالإختيار الصحيح للمتغيرات الجيدة حسبك الكود الخاص بك أمر مهم ، و لا تتجاهله بالمرة .
مثال للمتغيرات من لغة الجافا :
أسماء المتغيرات التي يتم إستخدامها في لغة الجافا قد يكون مختلفا قليلا عن لغات برمجية أخرى ولكن المبدأ يبقى ثابت .
ألية عمل المتغيرات :
عند تعريف المتغير في أي برنامج يقوم بحجز منطقة مخصصة له في ذاكرة الجهاز او الرام و يتم إستخدامها ما دام البرنامج مفتوح و المتغير لم يتم حذفه . يتم حجز المنطقة بسعة المتغبر كاملة مثلا المتغير من نوع Integer يقوم بحجز 4bytes من الذاكرة و double يحجز 8bytes ، لذلك إختيارك لمتغيرات ذات سعة كبيرة بينما انت في حاجة الى متغير ذو رقم ضئيل قد لا يكون حكيما و جيدا بالنسبة لك , و توخى الحذر في تحديد أنواع المتغيرات كما جاء أعلاه من أجل الحصول على شفرة برمجية نظيفة .
إدراج قيمة للمتغير :
المتغير بالتأكيد يمكنه حفظ قيمة من القيم المعطى له ، و هذا هو الأساس من المتغير ، و هذا مثال توضيحي لكيفية إدراج قيمة المتغير ، او ان صح التعبير بلغة بسيطة ، ملأ المتغير ، فلفعل ذلك ، يكفي تعريف المتغير و تحديد نوعه بعد ذلك و ندرج قيمته بعد علامة = ، إليك مثال يشرح عملية إدراج قيمة لمتغير من نوع String و متغير من نوع Integer طبقا للغة الجافا :
String nom = "MrCharif";
int age = 21;
لاحظ معي ، انني اولا قمت بإدخال نوع المتغير ( كما أشرت بالأزرق ) و هو أمر يختلف من لغة برمجية لأخرى لكن كما أخبرناكم المبدأ تابث ، ثم بعدها ، دخل إسم المتغير ، و يمكن إختيار أسماء مثل Nom , nom, NoM , Nom1 ، مع الأخذ بعين الإعتبار اللغة البرمجية فبعضها حساس للحروف الكبيرة ، ثم نضع علامة = و التي تعطي القيمة للمتغير ، ليأتي بعدها اخيرا قيمة المتغير و قد حددناها باللون الأخضر ، و القيمة تختلف حسب نوع المتغير أيضا ، فكما تلاحظ ، أدرجنا الإسم في متغير من نوع String بين علامتي " " ، و هذا ضروري لحفظ قيمة نصية ، بينما لم نقم بذلك في المتغير الثاني ، و الذي يحمل قيمة Integer .
نصل معك إذن عزيزي القارئ الى ختام الوضوع الثاني المتعلق بدورة دراسة و تحليل الخوارزميات و الذي كان يدور حول ماهية المتغيرات ، عملها ، انواعها و كيفية إضافته و تعديل قيمها ، نرجو ان تكون قد إستمتعت معنا في هذا الدرس الثاني ، و نعدك بدورس قادمة في هذا المجال ، الى ذلك الحين ، إن كان لك أي إستفسار او سؤال حول هذا الدرس اتركه في تعليق و سنجيبك بإذن الله :) .