Линейная пропорция онлайн :)
Javascript-поделка непонятных времён на тему линейной пропорции :) Впрочем, не должна быть очень старой, раз для округления вещественных чисел использован метод .toFixed
Смысл этого маленького скрипта - онлайн-вычисление линейной пропорции, то есть, "40 относится к 83 как 17 к чему?" из начальной школы :)
Любопытно в коде - контроль ввода в calcMe(), никаких лишних сообщений и никакой кнопки "Вычислить", а как только введены 3 числа, так и 4-е считается.
Вот в работе и код:
<script type="text/javascript"> function trim(string) { return string.replace (/\s+/g,""); } function toFixed(n) { var z = document.formpro.fixedN.options[document.formpro.fixedN.selectedIndex].value; return (z==-1 ? n : n.toFixed(z)); } function isLastPoint (a) { return a.substring(a.length-1)=='.' && a.lastIndexOf('.') == a.indexOf('.'); } function calcMe () { var a1=parseFloat(trim(document.formpro.a1.value)); var c1=parseFloat(trim(document.formpro.c1.value)); var b2=parseFloat(trim(document.formpro.b2.value)); if (isNaN(a1) || isNaN(c1) || isNaN(b2)) return; document.formpro.a1.value = a1 + (isLastPoint(document.formpro.a1.value) ? '.' : ''); document.formpro.c1.value = c1 + (isLastPoint(document.formpro.c1.value) ? '.' : ''); document.formpro.b2.value = b2 + (isLastPoint(document.formpro.b2.value) ? '.' : ''); var d2 = c1*b2/a1; document.formpro.d2.value = (isNaN(d2) ? "Ошибка" : toFixed(d2)); } function clearMe () { document.formpro.a1.value = ''; document.formpro.c1.value = ''; document.formpro.b2.value = ''; document.formpro.d2.value = ''; } </script> <noscript><div align="center">Извините, для работы приложения нужен включённый Javascript</div></noscript> <form name="formpro" method="post" onsubmit="return false;"> <table align="center" cellpadding="0" cellspacing="4" border="0"> <tr> <td align="center" valign="middle">Отношение</td> <td align="center" valign="middle"><input type="text" name="a1" size="10" maxlength="8" value="" tabindex="1" onselect="calcMe();" onclick="calcMe();" onkeyup="calcMe();" /></td> <td align="center" valign="middle">к</td> <td align="center" valign="middle"><input type="text" name="c1" size="10" maxlength="8" value="" tabindex="2" onselect="calcMe();" onclick="calcMe();" onkeyup="calcMe();" /></td> <td align="center" valign="middle"> <input type="button" name="clear" value="Очистить" onclick="clearMe();" tabindex="4"/> </td> </tr> <tr> <td align="center" valign="middle">=</td> <td align="center" valign="middle"><input type="text" name="b2" size="10" maxlength="8" value="" tabindex="3" onselect="calcMe();" onclick="calcMe();" onkeyup="calcMe();" /></td> <td align="center" valign="middle">к</td> <td align="center" valign="middle"><input type="text" name="d2" size="10" value="" readonly /></td> <td align="center" valign="middle"> <select name="fixedN" size="1" tabindex="5" onchange="calcMe();"> <option value="-1" selected>не округлять <option value="0">в целых <option value="1">1 знак <option value="2">2 знака <option value="3">3 знака <option value="4">4 знака <option value="5">5 знаков <option value="6">6 знаков <option value="7">7 знаков <option value="8">8 знаков <option value="9">9 знаков </select> </td> </tr> </table> </form>
Случай из жизни в тему:
Директор крупной торгово-закупочной компании в личном разговоре жалуется мне на своих "специалистов", молодых выпускников (нецензурные слова заменены на ***):
- Чему вы там, ***, этих менеджеров ***ных учите... Ну ладно, сложных процентов от простых не отличат, я в них сам, ***, путаюсь, но линейная пропорция-то мне, ***, в логистике нужна! Ни ***а не умеют... и вот я, директор, ***, хожу и им пропорции считаю! Меня, ***, ещё по малолетке в седьмом классе этому научили!
- Тогда бакалавриата и подушевого финансирования не было, Андреич.
27.04.2016, 21:24 [6407 просмотров]