Пропустить к содержанию
Руководство Varlig
Главная страница Varlig

Выражения на естественном языке

Varlig понимает не только символы, но и ряд повседневных английских выражений. Используйте их, когда словами понятнее: чтобы разделить счёт, посчитать стоимость покупок или взять три четверти количества из рецепта.

На этой странице описаны правила чтения таких выражений: как Varlig разбирает строку, распознаёт числа и дроби прописью и объединяет фразы. Произвольный текст при этом не поддерживается. Полный список приведён в справочнике выражений. Вопросы о процентах разобраны в разделе Проценты, а словесная запись функций, например square root of 16, — в разделе Математика словами.

Как Varlig разбирает фразы

В заметках текст соседствует с формулами, поэтому Varlig разбирает каждую строку вычислений в два этапа:

  1. Сначала пробует вычислить строку целиком, используя все поддерживаемые выражения. Если строка распознана, возвращается результат этого выражения.
  2. Только если это не удалось, отбрасывает незнакомые слова и вычисляет оставшуюся часть.

Поэтому повседневные выражения работают отдельной строкой без вводных слов, а несколько лишних слов не мешают вычислению:

calc
two and a half hours in minutes даёт 150 min
$62 with 18% tip даёт $73.16
a third of £90 даёт £30.00
5 apples + 3 oranges даёт 8

При желании строку можно начать с what is или calculate. Varlig одинаково понимает what is a third of £90 и a third of £90.

Короткое описание до или после выражения допустимо: Varlig пропускает несколько обычных слов. Поэтому coat £45 with 20% VAT и £45 with 20% VAT please по-прежнему добавляют НДС, а 65 kg in pounds for the team выполняет перевод единиц. Длинные описания, а также текст, который нужно однозначно отделить от вычислений, лучше оформлять меткой или комментарием:

calc
coat £45 with 20% VAT даёт £54.00
£45 with 20% VAT please даёт £54.00
65 kg in pounds for the team даёт 143.3004704202 lb
Coat: £45 with 20% VAT даёт £54.00
£45 with 20% VAT # new winter coat for Sam даёт £54.00

Выражения, уже называющие участников или предметы, например split £90 among 3 friends, должны заканчиваться этим существительным. Последующие пояснения оформляйте комментарием.

Метки и комментарии описаны в разделе Запись вычислений.

Числа прописью

Целые числа можно писать английскими словами, с and и дефисами или без них:

calc
twelve hundred даёт 1,200
one hundred and twenty даёт 120
twenty-five plus five даёт 30

Для десятичной дроби напишите point, а затем каждую цифру по отдельности. one point two five означает 1,25; форма one point twenty five не поддерживается.

calc
three point one four даёт 3.14
one point two five times four даёт 5

Дроби

Обыкновенные дроби прописью работают с of, а также в составе смешанных чисел перед единицей измерения:

calc
three quarters of 200 даёт 150
two thirds of 450 g даёт 300 g
a quarter of 200 даёт 50
third of 90 даёт 30
two and three quarters hours даёт 2.75 hours

Поддерживаются знаменатели half, third, quarter (или fourth), fifth, sixth, seventh, eighth, ninth и tenth, а также формы множественного числа, например thirds и halves. Артикль a необязателен: quarter of 100 равно 25, а third of March по-прежнему означает дату. Дроби сохраняют точность, поэтому one third times three даёт ровно 1, а не 0,9999999999.

Доли часа можно записывать привычными английскими выражениями; результат выводится в часах и минутах:

calc
half an hour + 20 min даёт 50 min
quarter of an hour даёт 15 min
an hour and a half даёт 1 hour 30 min

Арифметика словами

Используйте plus, minus, times, multiplied by и divided by, свободно сочетая их с цифрами и символами. Порядок действий обычный: умножение и деление выполняются до сложения и вычитания. Для другого порядка используйте скобки.

calc
fifty times twenty plus ten даёт 1,010
twenty divided by five plus two multiplied by three даёт 10
(two plus three) times four даёт 20
seven times £8.50 даёт £59.50

Покупки: товары, скидки, налоги и чаевые

Выражение N items at P each умножает количество на цену. Вместо items подойдёт существительное, описывающее покупку, например tickets, coffees или bottles. Слово each можно опустить, а вместо предлога использовать @. Выражения after P% discount и with P% off вычитают процент из предшествующей суммы; with P% tax, with P% VAT, with P% GST и with P% tip прибавляют процент. Регистр неважен: with 20% vat тоже работает.

calc
3 tickets at £12.50 each даёт £37.50
3 coffees @ £2.80 даёт £8.40
2 adults at £15 + 3 children at £8 даёт £54.00
£15 each for 4 people даёт £60.00
£80 after 25% discount даёт £60.00
£80 with 25% off даёт £60.00
£45 with 20% VAT даёт £54.00
$62 with 18% tip даёт $73.16
5 items at $20 each after 15% discount with 8% tax даёт $91.80

