(495) 240-82-80ПН-СБ с 10:00 до 18:00
We speak English

2.4. Практикум: Расстояние до горизонта

В данном уроке вы научитесь писать программу, с помощью которой можно определить расстояние до горизонта при заданной высоте точки наблюдения.

Вы научитесь:

  • Использовать функцию import для добавления дополнительных функций
  • Использовать меню в процессе написания программы
  • Решать задачи с разными единицами измерения

Если самолет летит в воздухе, насколько далеко пилот находится от горизонта? Чем выше самолет, тем больше будет расстояние от него до горизонта. Как можно определить расстояние до горизонта, если мы знаем, на какой высоте летит самолет?

Радиус Земли составляет 3,958.8 миль.

Вам нужно написать программу, с помощью которой можно ввести высоту полета самолета в футах, а затем вычислить расстояние до горизонта в милях.

Примечание для учителя: В данном проекте используется теорема Пифагора. Она нужна для нахождения стороны прямоугольного треугольника, который вы видите на рисунке сверху. Гипотенуза является суммой двух расстояний, представленных разными единицами измерения.

1. Создайте новый файл Python (у нас он называется horizon).

Начните программу с небольшого пояснения в виде комментария, для чего нужна эта программа.

2. В данной задаче мы будем использовать теорему Пифагора. Для работы с ней вам потребуется функция квадратного корня, которая не является встроенной операцией Python. Эту и другие функции можно найти в стандартном модуле Python, который называется math. Чтобы использовать данную функцию, вам необходимо импортировать модуль math в свой код. В меню menu > math выберите выражение, которое находится сверху:

from math import *

Звездочка (*) здесь означает "все". Вы поймете, как использовать инструменты этого модуля с помощью меню.

Примечание для учителя: Вы также можете вручную ввести from math import sqrt, если уверены, что при вычислении вам понадобится только функция квадратного корня sqrt. Или написать import math, после чего необходимо указать точно, какая функция нужна - math.sqrt().
Модуль math (также как модули random и time) является стандартным модулем Python.

3. Используйте выражение input для ввода значения высоты полета самолета.

Сначала напишите переменную alt и знак =.

Затем найдите в меню функцию input(): menu > Built-ins > I/O.

В качестве подсказки внутри скобок напишите следующее: "На какой высоте летит самолет?" ("Altitude of plane? ").

Примечание для учителя: выражение input() отображает строку, поэтому в этом выражении необходимо сделать так, чтобы высота была в виде целого числа (int) или десятичной дроби (float). См. шаг 6..

4. На диаграмме ниже мы видим прямоугольный треугольник, одна сторона которого является радиусом Земли, а другая – расстоянием от самолета до горизонта. Гипотенуза - это радиус Земли плюс высота, на которой летит самолет. Если вспомнить теорему Пифагора, то она гласит следующее: в прямоугольном треугольнике

(leg1)2 + (leg2)2 = hyp2

или radius2 + leg22 = (radius+alt)2

Найдем сторону 2 leg2: leg2 = sqrt((radius+alt)2 - radius2)

Примечание для учителя: Откуда мы знаем, что имеем дело с прямоугольным треугольником? Расстояние до горизонта является касательной к окружности, а касательная к окружности перпендикулярна радиусу, проведенному к точке касания.

Имейте в виду, что радиус Земли дан в милях, а высота, на которой находится самолет - в футах. Следовательно, сначала необходимо конвертировать единицы измерения.

5. Введите данную формулу в свою программу:

leg2 = sqrt((radius + alt)**2 - radius**2)

Будьте внимательны со скобками и не забудьте ввести **2 для указания степени. Также нужно использовать переменную радиуса (radius), которая будет являться в формуле значением радиуса Земли. Она будет равна 3958.8:

radius = 3958.8

Перед тестированием программы необходимо прояснить еще два момента.

6. Не забудьте, что выражение input() выдает строку. А нам необходимо число. Поэтому к выражению input нужно добавить функцию float:

alt = float(input("Altitude of plane? "))

Также мы помним, что высота дана в футах, а радиус - в милях. Конвертируйте футы в мили для значения высоты, используя следующее выражение:

alt = alt / 5280

7. Теперь почти все готово для запуска программы. Осталось только отобразить ответ!

print(leg2)

выражение выше отображает ответ, но более информативной все же будет следующая формулировка:

print('Distance to horizon: ', leg2, 'miles')

Как только вы выполните все вышеуказанные шаги, нажмите ctrl+R, чтобы запустить программу. Попробуйте поэкспериментировать и подставить другие значения высоты.

Не забудьте сохранить свой документ.

8. Важно: Порядок выражений в последней программе очень важен, а порядок, в котором они вводятся в программу, несущественен. В этом заключается особенность текстового редактора. Данная программа и другие программы в рамках Уроков Второго раздела являются примерами "последовательной" структуры языка, в котором система обрабатывает выражения сверху вниз.

При запуске программы комментарии, пробелы, пустые строки не учитываются. Выражения import помогают загрузить дополнительные функции из других модулей, которые доступны в языке программирования TI-Nspire Python.

9. Вопрос 1: Международная Космическая Станция пролетает на высоте 254 мили над поверхностью Земли. Насколько далеко экипаж находится от горизонта?

Вопрос 2: Если вы стоите на пляже у кромки воды и смотрите на океан, насколько далеко от вас находится горизонт?

Подсказка: Введите высоту, на которой находятся ваши глаза по отношению к земле.

Примечание для учителя: Округление: В языке Python есть встроенная функция округления round(number, #places).

Пример: выражение leg2 = round(leg2, 3) округляет сторону 2 (leg2) до 3-х разрядов

Функцию round() можно найти через меню: menu > Built-ins > Type.

Но... иногда получаются нежелательные результаты вычисления:

[ошибка: это недостаток языка Python]

Ответ на вопрос 1:

Сначала нужно конвертировать 254 мили в футы в приложении Shell, затем запустить программу:

Ответ на вопрос 2: зависит от того, какой рост у учащегося (на какой высоте расположены его глаза).