Расчет уравнения
Здравствуйте!:) Помогите пожалуйста новичку.:help: Проблема вот в чем. Необходимо написать страничку на которой будут производится расчеты. Должны быть 4 поля. 1-е выпадающий список из перечня факторов(15), 2-е поле ввод значения, 3-е выпадающий список(года) и 4-е собственно результат. То есть у нас есть 15 уравнений, каждое уравнение соответствует фактору. Например, мы выбираем 2 фактор, вводим цифрами значение, выбираем год и у нас в поле выводится значение, которое мы получаем путем расчета уравнения 2. Т.е у нас номера уравнений должны соответствовать номерам факторов, и в это уравнение должно подставляться введенное значение и введенный год, а результат должен выводится в 4 поле. Подскажите пожалуйста как такое можно реализовать, :cray: или может есть статьи какие то похожие, почитать:help:
|
Цитата:
<select id="factor"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> </select> <input type="text"> <select id="year"> <option value="1990">1990</option> <option value="1991">1991</option> <option value="1992">1992</option> <option value="1993">1993</option> <option value="1994">1994</option> <option value="1995">1995</option> <option value="1996">1996</option> <option value="1997">1997</option> <option value="1998">1998</option> <option value="1999">1999</option> <option value="2000">2000</option> <option value="2001">2001</option> <option value="2002">2002</option> <option value="2003">2003</option> <option value="2004">2004</option> <option value="2005">2005</option> <option value="2006">2006</option> <option value="2007">2007</option> <option value="2008">2008</option> <option value="2009">2009</option> <option value="2010">2010</option> <option value="2011">2011</option> <option value="2012">2012</option> <option value="2013">2013</option> <option value="2014">2014</option> </select> <label for="result">Результат: <input type="text" id="result"></label> <button>Получить результат</button> |
Вот пример 5-ти уравнений:
X1: (6.13+0.3*n)lnx-(42.60+3.7*n) X2: (3.054-0.7*n)lnx-(18.022+16.205*n) X3: (0.6393+0.5*n)lnx+(6.0756+15.6*n) X4: (8.4689+0.52*n)lnx-(54.782+3.13*n) X5: (-1.578+0.635*n)lnx+(28.168-6.472*n) То есть, выбираем в 1-м поле, н-р, 2 фактор, пишем значение н-р 1300, и выбираем к примеру, 2008 год, тогда, чтоб получить результат в 4 поле,мы должны рассчитать 2 уравнение: X2: (3.054-0.7*n)lnx-(18.022+16.205*n), Где n-год, вместо него 8(т.к 2008 год), lnx-значение которое мы ввели, а именно ln1300. Это уравнение рассчитывается и в 4 поле мы получаем результат. |
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>ГГ</title> <style> * { margin:0; padding: 0; outline: none; } label { display: block; padding: 20px; margin: 20px; border: 1px solid red; } </style> </head> <body> <select id="factor"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <!-- <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> --> </select> <label for="value"> Введите значение: <input type="text" id="value"> </label> <select id="year"> <!-- <option value="1990">1990</option> <option value="1991">1991</option> <option value="1992">1992</option> <option value="1993">1993</option> <option value="1994">1994</option> <option value="1995">1995</option> <option value="1996">1996</option> <option value="1997">1997</option> <option value="1998">1998</option> <option value="1999">1999</option> --> <option value="2000">2000</option> <option value="2001">2001</option> <option value="2002">2002</option> <option value="2003">2003</option> <option value="2004">2004</option> <option value="2005">2005</option> <option value="2006">2006</option> <option value="2007">2007</option> <option value="2008">2008</option> <option value="2009">2009</option> <option value="2010">2010</option> <option value="2011">2011</option> <option value="2012">2012</option> <option value="2013">2013</option> <option value="2014">2014</option> </select> <label for="result">Результат: <input type="text" id="result"></label> <button>Получить результат</button> <script> var select1 = document.querySelector('#factor'); var select2 = document.querySelector('#year'); var valueElem = document.querySelector('#value'); var resultElem = document.querySelector('#result'); document.querySelector('button').onclick = function(){ var x = valueElem.value; var n = select2.options[select2.options.selectedIndex].value - 2000; var factor = select1.options[select1.options.selectedIndex].value; if (factor == 1){ resultElem.value = (6.13+0.3*n)*Math.log(x)-(42.60+3.7*n); } else if (factor == 2){ resultElem.value = (3.054-0.7*n)*Math.log(x)-(18.022+16.205*n); } else if (factor == 3){ resultElem.value = (0.6393+0.5*n)*Math.log(x)+(6.0756+15.6*n); } else if (factor == 4){ resultElem.value = (8.4689+0.52*n)*Math.log(x)-(54.782+3.13*n); } else if (factor == 5){ resultElem.value = (-1.578+0.635*n)*Math.log(x)+(28.168-6.472*n); } } </script> </body> </html> |
Спасибо вам огромное!Очень выручили!!!
|
А как можно прописать, чтоб число выводилось по модулю?
|
Цитата:
https://developer.mozilla.org/ru/doc...jects/Math/abs |
После последнего if прописана такая строчка:
resultElem.value = Math.abs(factor); Теперь вообще не считает:cray: |
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>ГГ</title> <style> * { margin:0; padding: 0; outline: none; } label { display: block; padding: 20px; margin: 20px; border: 1px solid red; } </style> </head> <body> <select id="factor"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <!-- <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> --> </select> <label for="value"> Введите значение: <input type="text" id="value"> </label> <select id="year"> <!-- <option value="1990">1990</option> <option value="1991">1991</option> <option value="1992">1992</option> <option value="1993">1993</option> <option value="1994">1994</option> <option value="1995">1995</option> <option value="1996">1996</option> <option value="1997">1997</option> <option value="1998">1998</option> <option value="1999">1999</option> --> <option value="2000">2000</option> <option value="2001">2001</option> <option value="2002">2002</option> <option value="2003">2003</option> <option value="2004">2004</option> <option value="2005">2005</option> <option value="2006">2006</option> <option value="2007">2007</option> <option value="2008">2008</option> <option value="2009">2009</option> <option value="2010">2010</option> <option value="2011">2011</option> <option value="2012">2012</option> <option value="2013">2013</option> <option value="2014">2014</option> </select> <label for="result">Результат: <input type="text" id="result"></label> <button>Получить результат</button> <script> var select1 = document.querySelector('#factor'); var select2 = document.querySelector('#year'); var valueElem = document.querySelector('#value'); var resultElem = document.querySelector('#result'); document.querySelector('button').onclick = function(){ var x = valueElem.value; var n = select2.options[select2.options.selectedIndex].value - 2000; var factor = select1.options[select1.options.selectedIndex].value; if (factor == 1){ resultElem.value = Math.abs((6.13+0.3*n)*Math.log(x)-(42.60+3.7*n)); } else if (factor == 2){ resultElem.value = Math.abs((3.054-0.7*n)*Math.log(x)-(18.022+16.205*n)); } else if (factor == 3){ resultElem.value = Math.abs((0.6393+0.5*n)*Math.log(x)+(6.0756+15.6*n)); } else if (factor == 4){ resultElem.value = Math.abs((8.4689+0.52*n)*Math.log(x)-(54.782+3.13*n)); } else if (factor == 5){ resultElem.value = Math.abs((-1.578+0.635*n)*Math.log(x)+(28.168-6.472*n)); } } </script> </body> </html> |
Часовой пояс GMT +3, время: 15:35. |