تعلم البرمجة بلغة C للمبتدئين 5 الجزء الثالث : تخزين البيانات و استعمالها في البرنامج

Header Ads

تعلم البرمجة بلغة C للمبتدئين 5 الجزء الثالث : تخزين البيانات و استعمالها في البرنامج

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

تعلم البرمجة بلغة C للمبتدئين 5 الجزء الثالث  تخزين البيانات و استعمالها في البرنامج

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

للطلب من المستخدم كتابة شئ على برنامجنا (console) , سوف نستعمل دالة جديدة و هي الاخرى جاهزة للعمل اسمها : scanf هذه ال function تشبه كثيرا printf , حيث انه يتوجب عليك وضع format لاشارة و تحديد ماذا يتوجب على المستعمل او مستخدم البرنامج ادخاله ( مثل int او float ... الخ ) , بعدها يجب ان تحدد اسم المتغير الذي سوف يتلقى العدد .
اليك مثال للتوضيح :


age تعني عمر , نعم  انت ترى هنا اننا في المثال نطلب من المستخدم ادخال عدد و هو عمره .

يجب وضع d% داخل علامات الاقتباس " " .
ايضا يجب وضع علامة & قبل اسم المتغير الذي سوف يتلقى العدد .

سؤال : لماذا نضع & قبل اسم المتغير ؟
في هذه المرحلة من الدورة لن نتطرق الى مثل هذا الرمز و الا سوف نعقد عليكم الامور فقط , قل في نفسط "الان" ان وضعها اجباري , و لا تسال عن مصدرها ( رغم انني احب ان تكون على اطلاع بكل كبيرة وصغيرة و اي حرف او رمز يكتب داخل الكود يجب ان تكون على علم كامل و تام ماهو و ماذا يفعل لكي تتمكن من لغة C بطريقة علمية بحث ) .

ملاحظة : يوجد اختلاف بين دالة printf و  scanf , لاخد عدد عشري float نستعمل ال format نفسه "f%" عادي الامر شبيه في الاثنين , لكن في نوع double هنا الاختلاف يقع نستعمل format كالتالي "lf%" بالنسبة للدالة scanf .


في هذا المثال نحن نطلب من المستخدم وزنه , و الوزن يكون عدد غير كامل بمعنى نستعمل نوع double .

نرجع الى برنامجنا , حين يصل الى سطر scanf يتوقف و ينتظر حتى يقوم المستخدم بادخال عدد , و هذا العدد سوف يتم تخزينه في متغير  .

اليك برنامج صغير و بسيط يطلب من المستخدم عمره ثم يرد عليه بعد ذالك :


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


مثل ما ترى البرنامج يتوقف حين اظهار سؤال كم عمرك ؟ , بعدها يظهر The cursor ( المؤشر تلك المطة البيضاء التي تلمع ) لكي تكتب عدد ( عمرك ) , بعدها يجب الضغط على Enter في لوحة مفاتيح الكمبيوتر للتاكيد , بعدها يتابع البرنامج عمله .
كل ما قام به بعد ان قمت بادخال عمرك هو اظهار او عرض رسالة على الشاشة , هي قيمة المتغير age الذي هو 30
في  Ok! So you have 30 years old !  .

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

ملاحظة : لا شئ يمكنع من كتابة ما تريده حتى في مثالنا هذا ( الذي هو مبني على int ) لكن سوف تحصل الاشياء التالية :

1 - اذا قمت بادخال عدد عشري مثلا 25.5 سوف يتم اقتطاعه تلقائيا , بمعنى وحده الجزء الكامل من العدد سوف يتم الاحتفاظ به , اي ان 25 فقط سوف يخزن في المتغير age .
2 - لو انك تكتب حروف عشوائية ( مثل ijkkkhtty ) المتغير لن ياخد قيمة جديدة و بما اننا في البداية هيئناه على الرقم 0 سوف تظهر لك رسالة ان عمرك  years old 0 , لو اننا لم نحدد الصفر في البداية البرنامج كان قادر ان يظهر لنا اي شئ .

ملخص القسم 5 من الدورة في المتغيرات 

- الكمبيوتر بمتلك عدة انواع من الذاكرة من الاسرع الى الابطاء : سجلات، ذاكرة التخزين المؤقت، RAM والقرص الصلب.
- للاحتفاظ بالمعلومات برنامجنا يحتاج الى تخزين البيانات في الذاكرة , و هو يستعمل بالذات الذاكرة الحية RAM , ذاكرة السجلات The registers و ذاكرة التخزين المؤقت The cache memory هي ايضا تستعمل لكن بطريقة تلقائية لتحسين الاداء لا علاقة لنا بها في هذه الدورة .
- في source code ( كود برنامجا ) المتغييرات هم بيانات مؤقتة تخزن في الذاكرة الحية , قيمة هذه البيانات يمكن ان تتغير .
- توجد متغييرات خاصة و هي ثابثة constants  و لا يمكن تغييرها حين اعطائها قيمة معين وسط الكود , و هي ايضا تخزن في اكرة ال RAM .
- توجد عدة أنواع من المتغيرات , التي تحتل أكثر أو أقل مساحة في الذاكرة , بعضها مثل int يستعمل في تخزين الاعداد الكاملة , و بعضها مثل double تستعمل في تخزين الاعداد العشرية .
- الدالة scanf تطلب من مستخدم البرنامج التفاعل معه و كتابة مثلا عدد .

الى هنا نكون قد شرحنا لكم كل ما يتعلق بالمتغيرات على  القدر الذي تحتاجونه و لم نتعمق كثيرا في الاشياء التي يمكن ان تشتتكم عن الفهم السليم للدرس تابعونا فما هو قادم مشوق اكثر .

ليست هناك تعليقات