Количество может быть целым или дробным, поэтому эта же форма подходит для товаров на вес или на розлив. Содержимое одной единицы может быть ценой, числом без единиц или измеряемой величиной. Слово items — обычное существительное во множественном числе, и добавлять к нему ещё одно each не требуется.

calc
2.5 tickets at £4 each даёт £10.00
12 gallons at $3.59 даёт $43.08
2.5 kg at £4 даёт £10.00
6 items at £9.90 даёт £59.40
14 boxes at 12 kg each даёт 168 kg
half a bottle at £2.35 даёт £1.18

Упаковки, коробки и бутылки можно описать как на ценнике. N things of M означает указанное число единиц с заданным содержимым каждой. Цена после выражения относится ко всей упаковке, а при добавлении each — к каждому предмету в ней:

calc
3 packs of 500 g даёт 1,500 g
2 packs of 12 at £3.99 даёт £7.98
3 boxes of 48 at £27.60 each даёт £3,974.40
a dozen eggs at £0.30 each даёт £3.60
2 pints of milk at 65p даёт £1.30
12 payments of £50 даёт £600.00

Размер перед количеством описывает товар, поэтому число рядом с at или @ по-прежнему задаёт количество. Символ x возле товара также обозначает его количество, а количество за период сохраняет этот период:

calc
500g pasta 3 packs at £1.10 each даёт £3.30
330ml cans 24 @ 45p даёт £10.80
oat milk x3 £1.90 each даёт £5.70
3x oat milk £1.90 each даёт £5.70
2 coffees a day at £3.20 даёт £6.40/day
2 coffees a day at £3.20 * 5 days даёт £32.00

Два количества подряд перемножаются: так в смете можно указать число людей и длительность работы. А количество предметов, разложенных по ёмкостям заданной вместимости, позволяет вычислить число ёмкостей:

calc
3 men 7 hrs @ £42/hr даёт £882.00
2 x 128 GB cards at £119 даёт £238.00
60 bottles in cases of 12 даёт 5 cases

Поправки применяются слева направо, каждая — к уже полученному результату. Две скидки по 10% дают общую скидку 19%, а не 20%. Чаевые, добавленные после налога, рассчитываются от суммы с налогом:

calc
£50 after 10% discount after 10% discount даёт £40.50
$84 with 8% tax with 15% tip даёт $104.33

Как разделить счёт

Эти формы делят общую сумму между указанным числом людей:

calc
split £90 among 3 даёт £30.00
share £90 between 3 даёт £30.00
£90 split among 3 даёт £30.00
£90 between 3 даёт £30.00
£90 split 3 ways даёт £30.00

После числа можно указать, кто участвует в расчёте, чтобы запись читалась естественнее:

calc
split £100 among 3 people даёт £33.33
share £60 between 4 friends даёт £15.00
£97 between 6 of us даёт £16.17
6 people split £97 даёт £16.17

Платёж в рассрочку — то же деление, записанное привычной для оформления покупки фразой:

calc
£3,603.91 in 9 instalments даёт £400.43
split £3,603.91 into 9 payments даёт £400.43
divide £3,603.91 into 9 даёт £400.43
11 instalments of £74.80 даёт £822.80
balance = £900
balance in 3 instalments даёт £300.00

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

Количество должно быть целым числом. Деление между 0 участников выводит Error: divide by zero. Вне этих выражений split — обычное слово, которое может входить в имя: при my split = £45 выражение my split + £5 равно £50,00. Если общая сумма сама задана вычислением, заключите его в скобки, чтобы однозначно указать, что делится. Именованные значения тоже подходят:

calc
split (£60 + £24) among 3 даёт £28.00
bill = £84
people = 3
split bill among people даёт £28.00

Выражения работают и внутри условий. Вычисляется только выбранная ветвь:

calc
bill = £112
people = 4
if bill > £100 then split bill among people else bill даёт £28.00

Меньше и больше заданного значения

A less than B вычитает A из B, а A more than B прибавляет A к B:

calc
£15 less than £80 даёт £65.00
5 less than 20 даёт 15
£15 more than £80 даёт £95.00
5 more than 20 даёт 25

the difference between вычисляет расстояние между двумя величинами независимо от их порядка, поэтому результат никогда не бывает отрицательным:

calc
the difference between £85 and £120 даёт £35.00

Преобразование результата

Перевод единиц в конце строки применяется к результату всего выражения. Можно использовать in, to, as, -> или →, как описано в разделе Единицы и их перевод:

calc
two and three quarters hours in minutes даёт 165 min
three quarters of 2 kg in g даёт 1,500 g

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

calcРезультаты зависят от сегодняшней даты или актуальных данных
split €120 among 4 in USD даёт $35.10

