تعلم البرمجة بلغة C للمبتدئين 5 الجزء الاول : المتغيرات و RAM الذاكرة الحية في الكمبيوتر

Header Ads

تعلم البرمجة بلغة C للمبتدئين 5 الجزء الاول : المتغيرات و RAM الذاكرة الحية في الكمبيوتر

عالم المتغيرات Variables

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

-  باختصار شديد هي تتمثل في اعطاء ارقام للحاسوب لكي يعمل بها او يتذكرها , سوف نتعلم طريقة تخزين ارقام في الذاكرة .
- اولا سوف نبداء بشرح و تفسير الذاكرة الموجودة داخل جهازك .

تعلم البرمجة بلغة C للمبتدئين 5 الجزء الاول : المتغيرات و RAM الذاكرة الحية في الكمبيوتر
اقراء ايضا 
تعلم البرمجة بلغة C للمبتدئين : 3 انشاء اول برنامج لك

سؤال : كيف تعمل الذاكرة ؟ كم من انواع مختلفة يملك الكمبيوتر ؟ .

يمكن ان يبدو الامر سهل على البعض , لكن نحن نُعمم الدورة و الشرح لكي يمكن اتباع الدروس و الشروحات لا يقتصر على المطلعين بل للجميع بدون استثناء , بما فيها الاشخاص التي لا تعرف شئ عن الكمبيورت و الذاكرة بداخله .

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

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

كل انسان طبيعي التشكيل لديه ذاكرة , نفس الشئ بالنسبة للكمبيوتر او الحاسوب , لكن هو يتفوق على الانسان بحيث ان له عدة انواع من الذاكرة .

سؤال : لماذا الحاسوب لديه عدة انواع من الذاكرة ؟

المشكلة اننا بحاجة الى ذاكرة سريعة جدا ( للحصول على معلومة او رقم بشكل فائق السرعة ) و اخرى كبيرة في الحجم للتخزين , و الى اليوم لم نتمكن من اختراع الاثنين في نوع واحد , حتى SSD ليست سريعة بدرجة كبيرة تسمح بالاستغناء عن RAM , ايضا الذاكرة السريعة جدا يكون سعرها مرتفع لذالك يتم وضعها بقدر قليل .

- لتفادي الاشكالية , فقد اطررنا الى وضع ذاكرة سريعة جدا لكن بقدر قليل و اخرى بطيئة لكن بحجم كبير .

الفرق بين انواع الذكرة 

لاعطائك فكرة عن القضية . اليك مختلف انواع الذاكرة الموجودة داخل الكمبيوتر :

The registers السجلات : ذاكرة فائقة السرعة متواجدة مباشرة في المعالج .
The cache memory ذاكرة التخزين المؤقت : تقوم بالوصل بين register و الذاكرة الحية
The RAM ذاكرة الوصول العشوائي : هذا هو النوع الذي سوف نعمل به كثيرا في الدورة , و يطلق عليها اسم الذاكرة الحية .
The hard drive القرص الصلب : اعتقد ان الجميع يعرفها و هي تستعمل في تخزين الملفات .

- تم ترتيب  الانواع على حسب سرعتها من ال registers الى الابطاء و هي المتواجدة في القرص الصلب , لو انكم تابعتم جيدا الشرح اعلاه انت على اطلاع ان الاسرع هي الاقل تواجد من ناحية الكمية و الابطاء هي الاكثر حجم و كمية .
- السجلات هي بالكاد قادرة على تخزين كمية قليلة من الاعداد و الارقام , العكس تماما مع القرص الصلب الذي يمكنه تخزين ملفات باحجام معتبرة .

ملاحظة : حين نقول ان الذاكرة بطيئة , هي بالمقارنة و على سُلم سرعة الكمبيوتر , لان 8 اجزاء من الثانية بالنسبة للحاسوب هي بطئية رغم انها سرعة رهيبة للانسان .

ما يجب حفظه من كل هذا ؟

نحن نريد توجيهك و اطلاعك الى اشياء مُعينة , و الان انت تعلم ان في البرمجة سوف نعمل خصيصا بالذاكرة الحية , سوف نرى ايضا كيف نقراء و نكتب على القرص الصلب , لكي نقوم بقراءة و انشاء ملفات ( هذا ما سوف نتعلمه في ما بعد ) , اما في ما يخص ذاكرة السجل و ذاكرة التخزين المؤقت لن نلمس فيها ابدا في هذه الدورة على الاقل .

