
المتغيرات: أمثلة أخرى

قم بالترقية للحصول على المزيد من المحتوى
صحيح أم خطأ؟ هناك أنواع مختلفة للمتغيرات.
أنظري، لقد أعدت برمجة الروبوت ليتمكن من سؤالنا عن إسمينا، وعن عمر كل منا. أليس هذا جيدا؟ دعيني أرى! أهلا ماريا، العمر 15. أهلا لينا، العمر 16. واو! الروبوت يعرف عمر كل منا. هل يمكنه قول أي منا هي الأكبر سنا؟ همم، إذا علينا كتابة بعض الكود أولا. تريد كل من ماريا ولينا تعليم الروبوت ليقول أي منهما أكبر سنا من الأخرى. لنبدأ بالنظر إلى السودوكود. هنا، نُدخل اسم الشخص الأول، ونحفظه كالمتغير name 1. ثم نُدخل عمر الشخص الأول كالمتغير age 1. نفس الشيء للشخص الثاني. هذا يساوي أربعة متغيرات في المجمل. لننظر داخل دماغ الروبوت، لنرى تلك المتغيرات بوضوح. هذه منضدة.. ماذا يوجد بداخل الأدراج؟ هنا، لدينا الأسماء: ماريا ولينا، وهناك تُخَزن الأعمار. ما الذي يمكن أن يكون مُخَزنا في الدرج المسمى "age 1"؟ 15! كل من اسم ماريا وعمرها مُخَزنين في نوعين مختلفين من الأدراج. إنهما نوعان مختلفان من المتغيرات. الاسم عبارة عن نص، بينما العمر عدد صحيح. هذا ذكي، لأن كتابة العمر تأخذ مساحة أقل من مساحة كتابة اسم كامل، وبالتالي يستطيع الروبوت استخدام أدراج أصغر للأرقام. أيضا، النص والعدد الصحيح مختلفان. يمكن للروبوت عمل أشياء مختلفة بهما. يمكنه مثلا، مقارنة عمري ماريا ولينا، بمساعدة عملية طرح. لا يمكنه عمل ذلك مع اسمين. لذا عندما نستخدم المتغيرات في البرمجة، تكون لدينا ميزة تصنيفها لأنواع مختلفة، بخصائص مختلفة. هذا درج آخر: رقم عشري! وهذا نوع مميز: درج صغير جدا، يحتوي فقط على صواب أم خطأ. إذا، لنعلم الروبوت الآن المقارنة بين عمري ماريا ولينا. في السودوكود، نكتب "Note" ثم "age 1" لنخبر الروبوت أن يقوم بوضع شيء في الدرج المسمى "age 1". عندما نقوم بتعيين قيمة لمتغير، نستخدم علامة يساوي. لحظة، علامة يساوي تعني أن age 1 يساوي 15؟ حسنا ، قد يكون هذا هو المعنى في الحساب: الجانب الأيسر يساوي الجانب الأيمن. لكننا نقوم الآن بالبرمجة وليس الحساب، وعلامة يساوي هنا تعني أننا نضيف - أي نقوم بتعيين - القيمة 15 إلى المتغير المسمى "age 1". أي أننا نضع 15 في هذا الدرج. نريد الآن من الروبوت أن يقوم بحساب الفرق بين عمري ماريا ولينا. إذا نستخدم علامة يساوي لنحصل على الفرق. نضيف هذا السطر إلى السودوكود. الطرح الحسابي بعلامة السالب يعمل كما في الحساب تماما، وكذلك الجمع والضرب والقسمة، جميعها تعمل كما في الحساب العادي. يقوم السطر الأخير في السودوكود بإخراج النتيجة. يمكن عمل مخطط للسودوكود لتوضيحه أكثر. نضع الاسم الأول في n1. من الجيد استخدام أسماء متغيرات قصيرة لكي لا يكون علينا كتابتها كثيرا في الكود. نضع العمر الأول في age 1. نضع الاسم الثاني في n2. نضع العمر الثاني في age 2. نحسب الفرق ونسميه بـ 'result'. نقوم بإخراج النتيجة. هل نختبر ما إن كان يعمل؟ - الاسم؟ ماريا - العمر؟ 15 حان دوركِ لينا. - الاسم؟ لينا - العمر؟ 16 ماريا أصغر من لينا بناقص سنة واحدة. هاها أنا أكبر منكِ سنا! نعم، أكبر بسنة واحدة هاهاها!