Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
beeline09
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 6
#1

Распределить массивы

28.04.2013, 13:41. Просмотров 605. Ответов 11
Метки нет (Все метки)

Делаю график сброса веса, но столкнулся со следующей проблемой... Люди иногда не могут каждый день заносить данные, поэтому, при отсутствии нехватающих дней, мне нужно их добавить и сделать усредненными значения в этих днях.
Мне нужно, чтобы от den[0] до den[den.length-1] были последовательно идущие числа по возрастанию. Это можно сделать разными способами, но чтоб еще ось Y (т.е. Ves) соответствовал ему...вот это для меня пока нерешимая задача.
Вот скрин с пропущенными днями:
Распределить массивы

Здесь int[] Dni надо заполнить пропущенными значениями, а double[] Ves и double[] indx надо заполнить усредненными значениями между первым и последним известными (((78+89)/2=83.5) и ((25,8+29,4)/2=27.6)) значениями в интервале. Причем вставить надо будет это все в те же позиции, что добавятся и у Dni.
Надеюсь сейчас понятно объяснил?
Кто поможет, тому огромный жирный плюс и большущее человеческое спасибо.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2013, 13:41
Ответы с готовыми решениями:

Равномерно распределить элементы по ширине
Пытаюсь расположить 2 кнопки в ряд так, что бы они занимали ровно по половине...

Распределить по буквам
Есть массив с разными именами и нужно загнать их по своим буквам в этот код ...

Распределить таблицы
И так, как сделать так, чтобы при изменении размера страницы таблыци оставалсь...

Распределить сумму
Добрый день, ув. форумчане помогите разобраться. 1. есть к примеру таблица с...

Распределить участников по местам
Забиваются фамилии участников и оценки 8 судей. Необходимо вывести таблицу, в...

11
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.04.2013, 13:47 #2
и в чем проблема сложить два числа и разделить на 2?
0
beeline09
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 6
28.04.2013, 13:58  [ТС] #3
Цитата Сообщение от V0v1k Посмотреть сообщение
и в чем проблема сложить два числа и разделить на 2?
Да неееет) Проблема в том, что массив изначально одного размера, а если добавить пропущенные дни, то массив увеличивается, да и пропущенные значение нужно вставить в нужную позицию.
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
28.04.2013, 14:02 #4
Так используйте вместо массива generic, например, List<T>, в чём проблема-то?
1
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.04.2013, 14:03 #5
используйте List или оставляйте пустое место в массиве для пропущенных дней.
1
beeline09
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 6
28.04.2013, 14:19  [ТС] #6
Цитата Сообщение от YuraAAA Посмотреть сообщение
Так используйте вместо массива generic, например, List<T>, в чём проблема-то?
Проблема в том, что я как раз и не могу это сделать. Вы не могли бы с примером мне?

Добавлено через 3 минуты
Цитата Сообщение от V0v1k Посмотреть сообщение
используйте List или оставляйте пустое место в массиве для пропущенных дней.
Пустое место нельзя оставлять, так как дни могут начинаться и с 29 по 31, и с 1 по 16, и т.п. Нужно чтобы в промежутке между первым и последним значением были последовательно растущие значения без пробелов. Это по оси X, а по оси Y надо чтобы те позиции, что у Х были заполнены усредненными значениями первого и последнего известного элемента.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.04.2013, 14:23 #7
Цитата Сообщение от beeline09 Посмотреть сообщение
Проблема в том, что я как раз и не могу это сделать. Вы не могли бы с примером мне?
Java
1
2
List<Day> list = new ArrayList<Day>();
list.add(firstDay);

Цитата Сообщение от beeline09 Посмотреть сообщение
Пустое место нельзя оставлять, так как дни могут начинаться и с 29 по 31, и с 1 по 16, и т.п. Нужно чтобы в промежутке между первым и последним значением были последовательно растущие значения без пробелов. Это по оси X, а по оси Y надо чтобы те позиции, что у Х были заполнены усредненными значениями первого и последнего известного элемента.
не пойму суть проблемы.
0
beeline09
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 6
28.04.2013, 14:37  [ТС] #8
Цитата Сообщение от V0v1k Посмотреть сообщение
Java
1
2
List<Day> list = new ArrayList<Day>();
list.add(firstDay);
list.add мне добавит в последнюю позицию, а мне нужно последовательно и в нужную позицию. Этот вариант я рассматривал, но он не подходит.

Суть видна на картинке выше. Нужно заполнить пропущенные дни и в них положить средние значения между первыми известными значениями до и после пропущенного числа. Я не знаю как еще объяснить(
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
28.04.2013, 14:48 #9
Java
1
list.add(1, firstDay)
вставит в нужную позицию ( в данном случае в первую), а остальные элементы сдвинет.
1
beeline09
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 6
28.04.2013, 15:02  [ТС] #10
Цитата Сообщение от YuraAAA Посмотреть сообщение
Java
1
list.add(1, firstDay)
вставит в нужную позицию ( в данном случае в первую), а остальные элементы сдвинет.
То, что нужно! Спасибо огромное! Сейчас попробую реализовать.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.04.2013, 15:21 #11
автодополнение не пробовал юзать? пишешь list.add, потом нажимаешь Ctrl+space и получаешь все варианты.
1
beeline09
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 6
28.04.2013, 17:17  [ТС] #12
Цитата Сообщение от V0v1k Посмотреть сообщение
автодополнение не пробовал юзать? пишешь list.add, потом нажимаешь Ctrl+space и получаешь все варианты.
Ну такие вещи я знаю конечно! Просто я алгоритм не мог придумать. Получилось вот так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
List<Integer> x = new ArrayList<Integer>();
List<Float> ves = new ArrayList<Float>();
 
//
//Здесь заполняем x и ves не отсортированными значениями.
//
 
for (int i=0; i<x.size()-1; i++)
    {
        int raznica = (x.get(i+1)-x.get(i));
        float dob = ((ves.get(i)+ves.get(i+1))/2);
        if (raznica>1)
            {
                    x.add(i+1, x.get(i)+1);
                    ves.add(i+1, dob);
            }
    }
Все отлично работает теперь! Спасибо большущее всем, кто помогал!
0
28.04.2013, 17:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2013, 17:17

Как распределить 700 гб?
помогите как распределит 700 гб?

Распределить код на функции
В общем,такая проблема,нужно создать перегруженную функцию,для кода,но когда я...

Распределить интернет на двоих
Есть два компа, нужно разделить интернет на двоих . первый модем (tp link td...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru