Урок 6.2. Формула нахождения расстояния
В этом уроке вы будете использовать формулу нахождения расстояния из координатной геометрии для вычисления расстояния между двумя точками, а затем будете сравнивать измеренное с помощью робота Rover расстояние с вычисленным значением. **Для этого вам на уроке понадобится линейка или рулетка.
Вы научитесь:
- Перемещать робота к двум разным точкам
- Использовать маркер для построения отрезка движения на бумаге
- Использовать функцию вычисления расстояния между двумя точками и отображать результат на экране
- Измерять расстояние между точками
- Находить погрешность между измеренным и вычисленным значениями расстояния
Давайте вспомним "формулу расстояния", которая основана на теореме Пифагора:
Если взять значения из рисунка ниже, эта формула будет представлена в виде следующего выражения на языке программирования Python:
d = sqrt((6 - 2)**2 + (4 - 1)**2)
Находим ответ: d = 5
На рисунке прорисовывается прямоугольный треугольник со сторонами 3-4-5. Нашли?
1. Начните с создания нового проекта по работе с роботом Rover Coding.
Определите функцию, которая называется dist. На основании четырех аргументов (двух пар координат) она вычисляет расстояние между двумя точками.
Шаблон def function() можно найти в меню: menu > Built-ins > Functions.
Тело функции состоит из одного вычисления:
и выражения вывода: return d
Выражение return можно найти в меню: menu > Built-ins > Functions
Убедитесь, что эти два выражения одинаково структурированы.
Примечание для учителя: Если вы хотите использовать один дюйм вместо 10 сантиметров в качестве единицы шага на сетке, измените единицу измерения с помощью следующей функции:
rv.grid_m_unit(0.0254)
2. После этой функции (выражения return) начинается основная часть программы. Очень важно учитывать, что далее код структурировать не нужно. Напишите четыре выражения ввода input() (очень удобно с помощью копирования и вставки), чтобы ввести координаты двух точек. Создайте также простые подсказки для удобства ввода и добавьте функцию float(), которая конвертирует введенные результаты из формата строки в десятичное значение. Ниже на рисунке показано только одно введенное выражение. Мы используем переменную a для хранения первой координаты x. Используйте переменные b, c и d для трех остальных координат.
Примечание для учителя: Использование разных переменных для фактических параметров (a, b, c, d) наглядно демонстрирует, что эти названия отличатся от формальных параметров (x1, x2, y1, y2), которые используются в обозначении функции.
3. После четырех выражений ввода input() дайте команду роботу Rover переместиться к первой точке. Приостановите работу программы в этой точке, затем вставьте маркер в держатель на роботе Rover, с помощью которого можно нарисовать отрезок маршрута на бумаге. Затем продолжите перемещать вездеход ко второй точке. Выражение, которое поможет приостановить работу программы:
input( "press [enter] to continue.")
Результат такой функции ввода не присваивает переменной никакое значение, потому что ничего не введено.
4. Теперь нужно, чтобы программа применила функцию нахождения расстояния, используя координаты ваших двух точек:
calculated_distance = dist(a, b, c, d)
Примечание для учителя: Развернутые названия переменных используются для большего удобства. Учащиеся будут измерять длину отрезка, используя линейку или рулетку, а затем сравнят полученные измерения с расстоянием, вычисленным с помощью выражения calculated_distance. Обратите внимание на то, что буква d используется как переменная двумя разными способами: в основной части программы она представляет координату у второй точки, а в функции dist( ) она используется для сохранения значения вычисленного расстояния. Эти две переменные не конфликтуют друг с другом, потому что они имеют разные "области применения", то есть относятся к разным частям программы ("действия" переменной).
5. Используйте линейку или рулетку для измерения отрезка, который прошел робот Rover.
Добавьте в программу выражение input(), чтобы ввести значение измеренного расстояния (measured_distance).
Добавьте выражение print(), чтобы отобразить две переменные расстояния.
Отличается ли измеренное вами расстояние от значения, вычисленного программой?
6. Рассчитайте погрешность, используя следующую формулу:
(measured - calculated) / calculated * 100
Затем отобразите полученный результат.
Примечание для учителя: Если у вас несколько роботов Rover, попробуйте запустить эту программу на каждом из них, чтобы посмотреть, какой из них самый "точный".