Bilim.techО проекте

Функции и расчет по формуле

Зачем упаковывать формулу в функцию? Опиши расход топлива, ресурс шины или путь торможения функцией и смотри, как по ней строится график и заполняется таблица вызовов.

01 Что это такое

Функция это формула, упакованная в коробку с именем. Даешь ей числа на входе, она считает и возвращает ответ.

Расход топлива самосвала считают по одной и той же формуле для любой мощности. Чтобы не переписывать ее десять раз, формулу один раз описывают как функцию: имя, входные числа (параметры) и строку «вернуть» с ответом. Потом пишут расход(1500, 210), и функция сама подставит числа. Все, что функция посчитала внутри себя, остается внутри: снаружи видно только то, что она вернула. Это и есть область видимости. Благодаря ей большую программу можно собрать из маленьких проверенных кусочков, как машину из узлов.

расход(N, ge)G = ge · N / 1000вернуть Gвнутри: свои переменныеN = 1500 кВтge = 210 г/(кВт·ч)315 кг/чпараметры (вход)результат (выход)
Снаружи видны только вход и выход. Как функция считает внутри, вызывающему коду знать не нужно.
f(x)
Вызов. Имя функции и аргументы в скобках. Программа прыгает внутрь функции, считает и возвращается с ответом.
N, ge
Параметры. Имена для входных чисел. При каждом вызове в них кладутся новые аргументы.
вернуть
Результат. Число, которое функция отдает наружу. После «вернуть» функция сразу заканчивается.
02 Опыт
Опиши формулу функцией. Смотри график и таблицу вызовов. ФУНКЦИЯ И ГРАФИК
РАСЧЕТ ПО ФОРМУЛЕ

Функция рисует свой график

Рис. 12.3
ГОТОВЫЕ ФОРМУЛЫ
Функция
Вызовов в программе
Последний результат
03 Код по строкам

Как устроена функция изнутри

Три части любой функции: заголовок с параметрами, тело с расчетом и строка «вернуть». Числа ниже берутся из последнего вызова в опыте.

Как описать функцию?

функция расход(N, ge):

Заголовок говорит, как функцию зовут и сколько чисел она ждет. Сама строка ничего не считает: она только запоминает рецепт. Считать функция начнет, когда ее вызовут.

функция
слово, с которого начинается описание
расход
имя. По нему функцию вызывают: расход(1500, 210)
N, ge
параметры. При вызове N = 1500, ge = 210, по порядку

Как отдать ответ?

вернуть ge * N / 1000

«вернуть» считает выражение и отдает число туда, откуда функцию вызвали. На место вызова расход(1500, 210) в программе как будто встает число 315.

G
часовой расход топлива, кг/ч
ge
удельный расход, г/(кВт·ч): сколько граммов дизеля нужно на 1 кВт·ч работы. У современного дизеля 195–220
N
мощность двигателя, кВт
1000
переводит граммы в килограммы

Что видно снаружи?

G внутри, кг снаружи

Переменные, созданные внутри функции, живут только во время вызова. После «вернуть» они исчезают. Поэтому в разных функциях можно называть переменные одинаково, и они не помешают друг другу.

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

Тот же код на настоящем Python

В Python слово «функция» пишут как def, «вернуть» как return. Остальное то же: двоеточие, отступ, параметры в скобках. Функция round(x) округляет, а цикл «для N от 500 до 2000 шаг 500» превращается в range(500, 2001, 500).

В Python для инженерных расчетов есть готовые наборы функций: math для корней и синусов, numpy для расчетов сразу над целыми столбцами чисел. Но свою формулу все равно оборачивают в def, чтобы проверить ее один раз и потом вызывать везде.

Откуда берется торможение на спуске, разобрано в механике в теме «Трение»; как мощность двигателя связана с расходом, в теме «Внешняя скоростная характеристика двигателя».

Перевод делается автоматически из кода в опыте.
04 Где и зачем это применяют

Каждая инженерная формула просится в функцию

Допущения модели+

Расход топлива G = ge · N / 1000 верен при постоянном удельном расходе; на самом деле ge меняется с нагрузкой и оборотами, меньше всего он на средних оборотах и высокой нагрузке. Плотность дизеля принята 0,84 кг/л. Формула ресурса шины учебная: она передает характер (перегруз сильно сокращает ресурс, скорость греет шину), но настоящий ресурс считают по TKPH, температуре и состоянию дороги. Путь остановки: 1,5 с на реакцию водителя и срабатывание тормозов, сцепление 0,35, замедление на спуске a = g · (φ − i), сопротивление качению и замедлитель не учтены. График строится вызовом функции в 120 точках, точки с ошибкой (деление на ноль и т. п.) пропускаются.

Еще в направлении «Инженерия»

Все темы направления «Инженерия» →