Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.11.2016, 14:13
Новичок на форуме
Отправить личное сообщение для EuRusik Посмотреть профиль Найти все сообщения от EuRusik
 
Регистрация: 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.
Ответить с цитированием
  #2 (permalink)  
Старый 08.11.2016, 14:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от EuRusik
первый элемент массива со вторым
Текущий с последующим...
Сообщение от EuRusik
если первый + а второй - то записать как 1 замерзание
Увеличить некий счетчик на единицу...
Ответить с цитированием
  #3 (permalink)  
Старый 08.11.2016, 14:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

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)
Ответить с цитированием
  #4 (permalink)  
Старый 08.11.2016, 14:28
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от EuRusik
Я понимаю что нужно сравнивать через for
...
но как это кодом написать
Начиная читать учебники и свои лекции.
https://learn.javascript.ru/array
https://learn.javascript.ru/while-for#цикл-for
Ответить с цитированием
  #5 (permalink)  
Старый 08.11.2016, 15:23
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

EuRusik,
А переход от 0 к минусу считается?
Ответить с цитированием
  #6 (permalink)  
Старый 08.11.2016, 15:29
Новичок на форуме
Отправить личное сообщение для EuRusik Посмотреть профиль Найти все сообщения от EuRusik
 
Регистрация: 08.11.2016
Сообщений: 3

Dilettante_Pro, Нет
Ответить с цитированием
  #7 (permalink)  
Старый 08.11.2016, 15:30
Новичок на форуме
Отправить личное сообщение для EuRusik Посмотреть профиль Найти все сообщения от EuRusik
 
Регистрация: 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.
Ответить с цитированием
  #8 (permalink)  
Старый 09.11.2016, 08:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от EuRusik
код оказался простой как пробка
Разумеется!
Это ведь самые первые тренировочные задания на массивы и циклы... Т.е. букварские упражнения на понимание.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В каком направлении и сколько раз был прокручен скролл webrepa Events/DOM/Window 19 12.02.2016 14:45
Выручайте Нужно сделать так чтобы через HTML Можно было открыть прогу на Компе Это Во HTML HELP Элементы интерфейса 6 25.02.2014 04:39
Нужно посчитать сколько времени курсор находится в соответствующей точке remember_me Общие вопросы Javascript 4 12.07.2013 09:14
Сколько времени нужно одному типу, чтобы написать движок форума? Alex455 Оффтопик 17 22.05.2011 11:14