ملاحظة : في لغات منخفظة المستوى ( مثل ما تعلمناه من قبل عن درجة لغات البرمجة ) ان نسيت يمكنك مراجعت الدرس الاول تعلم البرمجة بلغة C للمبتدئين : 1 مقدمة و شرح المفاهيم الاولية , لغة مثل Assembly المختصرة في رمز asm , المبرمجين يتعاملون مباشرة مع ذاكرة السجل , و يمكن القول ان عمل برنامج بسيط بهذا النوع من لغة البرمجة هو عمل جبار , لكن في منتهى الدقة , الحمد لله في لغة C و العديد من لغات البرمجة الامر اسهل بكثير .

- يجب عليك تعلم شئ اخر , وحده القرص الصلب يمسك او يبقي على الدوام المعلومات و البيانات المخزنة عليه , كل باقي الذاكرات هي مؤقتة , حين تُعطل عمل الكمبيوتر و توقفه , بانهاء التشغيل او ما شبه سوف تختفي و تَزول , حمدا لله ان القرص الصلب موجود ليذكر الحاسوب من هو , و ما هي المعلومات المتواجدة عليه , و كيف يجب ان يشتغل  اصلا 😔 .

الذاكرة الحية بالصور 

ما دمنا سوف نعمل كثيرا بالذاكرة الحية , من الافضل ان نريكم اياها بالصور , و نعرفكم عليها في الواقع , سوف نقربها لكم تدريجيا

1- نبداء بصورة للكمبيوتر العادي
طبعا انت تعرف مختلف الاجزاء التي يتكون منها جهاز الكمبيوتر , الفارة , لوحة المفاتيح , الشاشة و ما يهمنا هو وحدة المعالجة المركزية central unity .

2- وحدة المعالجة المركزية central unity
نركز على وحدة المعالجة المركزية central unity , هي القلب النابض للحاسوب و هو الجزء الذي يحتوي على جميع مكونات الذاكرة و مختلف القطع المهمة جدا لتشغيل الحاسوب .

3- الذاكرة الحية هي على شكل قطع ايليكترونية , ما يهمنا هو الموجود بداخل central unity .


نعم اعلم ان كل هذا بالنسبة لك فوضى عارمة , لكن لا عليك لن نطلب منك تعلم كيف يعمل كل هاذا , فقط نريدك ان تعلم اين تتمركز الذاكرة الحية في الكمبيوتر العادي ( المشار لها بالسهم المتعدد الالوان للفت و جلب انتباهك )

4- شريط ذاكرة الوصول العشوائي RAM memory module
هذا هو شكل الشريط لوحده
هذا النوع من الذاكرة تسمى في اللغة الشائعة RAM , لا تتعجب ان استعملنا هاذه العبارة في ما يتلو من الشروحات .

رسم تخطيكي لل RAM

حين النظر الى شريط ال RAM و تصويره عن قرب لا نرى الكثير , لكن من الضروري علينا معرفة طريقة عمله من الداخل , و بالتلي نكون قد وصلنا الى المبتغى من كل هذا التدريج في الصور و الشرح . 

الان اقترح عليكم رسم تخطيطي عملي من ذاكرة الوصول العشوائي RAM , الرسم مبسط جدا , لاننا لا نحتاج الى العديد من المعارف و لا الى التدقيق في كل شئ بالتفصيل , حين تتمكن من فهم و تذكر هذا الرسم سوف تكون قد تعلمت الكثير .


مثل ما هو مبين , يجب التعرف و التفريق بين عمودين اثنين :

1 . العناوين : العنوان يسمح للكمبيوتر بالتفريق و تحديد البيانات في RAM , نبداء بالعنوان رقم 0 و ننتهي الى اعداد مهولة مثل ما وضعت 3448765900126 .... و اكثر , لانني لا اعلم عدد العناوين الموجودة على الذاكرة الحية ... ( نعم انا لا اعلم كل شئ ) , العدد يختلف مع حجم ال RAM الموجودة , كل ما كان حجم الرام كبير كل ما صار عندك عدد عناوين اكثر , ومنها نستنتج انه يمكن التخزين اكثر .

2 . القيمة : في كل عنوان نخزن قيمة ( على شكل رقم او عدد ) , جهازك يقوم بتخزين هذه الارقام و الاعداد لكي يتذكرها لاحقا , لا يمكنه تخزين الا رقم او عدد واحد في كل عنوان .

ال RAM لا يمكنها تخزن الا الارقام ...

سؤال : كيف يفعل الحاسوب لتخزين الكلمات و ما شبه ان كان يخزن الا الارقام و الاعداد ؟

سؤال وجيه... , للعلم ان حتى الحروف هي عبارة عن ارقام بالنسبة للحاسوب , فمثلا عبارة كاملة او كلمة , هي مجرد اعداد متتالية بالنسبة له , يوجد جدول يقوم بتحديد كل عدد و ما يقابله من حرف موجود , هذا الجدول يقول مثلا ان العدد 67 يقابله حرف Y , لن ندخل في تفاصيل اكثر سوف نتطرق الى مثل هذه الامور لاحقا في الدروس .

نرجع الى الرسم التخطيطي , الامر بسيط جدا , حين الكمبيوتر يريد ان يحفظ "مؤقتا " الرقم 5 مثلا ( يمكن ان يكون عدد المحاولات المتبقية في لعبة مثل ماريو ) يضعه في مكان فارغ حيث توجد مساحة للتخزين على عنوان خالي من الارقام , مثلا في العنوان 3448765900126 , بعدها حين يريد معرفة هذا الرقم ليتذكره , يذهب مباشرة الى العنوان 3448765900126 , ليجد الرقم 5 , هكذا تعمل الذاكرة الحية .

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

الاعلان عن متغير

صدقني ان كل ما قمنا به الى حد الان هو مفيد جدا لفهم ما سوف نشرحه الان و في بقية الدروس , الان و قد تعلمت و عرفت كل ما ينبغي عليك معرفته سوف نرجع الى البرمجة .

ما هو المتغيير ؟ 

هو معلومة مؤقة نخزنها في RAM , نسميها بالمتغير لانه قيمة يمكن ان تتغير حين تَشغيل البرنامج , مثلا رقم 5 الذي استعملناه لعدد المحاولات ( عدد الرؤوس او الحياة المتبقية في لعبة مثل ماريو Mario ... ان كنت لا تعرف لعبة ماريو يرجى مغادرة الشرح فورا 😆 ) يفترض ان تنخفظ مع مرور الوقت حين تَعثر اللاعب , ان وصل الرقم الى 0 ... نعلم ان اللاعب قد خسر game over , برامجنا مثل ما سوف تلاحظه سريعا , متكونة بشكل كبير من المتغيرات .

في لغة البرمجة C المتغيرات متكونة من شيئين اثنين :
قيمة : و هي العدد الذي تخزنه ( مثل ما استعملنا رقم 5 للمثال )
اسم : هي ما يسمح بالتعرف عليها , في لغة البرمجة C , لن نحتاج الى العنوان , في المقابل سوف نقوم فقط بالتَعريف على اسماء المتغيرات للمترجم compiler , هو من سوف يقوم بعملية conversion "تحويل" بالنيابة عنا نحن ليسهل لنا العمل .

اعطاء اسامي للمتغيرات 

في لغة البرمجة C كل متغير يجب ان يحتوي على اسم , بالنسبة الى المتغير الذي يكشف لنا عدد المحاولات في اللعبة ( نعم المثال السابق دائما رقم 5 ... عليك ان تلعب لعبة ماريو و الا لن تستطبع البرمجة ابدا 👀 ) , سوف تُريد تسميتها مثلا عدد المحاولات .

هنا نصل الى الحدود المفروضة في التسميات و هي كالتالي :

- لا يمكن استعمال الا ارقام و حروف (لاتينية) الكبيرة و الصغيرة ( Lowercase, Uppercase ) مثل abcABC012 .
- اسم المتغير يجب ان يبداء بحرف .
- الفراغات بين الاحرف و الارقام ممنوعة , في مكان الفراغ يمكن استعمال هذا الشكل _  ( underscore ) , هذا هو الرمز الوحيد المسموح بعد الارقام و الحروف .
- لا يمكن استعمال هذا النوع من الاحرف éàê , التي تكون بها اشكال خاصة تستعمل في لغات مثل الفرنسية و ما شبه .

عليك بمعرفة ان في البرمجة بلغة C , يوجد فرق بين الاحرف الكبيرة مثل ABCD و الصغيرة abcd , هي لغة تحترم اختلاف الحركات , و مثل هذا المتغيرات width و WIDTH او حتى WidHt , هي 3 متغيرات مختلفة تماما عن بعضها البعض في لغة البرمجة C , حتى و ان كانت بالنسبة لنا هي تعني نفس الشئ ( width  العَرض ) .

هذه امثلة عن اسماء متغيرات صحيحة للشرح فقط : NumberOFlives , firstname , phone_number , PhoneNumber

كل مبرمج له طريقته الخاصة في تسمية المتغيرات , سوف نتبع الطريقة التالية التي اعتمدها في الشروحات لكي لا يختلط عليكم الامر في ما يلي و طريقتي الخاصة , لا يتوجب عليك العمل بها , انما اشرحها لكي تتبعني جيدا في ما هو اتي :

- ابداء جميع اسماء المتغيرات بحرف صغير ( abcde ... ) .
- ان وجدت العديد من الكلمات في متغير ( بمعنى استعمل جملة ) افصل مابينها بحرف كبير ( ABCD ... الخ ) , في بداية كل كلمة جديدة .

في البداية سوف اطلب منكم استعمال نفس الطريقة لكي لا نختلف كثيرا و يكون عليك من السهل اتباعي .

ملاحظة مهمة : لا يهم ان تستعمل اي طريقة في كتابة اسم المتغير , لكن عليك ان تكون واضح "جدا" في الكتابة و ان لا تستعمل مختصرات مثلا عدد المحاولات ( او الحيات المتبقية )  في لعبة ماريو نعطبها اسم numberOfLives او number_of_lives , و لا نستعمل nol ( اختصار متكون من كل حرف اول في كل كلمة ) , سوف تكون اقصر و اسرع للكتابة لكن غير واضحة تماما , حين تبرمج الكود code الخاص ببرنامجك سوف تختلط عليك الامور سريعا , لا تخشى من طول الكلمة او الاسم و ركز على الوضوح و سرعة الفهم .

انواع المتغيرات 

الكمبيوتر مثل ما شرحناه و لاحظته انت بنفسك لا يقوم الا بعمليات حسابية , و لهذا يسمى بالحاسوب , لا يعرف التعامل الا مع الارقام و لا اي شئ اخر مهما كان بسيط .
نعم لكن في نفس الوقت توجد العديد من انواع الاعداد , مثلا توجد الاعداد الاجابية الكاملة : 
45 ;
398 

7650 

و توجد ايضا أرقام او اعداد عشرية ( الارقام هي من 0 الى 9 و الاعداد هي من 11 الى مالا نهاية ) , العشرية هي التي تحتوي على فواصل مثل : 
75,909 ;
1,7741 ;
9810,7 


مثل ما هو موجود في الاعداد و الارقام الصحيحة , نجد نفس الشئ في السلبية التي تكون مسبوقة بالرمز سالب - مثل : 
-87 ;
-916;


و العشرية منها مثل :
-76,9 ; 
-100,11;

الكمبيوتر بحاجة الى مساعدتك 😪 , حين تطلب منه تخزين عدد يتوجب عليك اطلاعه على اي نوع يتعلق به الامر , لا لانه لا يمكنه التعرف عليه لوحده , لكن انت تساعده كثيرا على تنضيم نفسه , و ان لا تجعله يستعمل الذاكرة في اشياء تافهة .

ادا حين تقوم بانشاء متغيرة في لغة البرمجة C سوف تحدد صنفها او نوعها , و هذا جدول لاهم اصناف المتغايرات في هذه اللغة 

هذه المتغيرات هي اقل شئ مضمون في اللغة C , يمكن حين البرمجة استعمال او بالاصح تخزين قيم اكبر لكن عليك بترك هذه القيم في راسك حين تختار نوع او صنف منها , و هو امر مهم و يجب حفظه عن ظاهر القلب .

طبعا لم نعرض الا اهم الانواع ( type ) , يوجد عدد منها لم نعرضه بعد لكي لا تظهر لكم الامور معقدة .

الاصناف الثلاثة الاولة التي عرضنها و هي (signed char, int, long) , تستعمل في تخزين الاعداد و الارقام الكاملة 1,2,3 ... الى ما لا نهاية .
المتبقية التي في الجدول و هي (float, double) تستعمل في تخزين الاعداد العشرية التي يطلق عليها اسم ( Floating numbers
 الترجمة الحرفية بالعربية هي : الاعداد العائمة ) مثل  13.8 و 16.911… الخ

سوف ترون اننا في اغلب الاحيان نستعمل الاعداد الكاملة .... ارى ان اغلبكم بعد هذه العبارة استرخى 😄 ... نعم هي اسهل للعمل ما سوف يجعلك لا تغوص في حسابات معقدة .

ملاحظة مهمة  تحدير !! حاسوبك لا يعرف الفاصلة في الارقام العشرية , هو يتعرف عليها بالنقطة و ليس بالفاصلة اذا عليك استعمال النقظة بدلا من الفاصلة ليكون كالتالي : بدل من كتابة 13,8 تكتب 13.8 

مثل ما قلنا توجد العديد من اصناف المتغيرات , و سوف نضيف الى قاموسينا نوع مميز في هذا الشرح و السهل للحفظ و هو unsigned , ميزته هي انه يقوم بتخزين  الاعداد الموجبة , قد تعتبرها نقصان لكن سعت تخزينه اكبر حين تستعمله , لتستعمل هذا الصنف "type" تكتبه في الاول لتكون النتيجة كالتالي :
نعم نوع unsigned لا يمكنه تخزين الاعداد السلبية , لكنه يتمتع بسعة تقريبا الضعف من التي عرضنها اعلاه مثل signed char تتوقف في 127 , بينما unsigned char تصل الى 255 .

ملاحظة : نجد ان كلمة char لا تاتي وحدها مثل signed char او unsigned char و هذا راجع الى شئ نسميه التوقيع , يوجد منها اثنان المُوقع و الغير مُوقع ( signed و not signed ) , هذا الاختلاف يكون باختلاف الجهاز , سوف تختار اي نوع تريد استعماله على حسب القيمة التي تريد تخزينها , سوف نرجع الى هذا لاحقا . 

سؤال : لمذا تم اختراع 3 انواع من اجل الارقام الكاملة , type واحد كان ليكون كافي و اسهل  ؟

نعم , لكن في الاصل تم اختراع عدد كبير منها للحفاظ على الذاكرة , و بهذا حين نطلب التخزين من type char , سوف نستعمل قدر اقل من type int .
عليك معرفة انها كانت تستعمل في البداية لتقليص اكبر عدد ممكن من استعمال الذاكرة التي كانت محدودة في احجام صغيرة جدا , في وقتنا الحالي الاجهزة لها ما يكفي من الذاكرة RAM لجعل الامر اسهل لنا , ليس عليك ان تقضي ساعات في التفكير في اي type تستعمل , ان كنت غير متاكد من القيمة التي سوف ياخدها المتغير ضع مثلا int مباشرة للاعداد الكاملة او double للاعداد العشرية .

للعلم ان في بداية سنة 2000 كانت 120 ميجا من RAM تعتبر كمية ضخمة , الان اقل شئ متوفر على الاجهزة هو 4 جيجا و كمبيوتر للالعاب يصل الى 32 جيجا , فرق شاسع .

خلاصة :

علينا فقط التمييز بين الاعداد الصحيحة ( الموجبة ) و الاعداد العشرية ( العائمة) , سوف نستعمل غالبا int للاعداد الصحيحة , و double للعائمة , هذا في اغلب الاحيان و ليست قاعدة , الامر يتعلق بالقيمة .

نرجع الان الى عنواننا الاصلي و هو الاعلان عن متغير , تتجه الى المترجم CodeBlocks قم بانشاء مشروع جديد project على شكل consol ( وحدة التحكم ) , قم باعطائه اسم متغايرات ( الترجمة بالانجليزية Variables ) , سوف نتعلم طريقة استعمالها , بمعنى نطلب من الحاسوب استغلال القليل من ال RAM في برنامجنا .


الاعلان عن متغير سهل جدا , بعد اطلاعك على كل ما يلزمك , يتبقى عليك اعطاء الامر .

