Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Математический скрипт 
:(
    Опции темы
djnoob
Дата 6.7.2010, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.7.2010

Репутация: нет
Всего: нет



Здравствуйте!

JavaScript  сегодня увидел впервые и пытался разобраться, но пока глухо( 
Собственно что я хочу :

У меня есть:

n = eval(form.n.value);
m = eval(form.m.value);
p = eval(form.p.value);
x = Math.pow(2,3);
r = (factorial(n)/( factorial(m)*factorial(n-m)))*Math.pow(p,m)*Math.pow(1-p,n-m)
form.total.value = r


мне нужно написать функцию, в которой m будет от какого либо числа до n, а в возвращаться
будет сумма всех r этой функции. Пытался через for но получается ерунда( Кто нибудь может подсказать куда копать?)

PM MAIL   Вверх
bars80080
Дата 6.7.2010, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



пишешь математическую формулу, а затем выражаешь её в систаксисе языка программирования (это справедливо для любого ЯП)

представь формулу здесь, тогда её быстро переведут (хотя думаю, что и сам в таком случае справишься)
PM MAIL WWW   Вверх
CruorVult
Дата 6.7.2010, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 3
Всего: 28



при m=1 и n=4, посчитать суму r (1:4, 2:4, 3:4, 4:4)
если так, то
Код

for(i=m, i<=n; i++) {
r += (factorial(n)/( factorial(i)*factorial(n-i)))*Math.pow(p,i)*Math.pow(1-p,n-i);
}


PM MAIL Skype   Вверх
djnoob
Дата 7.7.2010, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.7.2010

Репутация: нет
Всего: нет



Спасибо, вроде так все, но не пойму почему не работает - при щелчке никакого результата
Код


function calculator(form) {
n = eval(form.n.value);
m = eval(form.m.value);
p = 0.5
x = Math.pow(2,3);
var r = 0

for(i=m, i<=n; i++) {
    r += (factorial(n)/( factorial(i)*factorial(n-i)))*Math.pow(p,i)*Math.pow(1-p,n-i);
    return r;
}
form.total.value = r
}


А при таком коде выдается результат
Код

function calculator(form) {
n = eval(form.n.value);
m = eval(form.m.value);
p = 0.5
x = Math.pow(2,3);
r = (factorial(n)/( factorial(i)*factorial(n-i)))*Math.pow(p,i)*Math.pow(1-p,n-i);
form.total.value = r
}

 smile 
PM MAIL   Вверх
patap
Дата 7.7.2010, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 1
Всего: 40



непоянто зачем в теле цикла return? return - прерывает работу функции, все что после него - не выполняется. 
Код

for(i=m, i<=n; i++) {
    r += (factorial(n)/( factorial(i)*factorial(n-i)))*Math.pow(p,i)*Math.pow(1-p,n-i);
    return r;
}

если хочешь выполнить только одну итерацию цикла - замени return на break;


И думаю нужно добавить проверку m и n на правильность.

Это сообщение отредактировал(а) patap - 7.7.2010, 09:19


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
djnoob
Дата 7.7.2010, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.7.2010

Репутация: нет
Всего: нет



Вот как все происходит:
Код

function calculator(form) {
n = eval(form.n.value);
m = eval(form.m.value);
p = 0.5
x = Math.pow(2,3);
c = factorial(n);

for(i=m, i<=n; i++) {
    r += (factorial(n)/( factorial(i)*factorial(n-i)))*Math.pow(p,i)*Math.pow(1-p,n-i);
    break;
}

form.total.value = r

}



Код

<input type="text" name="n" onchange="this.value=this.value.replace(/([^0-9])/g,'');" onkeyup="this.value=this.value.replace(/([^0-9])/g,'');"><br><br>

<input type="text" name="m" onkeyup="this.value=this.value.replace(/([^0-9])/g,'');"><br><br>

<input type="button" value="Рассчитать" onclick="calculator(this.form)">

<input type="text" name="total">


Почему то form.total.value не берет значение ни одного цикла, может я не так его пишу? 

PM MAIL   Вверх
patap
Дата 7.7.2010, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 1
Всего: 40



for(i=m; i<=n; i++)

))

Это сообщение отредактировал(а) patap - 7.7.2010, 09:57


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
djnoob
Дата 7.7.2010, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.7.2010

Репутация: нет
Всего: нет



patap, очепятку исправил, но все равно при клике по "Рассчитать" ничего не происходит(
PM MAIL   Вверх
patap
Дата 7.7.2010, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 1
Всего: 40



Код

<form>
   <input type="text" name="n" onchange="this.value=this.value.replace(/([^0-9])/g,'');" onkeyup="this.value=this.value.replace(/([^0-9])/g,'');"><br><br>
   <input type="text" name="m" onkeyup="this.value=this.value.replace(/([^0-9])/g,'');"><br><br>
   <input type="button" value="Рассчитать" onclick="calculator(this.form)">
   <input type="text" name="total">
</form>


Код

function calculator(form) {
  var n = eval(form.n.value);
  var m = eval(form.m.value);
  var p = 0.5;
  var x = Math.pow(2, 3);
  var c = factorial(n);
  var r = 0;

  for (i = m; i <= n; i++) {
    r += (factorial(n) / (factorial(i) * factorial(n - i))) * Math.pow(p, i) * Math.pow(1 - p, n - i);
  }

  form.total.value = r;
}


если функция factorial() - работает корректно, то должно работать.


ЗЫ пользуйся FireFox + Firebug



Это сообщение отредактировал(а) patap - 7.7.2010, 10:07


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
djnoob
Дата 7.7.2010, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.7.2010

Репутация: нет
Всего: нет



patap, спасибо большое !   стормозил я сильно 

Все переменные были без var,теперь все работает  smile 
PM MAIL   Вверх
patap
Дата 7.7.2010, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 1
Всего: 40



Цитата(djnoob @  7.7.2010,  10:17 Найти цитируемый пост)
Все переменные были без var

ну скорее ты забыл объявить var r = 0; и в цикле прибавлял значение к несуществующей переменной r


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
djnoob
Дата 7.7.2010, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.7.2010

Репутация: нет
Всего: нет



Да, упустил деталь  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.