08.11.2016, 14:13
|
Новичок на форуме
|
|
Регистрация: 08.11.2016
Сообщений: 3
|
|
Нужно подсчитать сколько было переходов от + к -
var temp = [17, -9, -20, -34, -2, 32, -14, 40, -49, 45, -1, -40, -23, 14, -23, -43, 5, 2, -45, 40, -10, 25, -31, -14, -43, 33, 1, -1, 1, 24, 13, -46, -34, -17, 10, -28, -19, -5, -38, 0, -34, 15, 21, -46, -27, 41, 15, 19, -9, 27, -7, -3, -16, 36, 35, 17, -38, 41, -5, 8, -7, -37, 17, -33, -21, 7, 1, 33, -13, 27, -41, 2, -43, 14, 26, 7, -11, 29, 43, -14, -1, 36, 19, -41, -38, -10, 16, -2, -21, -36];
В массиве содержаться данные о ежедневной температуре в течении зимних месяцев. Нужно подсчитать сколько было циклом замерзания в этот период (замерзания это когда сегодня температура плюсовая, а завтра минусовая).
Помогите с алгоритмом
Я понимаю что нужно сравнивать через for первый элемент массива со вторым и если первый + а второй - то записать как 1 замерзание, потом проверяем второй с 3м если нет перехода от - к + или если есть то не пишем, поверяем дальше - если есть опять переход от + к - пишем, и т.д. но как это кодом написать -_-
Последний раз редактировалось EuRusik, 08.11.2016 в 14:17.
|
|
08.11.2016, 14:22
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,205
|
|
Сообщение от EuRusik
|
первый элемент массива со вторым
|
Текущий с последующим...
Сообщение от EuRusik
|
если первый + а второй - то записать как 1 замерзание
|
Увеличить некий счетчик на единицу...
|
|
08.11.2016, 14:27
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
EuRusik,
var temp = [17, -9, -20, -34, -2, 32, -14, 40, -49, 45, -1, -40, -23, 14, -23, -43, 5, 2, -45, 40, -10, 25, -31, -14, -43, 33, 1, -1, 1, 24, 13, -46, -34, -17, 10, -28, -19, -5, -38, 0, -34, 15, 21, -46, -27, 41, 15, 19, -9, 27, -7, -3, -16, 36, 35, 17, -38, 41, -5, 8, -7, -37, 17, -33, -21, 7, 1, 33, -13, 27, -41, 2, -43, 14, 26, 7, -11, 29, 43, -14, -1, 36, 19, -41, -38, -10, 16, -2, -21, -36];
var len = temp.filter(function(a,i) {
return a > 0 && temp[++i] && temp[i] < 0
}).length;
alert(len)
|
|
08.11.2016, 15:23
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
EuRusik,
А переход от 0 к минусу считается?
|
|
08.11.2016, 15:29
|
Новичок на форуме
|
|
Регистрация: 08.11.2016
Сообщений: 3
|
|
Dilettante_Pro, Нет
|
|
08.11.2016, 15:30
|
Новичок на форуме
|
|
Регистрация: 08.11.2016
Сообщений: 3
|
|
код оказался простой как пробка
var counter = 0;
var day = 0;
for(var i = 0; i < temp.length; i++)
{
if (temp[i] > 0 && temp[i + 1] < 0)
{
counter++;
day = i;
}
console.log('Замерзание: ' + counter + ' день: ' + day);
}
Последний раз редактировалось EuRusik, 08.11.2016 в 15:44.
|
|
09.11.2016, 08:43
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,205
|
|
Сообщение от EuRusik
|
код оказался простой как пробка
|
Разумеется!
Это ведь самые первые тренировочные задания на массивы и циклы... Т.е. букварские упражнения на понимание.
|
|
|
|