1 . تضع نوع Variable الذي سوف تقوم بانشائها .
2 . إدراج مسافة ( فراغ ) .
3 . تكتب الاسم الذي تريد اعطائه لل Variable .
4 . و في الاخير تضع منقوطة  ; ( لا تنسى المنقوطة ابدا )

مثال : لو اريد انشاء Variable لعدد المحاولات في لعبة numberOfLives من type : int علي بكتابة السطر التالي :


نعم بكل بساطة , ما نقوم به هنا يسمى في البرمجة ( a variable declaration ) الترجمة الحرفية هي الاعلان عن متغير , يجب الاعلان عن المتغيرات في بداية الدوال ( Functions ) , لاننا الى حد الان لا نستعمل الى الدالة main سوف تقوم بالاعلان عليها مثل ما هو مبين في التالي :


لو انك تقوم بتشغيل البرنامج مثل ما هو مكتوب حاليا , سوف تلاحظ و بوضوح انه ... لا يفعل شئ !!! .
اذا قبل البداية في التهجم علي ( محاولة الاعتداء في التعليقات بانه درس فاشل و شرح لا يُجدي بنفع 😖) دعوني ابرر لكم .

- في حقيقة الامر هنالك امور تحدث حين تشغيل البرنامج , لكنك لا ترى شئ على سطح المكتب , حين يصل البرنامج الى سطر الاعلان عن المتغير , سوف يطلب من الحاسوب ( بادب ) ان يستعمل القليل من ال RAM , ان لم تقع اخطاء سوف يتجاوب الحاسوب مع الامر بطريقة تلقائية ( يقول للبرنامج تفضل خذ من الذاكرة الحية , البيت بيتك ) , غالبا لا تكون هنالك اي مشاكل , المشكلة الوحيدة التي يمكن ان تقع , هي عدم توفر المكان , اي لا يمكن للحاسوب ان يعطيه من الذاكرة لانه يستعملها كليا و هذا لا يحدث الا نادرا , لانه اخذ كل الذاكرة الا عن طريق نوع int ... يجب ان تكون متعمد لتخريب المشروع كليا 😀 .

حيلة صغيرة يمكنك تعلمها , ان كان لديك الكثير من المتغايرات للاعلان عنها من نفس النوع , لا تقوم بانشاء سطر لكل واحدة منها , يمكنك الفصل بينها جميعا بفاصلة على نفس السطر مثال :


بهذه الطريقة سوف يتم انشاء 3 متغيرات int باسماء numberOfLives و level و ageOfThePlayer 

- الى هنا نكون قد وصلنا الى نهاية الجزء الاول من الدرس الخامس , اتمنى ان ينال اعجابكم و لا تتردوا في المشاركة بالتعليقات لدعمي معنويا في مواصلة الدورة .
- في الجزء الثاني من المتغايرات سوف نتعلم طريقة اعطائها قيم و تحديد عملها في استخدام ال RAM .

هناك 6 تعليقات:

  1. الله يعطيك الف عافية. انا لا اعرف اي شيء عن البرمجة. ودروسك افدتني كثيرا.وخاصة طريقتك في الرح رائعة جدا والتفاصيل هي الاهم.
    شكرا لك وارجو ان تستمر

    ردحذف
  2. مرحبا ... وقبل كل شيء الشكر لك على مجهودك الرائع
    لم اكن اعرف حتى الصفر في البرمجه لكني وبعد مراجعة الدروس الخمسه استفدت الكثيير(ولو كنت اواجه مشكلة في المتغيرات )..اتمنى اخي الا تسمع للاصوات المريضه,نحن في انتظار الدروس القادمه بقلب على جمر ...شكرا لك مجددا

    ردحذف
  3. طلبا وليس امرا ياريت المزيد من الشرح والتوضيح لدرس المتغيرات على وجه الخصوص
    شكرا (_)

    ردحذف
  4. حاضر في اقرب وقت و شكرا لكم انتم على الدعم

    ردحذف
  5. دروسك أقل ما يقال عنها أنها ممتازة
    شكرا جزيلا من نادر أن نجد شخص مثلك يوضح مثل هذه الأشياء المعقدة ...شكرا من جديد

    ردحذف
    الردود
    1. شكرا اخي و بادن الله سوف نرجع الى دورة البرمجة مباشرة بعد شهر رمضان الكريم و بادن الله سوف احاول وضع شطر كل يومين و نحاول الدخول في الامور الجدية

      حذف