Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2014, 15:01   #1
Seregakz
Пользователь
 
Регистрация: 21.05.2008
Сообщений: 14
Восклицание Разбить на диапазоны!

Народ помогите с простой задачей немогу сообразить имеется динамический массив:


ip[0]:='aaa';
ip[1]:='bbb';
ip[2]:='ccc';
ip[3]:='ddd';
ip[4]:='iii';
ip[5]:='fff';

и переменная ZZ:=3 (может меняться)
то есть список диапазонов не должен привышать 3-х:
пример:

0-1
2-3
4-5

то есть нужно вывести прсто диапазоны

Последний раз редактировалось Seregakz; 21.09.2014 в 15:03.
Seregakz вне форума Ответить с цитированием
Старый 21.09.2014, 15:25   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

а если ZZ:= 100500, то что?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 21.09.2014, 16:45   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
немогу сообразить
Аналогично. Давай ты задачу выложишь так как ее в методичке написали.
А то вон даже пилот обалдел, что уже про штурмана говорить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.09.2014, 16:49   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Вроде длину массива равную 6 надо разделить на 3 равных отрезка, вот и получаем по 2 элемента в диапазоне.
А если размерность массива 9, а ZZ=5, то как?
Так сойдёт:
0
1
2
3
4-8
Если да, то длину массива целочисленно дели на ZZ и получишь размер диапазона, всё что останется должно быть включено в последний диапазон.
Код:
razmer := length(ip) div ZZ
Чтобы сделать примерно рАвные диапазоны, то остаток от деления надо распределить между другими диапазонами. Что-то типа
Код:
razmer := length(ip) div ZZ
ostatok := length(ip) mod ZZ;
for i := 1 to ZZ do begin 
  if i <= ostatok then размер_диапазона:=razmer+1 else размер_диапазона:=razmer; 
  ...
Получится что-то типа
0-1
2-3
4-5
6-7
8
Если остаток нужно более равномерно распределить, то можно задать шаг через который будут вставляться "лишнии" элементы
eoln вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несвязные диапазоны СУММЕСЛИ iGremlin Microsoft Office Excel 13 25.03.2013 16:42
диапазоны дат - смены andrew_jr20 SQL, базы данных 4 16.12.2011 15:49
Ограничения или диапазоны hasana Общие вопросы C/C++ 2 13.01.2011 19:49
Динамические диапазоны LaryMusa Microsoft Office Excel 8 05.07.2010 21:20
Как разбить число на цифрыКак разбить число на цифры: 3241 => 3,2,4,1 (Pascal) Banderas123 Помощь студентам 3 07.12.2009 18:26