Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Разбитие числа на диапозоны(промежутки)


Автор: pupkindeniska 23.5.2011, 14:09
Добрый день - нужна помощь.

У меня есть к примеру число 127 и нужно его разбить на промежутки. К примеру промежуток должен составлять 10.... должно получится.....

1-10, 11-21, 22-32, 33-43, 44-54... и так далее...... 120-127 то есть учтено целое!

А так - же надо учесть что число меняется и интервал тоже меняется .......
К примеру может быть ситуация когда интервал равен 10 а число всего лишь 8 и тогда должен получится интервал от 1 до 8 (1-8)

Вот мой код - но он работает не всегда правильно! Уже голову сломал!

Код

procedure TfrmForm.Button1Click(Sender: TObject);
var
i,max,p,l,k:integer;
begin
max:=StrToInt(Edit1.Text); //Число
p:=StrToInt(Edit2.Text); //Интервал
l:=0;
l:=l+p;

ComboBox1.Clear; //Компонент на форме ComboBox1 - очищяем

if max<=p then
Begin
ComboBox1.Items.Add('1-'+intToStr(max));
end
else
begin
 for i:=1 to max do
 Begin
  if i=l then
  Begin
  k:=i-p;
  if k<1 then k:=1;
  if l>max then l:=max;
   if i=p then ComboBox1.Items.Add(intToStr(k)+'-'+intToStr(l)) else
   Begin
   ComboBox1.Items.Add(intToStr(k+1)+'-'+intToStr(l+1));
   k:=k+1; l:=l+1;
   end;
   l:=l+p;
  end;
 end;
  if l>max then
  Begin
  if max<l then ComboBox1.Items.Add(intToStr(k+p)+'-'+intToStr(max)) else ComboBox1.Items.Add(intToStr(k+p+1)+'-'+intToStr(max));
  end;
end; 
 ComboBox1.ItemIndex:=0;
end;

Автор: Frees 23.5.2011, 14:14
http://forum.vingrad.ru/forum/s/ab518839f756f3a60acfefd7c527540c/index.php?show_type=forum&showtopic=330549

Автор: pupkindeniska 23.5.2011, 15:22
Посмотри внимательнее.... мне нужно совсем другое! Мне нужно разбить число на диапазоны с определённым интервалом!

Автор: pupkindeniska 23.5.2011, 15:46
Проблема в том что к примеру если интервал 5 а заданное число к примеру 6 то данные вычисления получают интервал
1-5, 7-6 а это не правильно! Должно получатся вот это 1-5, 6-6

Автор: pupkindeniska 24.5.2011, 14:35
ПОМОГИТЕ - ёлки палки)

Автор: Qu1nt 24.5.2011, 15:12
А если число меньше или равно нолю?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)