
المسافة بين نقطتين (برمجة)

قم بالترقية للحصول على المزيد من المحتوى
نقطة ما لها الإحادثيات (4,6). ما هو إحداثي x لها؟
تقوم لينا ببرمجة لعبة يكون فيها اللاعب قطة تحاول تجنب أن يمسك بها الصياد. إذا كانت المسافة بين القطة والصياد أقل من طول شبكة الصيد، يتم الإمساك بالقطة. كيف يستطيع البرنامج تحديد ما إن تم اصطياد القطة؟ علينا معرفة المسافة بين القطة والصياد. يمكننا تقسيم الشاشة إلى خطوط بيانية. نسميها في الرياضيات بنظام الإحداثيات. يسمى المحور الأفقي بالمحور x، والمحور الرأسي بالمحور y. نفرأ قيمة x وقيمة y للقطة وصياد القطة. للقطة قيمة x تساوي صفر وy تساوي صفر. للصياد قيمة x تساوي 30 وy تساوي 20. نحتاج لشيء آخر من الرياضيات وهو نظرية فيثاغورس. لماذا نحتاجها؟ حسنا، أنظر هنا! نرسم خطا من القطة إلى الصياد، ثم خطا أفقيا من القطة إلى قيمة x الخاصة بالصياد. أخيرا، نرسم خطا رأسيا من الصياد إلى قيمة y الخاصة بالقطة. ما هو هذا الشكل الهندسي؟ صحيح، مثلث قائم الزاوية، والوتر به هو المسافة ما بين القطة والصياد. إذا كانت شبكة الصيد بنفس طول الوتر على الأقل، يتم اصطياد القطة. نستخدم نظرية فيثاغورس لحساب وتر المثلث. قبل أن نبدأ بالبرمجة، نكتب كل هذه الأمور في شكل تعليمات واضحة: السودوكود. علينا معرفة إحداثيات كل من الصياد والقطة. نكتب قيمتي x وy للصياد. نكتب قيمتي x وy للقطة. نكتب طول شبكة الصيد. نريد حساب طول وتر المثلث، والذي يسمى هنا 'c' في نظرية فيثاغورس. نحصل على الضلع 'a' بحساب الفرق بين قيمة x للصياد، وقيمة x للقطة. نُدخل المتغير 'a'، ونعين له قيمة x الخاصة بالصياد ناقص قيمة x الخاصة بالقطة. نحصل على الضلع 'b' بحساب الفرق بين قيمة y للصياد وقيمة y للقطة. نُدخل المتغير 'a2' ونُعين له قيمة 'a' ضرب 'a'. نفس الشيء مع 'b'. نحسب 'b' تربيع ونحفظ النتيجة في متغير جديد اسمه 'b2'. نُدخل 'c2' ونُعين له قيمة: مجموع 'a2' و'b2'. أما 'c2'، فهي مربع الوتر. لحساب الوتر، نأخذ الجذر التربيعي لـ 'c2'، ونحفظ النتيجة في متغير اسمه 'c' لدينا الآن 'c'، وهي المسافة بين القطة والصياد. حان وقت التجربة: لو أن المسافةَ c أكبرُ من طول شبكة الصيد، قل أن القطة هربت. وإلا، قل أنها تم اصطيادها. لنوضح صفوف السودوكود التي تعمل مع بعضها. سنُضيف tab للصفوف التي تبدأ بـ "قل". هذا لا يُنفذ إلا إن كان صف "لو أن" صحيحا، وهذا لا يُنفذ إلا إن كان صف "وإلا" صحيحا. لم يتبق على القطة سوى أن تظل على أبعد مسافة ممكنة من الصياد.