Ваши имена имеют приоритет

Если имя переменной в заметке совпадает со словом в выражении, приоритет у переменной. Здесь share содержит процент, поэтому вторая строка вычисляет 25% от £2 000, а не пытается что-либо разделить:

calc
share = 25%
share of £2,000 даёт £500.00

То же относится к числам прописью: после one = 7 выражение one times two даёт 14. Если это не тот результат, который нужен, выберите другое имя или иную форму выражения.

Но если строка распознаётся как целое выражение, приоритет у него. Даже если вы дали переменной имя из тех же слов, смысл строки не изменится:

calc
each = £43.41
3 tickets at £12.50 each даёт £37.50
per night = £90
£118 per night * 3 nights даёт £354.00
monthly repayment = £300
monthly repayment on £15000 over 4 years at 6% даёт £352.28

Наведите указатель на слова, чтобы увидеть пояснение «Part of the phrase here, not the variable each = £43.41.» — здесь это часть выражения, а не переменная. Слова per, a и an внутри величины на единицу всегда относятся к этой записи, а не к вашей переменной.

Перевод единиц работает аналогично: после in, to или as единица имеет приоритет перед именем, содержащим число без единиц. Поэтому переменная с таким именем не препятствует переводу:

calc
miles = 12
20 km in miles даёт 12.4274238447 mi

Обычные имена не мешают подсчёту предметов. Число непосредственно перед существительным во множественном числе задаёт количество. Поэтому в заметке может быть собственная переменная people, а счёт можно разделить между другим числом людей:

calc
people = 4
split £1480 among 5 people даёт £296.00
split £1480 among people даёт £370.00

Наведите указатель на people в первом выражении деления, чтобы увидеть «Counts people here, not the variable people = 4.» — здесь слово обозначает людей, а не переменную.

Это позволяет называть значения привычным образом. Имя может совпадать с названием функции, например floor, или содержать слова to, in или needed: Varlig прочитает его как вашу переменную:

calc
floor = 12 m²
floor * 2 даёт 24 m²
paint needed = 12.44 L
paint needed to 1 dp даёт 12.4 L

Подробнее о выборе имён — в разделе Имена.

Фразы на других языках

Английские выражения с этой страницы работают в любой заметке. Если для заметки выбран немецкий, французский, испанский, шведский, португальский, украинский или турецкий формат чисел, она также понимает выражения этого языка для долей, четырёх арифметических действий, перевода единиц и суммирования строк выше. Формат задаётся в Settings › Calculations, в меню заметки Calculation Settings for This Note… или через System Region на Mac с соответствующим языком системы.

Язык Доля Конвертация Суммирование
Немецкий 20 % von 150 5 km nach m Summe
Французский 20 % de 150 5 km en m somme
Испанский 20 % de 150 5 km en m suma
Шведский 20 % av 150 5 km i m summa
Португальский 20% de 150 5 km em m soma
Украинский 20% від 150 5 км у м сума
Турецкий 150'nin %20'si 5 km kaç m toplam

Каждая строка даёт тот же результат, что и её английский вариант. Эти слова распознаются только в заметках соответствующего языка, поэтому в английской заметке de, en и a сохраняют своё обычное значение. Китайские выражения, например 150的20%, работают в любых заметках. В Format › Calculation Examples… первыми показаны примеры на языке заметки.

В турецком знак процента ставится перед числом: %20 и yüzde 20 означают 20%, а результат в турецком формате выводится как %20. Знак после числа, например в 10 % 3, по-прежнему означает остаток от деления.

Денежный формат тоже зависит от языка: бразильский португальский использует R$ 12,50, украинский — 12,50 ₴, турецкий — ₺12,50. Обозначение грн означает гривну в любой заметке, а TL — турецкую лиру только в заметке с турецким форматом.

Что не распознаётся

Некоторые записи похожи на математические выражения, но не поддерживаются. Чтобы не вычислять только часть строки и не вводить в заблуждение, Varlig показывает ошибку:

calc
2d6 даёт Unsupported: Dice notation is not supported at "d"
10 ± 0.5 даёт Unsupported: Uncertainty notation is not supported at "±"
5 < 4 < 10 даёт Unsupported: Comparison chains are not supported at "<"; combine separate comparisons with &&

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

10 +/- 0.5 вызывает ту же ошибку о неопределённости. Для проверки диапазона запишите два сравнения через &&, например 4 < 5 && 5 < 10. См. Операторы, сравнения и условия.

Всё вместе

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

calc
# Dinner out
mains = 4 items at £17.50 each даёт £70.00
wine = 2 bottles at £28 each after 25% discount даёт £42.00
bill = mains + wine даёт £112.00
people = 4
total = bill with 12.5% tip даёт £126.00
split total among people даёт £31.50

Каждая строка читается как обычная английская фраза. Измените people или цену — доля каждого обновится.