Перейти к публикации

Изменен п. 12 раздела "Другие ограничения", просьба ознакомиться. Расшифровка и пояснения - тут

desti

Генератор калькуляторов

Рекомендованные сообщения

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

" Частоту (герц) во время (сек) " - https://www.chipmaker.ru/calc_php/calc.php?id=17

Там просто умножение.

Не считает.

Пробегается "лоадер" при нажатии "Посчитать" и пустые поля вывода как и были.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Tardis, нажмите "сохранить алгоритм" в редакторе калькулятора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос.

 

Дискретные вычислители типа Математика/Арифметика занимают слишком много места на экране и усложняют понимание и редактирование алгоритма.

 

Вычислитель "Выражения" может заменить все остальные вычислители, может оставить только его? Я сейчас окончательно его причесываю, он может считать всё, что угодно и любой сложности. В строку можно добавлять функции, константы, всякие pi и e, скобки любой глубины вложенности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

проверьте сейчас

Создал вновь калькулятор - не считает :cray:. Браузер Опера (56.0.3051.52), Хром (70.0.3538.67) и Файерфокс (62.0.3). Кэш чистил у всех, кроме оперы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зашел в редактор, сохранил алгоритм, вернулся, нажал на лупу, попробовал "Посчитать", не взялось. Зашел в редактор, добавил в алгоритм число, просто чтобы проконтролировать, что сохраняется, сохранил, вернулся. Не взялось.

Обновил все JS и другие файлы с домена/субдоменов форума. Попробовал. Не взялось.

Возможно у меня что-то не хватает (прав доступа, сил разума).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всё, нашел глюка, сейчас должно заработать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вычислитель "Выражения" поддерживает все свойства и методы javascript библиотеки Math. Т.е. вы можете свободно использовать выражения типа sin($1+pi) / (12 * sqrt(7+$2))

Единственное изменение - константы типа pi пишутся маленькими буквами, приставка Math не используется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо, работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вычислитель "Выражения" может заменить все остальные вычислители, может оставить только его?

И в самом деле, почему бы и нет? Только справку по функциям добавить было бы очень неплохо.

Сейчас обратил внимание, а если нужно в выражении использовать сразу три или больше значений, которые вводятся пользователем, как быть? В "Выражении" только 2 входных параметра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а если нужно в выражении использовать сразу три или больше значений

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Константы и функции для вычислителя "Выражения"

 

Тригонометрические функции (sin(), cos(), tan(), asin(), acos(), atan() и atan2()) принимают в параметрах или возвращают углы в радианах.

Для преобразования радианов в градусы, поделите их на величину (pi / 180); для преобразования в обратном направлении, умножьте градусы на эту же величину.

 

Константы:

 

e - число Эйлера, основание натуральных логарифмов, приблизительно равное 2,718.

ln2 - натуральный логарифм из 2, приблизительно равен 0,693.

ln10 - натуральный логарифм из 10, приблизительно равен 2,303.

log2e - двоичный логарифм из "e", приблизительно равен 1,443.

log10e - десятичный логарифм из "e", приблизительно равен 0,434.

pi - число Пи

sqrt1_2 - квадратный корень из 1/2, приблизительно равен 0,707.

sqrt2 - rвадратный корень из 2, приблизительно равен 1,414.

 

Функции:

 

abs(x) - абсолютное значение числа.

acos(x) - арккосинус числа.

acosh(x) - гиперболический арккосинус числа.

asin(x) - арксинус числа.

asinh(x) - гиперболический арксинус числа.

atan(x) - арктангенс числа.

atanh(x) - гиперболический арктангенс числа.

atan2(y, x) - арктангенс от частного своих аргументов.

cbrt(x) - кубический корень числа.

ceil(x) - наименьшее целое число, большее, либо равное указанному числу.

cos(x) - косинус числа.

cosh(x) - гиперболический косинус числа.

exp(x) - Ex, где x — аргумент, а E — число Эйлера (2,718…), основание натурального логарифма.

expm1(x) - exp(x) - 1.

floor(x) - наибольшее целое число, меньшее, либо равное указанному числу.

fround(x) - ближайшее число с плавающей запятой одинарной точности, представляющее это число.

hypot([x[, y[, …]]]) - квадратный корень из суммы квадратов своих аргументов.

log(x) - натуральный логарифм числа (loge, также известен как ln).

log1p(x) - натуральный логарифм числа 1 + x (loge, также известен как ln).

log10(x) - десятичный логарифм числа.

log2(x) - двоичный логарифм числа.

max([x[, y[, …]]]) - наибольшее число из своих аргументов.

min([x[, y[, …]]]) - наименьшее число из своих аргументов.

pow(x, y) - основание в степени экспоненты, то есть, значение выражения x^y.

random() - псевдослучайное число в диапазоне от 0 до 1.

round(x, n) - значение числа, округлённое до n цифр после запятой.

sin(x) - синус числа.

sinh(x) - гиперболический синус числа.

sqrt(x) - положительный квадратный корень числа.

tan(x) - тангенс числа.

tanh(x) - гиперболический тангенс числа.

trunc(x) - целая часть числа, без дробных цифр.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Потихоньку добавляю сложности :) Еще не реализовано публично.

 

https://chipmaker.ru/images/algo_1.png

 

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

Это реализация примерно вот такой функции, добавляющей слово к переменной в нужном склонении.

 

m = new Array(3)
m[1] = "Метр"
m[2] = "Метра"
m[5] = "Метров"

value = getFormData();
met = getMeters(value)
string = value + " " + m[met]
setFormData(string);

function getMeters(number)
{
number %= 100
if (number >= 5 && number <= 20) {  return 5 }
number %= 10
if (number == 1) { return 1 }
if (number >= 2 && number <= 4) { return 2 }
return 5
}

 

Есть более красивые реализации этой функции, но для них надо еще немножко доработать генератор.

 

Ну и пока есть время, переделал несколько старых калькуляторов и сочинил парочку новых.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поскольку в калькуляторах достаточно часто нужно использовать склонение существительных, сделал отдельный компонент "Склонение". Теперь ужасный ужас с картинки выше выглядит совсем не страшно:

 

plur_1.jpg

 

Входное число поступает на вход "склонятеля", который выдает 0-1-2 в зависимости от необходимого склонения, затем этот код подается на вход управляемого списка, который по индексу выплевывает слово в нужном склонении. Потом склеиваем число и слово и выдаем на выход.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Еще одна полезная фича - приставки системы СИ. Нужны для создания полей вывода в привычном виде.

 

pref_1.jpg

 

Работатет в диапазоне от фемто до тера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ссылка пока не работает, это было в предыдущей версии движка. Для новой пока не доделал, в процессе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Понятно.

P.S. а вот еще вопрос. Не знаете, что случилось с online-калькуляторами, которые рассчитывали элементы гидропривода (гидронасосы, гидромоторы) ...ссылки на которые расположены на первой странице темы "Часто Задаваемые Вопросы по гидравлике".

Они отвалились...
Будут ли они работать или уже нет?
Очень были удобные они.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Будут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Потихоньку в свободное время ковыряю "калькуляторы", сделал такую штуку для шабровщиков:

graph_2d.jpg

Вводим в окошки базу (длина платформы уровня), цену деления и через запятую значения уровня в делениях относительно нуля. На выходе имеем график нашей поверхности. Можно добавить несколько измерений, чтобы визуально был виден результат.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Плавную кривую надо заменить ломаной.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Интерполяция в настройках графиков: линейная, кубическая и кубическая монотонная.

graph_2d1.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.


×