Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Арифметика на Javascript

77K
02 декабря 2011 года
taisia.nntu
2 / / 02.12.2011
Задание: Сгенерировать последовательность с помощью датчика случайных чисел и найти сумму чётных элементов данной последовательности целых чисел.
Необходимо реализовать на Javascript.
Что имеем:
Код:
<input type="button" name="button" value="Найти сумму чётных элементов последовательности целых чисел" &#111;&#110;Click="summa(1,9);"><br><br>
<script>
    function summa(min_random, max_random) {
        var range = max_random - min_random + 1;
        return Math.floor(Math.random()*range) + min_random;
        var b=range.length;
        var s=0;
       range=Number(range);
       if (b%2=0){
        for (i=1; i<b+1; ++i){
           s=s+ b;
           }
        }
       else {
          s=s;
          }
    alert("Сумма сумма чётных элементов последовательности целых чисел равна:"+s);
    }
</script>


Собственно проблема в том, что данный код не работает. Что не так? И как это исправить?
244
02 декабря 2011 года
UAS
2.0K / / 19.07.2006
Полагаю, проблема в том, что написан полный бред.

1) Зачем return? Потому и не работает.
2) Не легче генерируемые данные записывать в массив?
3) Все что идёт ниже b = range.length логике вообще не поддаётся
77K
02 декабря 2011 года
taisia.nntu
2 / / 02.12.2011
1. function summa(min_random, max_random) {
var range = max_random - min_random + 1;
return Math.floor(Math.random()*range) + min_random;
эти три строчки для генерации случайных целых чисел выисканы с форума . Зачем там return без понятия.
Все остальное авторский бред.
2. Возможно и легче. Не представляю только как .
3. Что я хотела сказать :
function summa(min_random, max_random) { // первые 3 строчки генерируют послед-ть
var range = max_random - min_random + 1;
return Math.floor(Math.random()*range) + min_random;
var b=range.length; // переменная b это размер посл-сти
var s=0; // переменная для суммы
range=Number(range); // возможно лишнее. переводим посл-сть в число
if (b%2=0){ // тут похоже косяк. вместо b нужно range. но смысл, что если при делении на 2 получим в остатке ноль, тогда вып-ся след. условие
for (i=1; i<b+1; ++i){
s=s+ b;// здесь тоже бред. вместо b range?
}
}
else {
s=s;
}
alert("Сумма сумма чётных элементов последовательности целых чисел равна:"+s);
}
244
02 декабря 2011 года
UAS
2.0K / / 19.07.2006
Приведу пример без генерации последовательности. На каждом шаге цикла будет браться случайное число и учитываться при подсчёте суммы. По сути, то же самое, только последовательность не хранится в отдельной переменной.
Рекомендую все-таки не тупо копировать код, а разбираться что он делает, иначе далеко не уйдете.
Код:
/**
 * int sizeof - размер последовательности
 * int rand_max - максимальное число при генерации случайного значения
 */
function f(sizeof, rand_max) {
    var offset = 0;
    var sum = 0;
    while( offset < sizeof ) {
        rand = parseInt(Math.random()*rand_max);
        if( (rand % 2) == 0 ) sum += rand;
        offset++;
    }

    alert("Сумма равна:"+sum);
}

Здесь подразумевается, что ищется сумма четных чисел. Если нужны именно четные элементы - то надо rand % 2 заменить на offset % 2.

А вот чтобы реализовать это именно последовательностью (т.е. её нужно хранить в памяти и потом пробегать по массиву) - это уже ваше домашнее задание от меня)

P.S.: на JS не писал более года, потому мог где-то накосячить по синтаксису.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог