Добрый день - нужна помощь.
У меня есть к примеру число 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;
|
|