Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Помогите упростить скрипт [3]
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
Эдвард пишет:
В том-то и вопрос, почему переменные a, b, c не участвуют в математической операции. Сколько не пытался добиться ответа по ошибке, пока только издевательское молчание.
Эдвард, у вас проблема не только с массивами.
Огругление вверх Math.ceil для любого числа в диапазоне 0 < x <=1 выдаст 1. Math.ceil(1/100), Math.ceil(2/100), Math.ceil(99/100), Math.ceil(100/100) все равны 1. так что переменные учавствую, только результат одинаковый.
Эдвард пишет:
Наоборот: если значение переменной = 0, в окне должна проявиться буква «Р».
в примере кода элементы массивов принимают только 3 значения: 1, 2, 3. Какое из этих значений равно нулю?
Эдвард
Отправлено: 06 Октября, 2014 - 20:37:20
Новичок
Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2014
Помог: 0 раз(а)
IllusionMH пишет:
Огругление вверх Math.ceil для любого числа в диапазоне 0 < x <=1 выдаст 1
Так в том и заключается задумка счётчика, чтобы любое число (кроме 0) было преобразовано в 1.
IllusionMH пишет:
в примере кода элементы массивов принимают только 3 значения: 1, 2, 3. Какое из этих значений равно нулю?
Это ведь не буквальные значения, а значения индексов переменных.
IllusionMH
Отправлено: 06 Октября, 2014 - 20:46:19
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
Эдвард пишет:
Так в том и заключается задумка счётчика, чтобы любое число (кроме 0) было преобразовано в 1.
Эдвард, ну так из 1,2,3 всегда будут три единицы которые потом суммируются.
Эдвард пишет:
Это ведь не буквальные значения, а значения индексов переменных.
Эдвард, i - индекс, a[i] - элемент массива. В данном случае значения 1,2,3.
var a =[];var inputs = document.querySelectorAll('.r1');var n = inputs.length;var i;for(i =0; i< n; i += 1){ a[i]= parseInt(inputs[i].value, 10)||0;} console.log(a);
Честно говоря, не понял, как эта конструкция должна работать с оператором switch и как выводить данные на экран.
IllusionMH
Отправлено: 07 Октября, 2014 - 19:53:42
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Значения свичей считываются аналогично. Только вот три массива, меняются на матрицу(двумерный массив)
все a -> m[0], b -> m[1], c -> m[2], индексы у переменной превратятся в второй индекс a1 ->m[0][0]
А дальше вы должны придумать как имея номер игрока i и индекс чекбокса о заполнять нужный элемент m[i][j], т.к. только вы знаете что ж там за логика должна быть реализована и за вас никто эьтого делать не будет.
Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2014
Помог: 0 раз(а)
IllusionMH пишет:
только вы знаете что ж там за логика должна быть реализована
В задаче с игроками ничего сложного нет. Вся суть – в заполнении обычного графика средствами javascript. Но чтобы не напрягать людей вниканием в логику и чтением объёмного кода, специально создал упрощённую задачку с тремя условиями заполнения графика (ab, ac, bc). Единственное, что там требуется – это вместо трёх switch сделать один. К сожалению, как ни встраивал предложенную Вами конструкцию, ничего не работает. Неужели не найдётся более простого цикла для этой задачи: http://forum.php.su/topic.php?fo...12618#1412612618 ?..
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
IllusionMH пишет:
В идеале вместо трёх switch-ей должен быть один – например, такой:
....
Но опять же встаёт вопрос, как грамотно заполнить массивы для переменных e, a, b, c и создать для них соответствующий цикл.
Работает, как надо. Но возможно, связку цикл + switch записал не совсем грамотно (по крайней мере, не понятно, почему e.length распространяется также и на f).
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
Эдвард пишет:
(по крайней мере, не понятно, почему e.length распространяется также и на f)
Потому что "по условию задачи" они одинаковой длины (с одинаковым количеством элементов).
К тому-же в данном случае можно на этапе определения массива е заполнять его значением "form.e1.value + form.f1.value".
Покинул форум
Сообщений всего: 44
Дата рег-ции: Июль 2014
Помог: 0 раз(а)
Sail пишет:
Потому что "по условию задачи" они одинаковой длинны (с одинаковым количеством элементов).
К тому-же в данном случае можно на этапе определения массива е заполнять его значением "form.e1.value + form.f1.value"
Ясно. Спасибо. Теперь ломаю голову над тем, как менять все значения в каждом последующем столбце по заданному алгоритму (например, для значений первого столбца = +10, второго = +20, третьего = +30). Пока ничего вразумительного не приходит на ум.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.