|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Распределение элементов по диапазонам
Друзья!
Подскажите мне, пожалуйста, как решить такую задачу: Есть массив случайных элементов 20х20. Необходимо разбить элементы на 5 диапазонов (интервалов) и определить какое количество элементов попадает в каждый интервал. В итоге должна получится следующая таблица Диапазон: 1 2 3 4 5 Количество чисел в диап: 6 2 2 6 4 Наверно, сперва определяем Максимальный и минимальный элемент и (MAX-MIN)/(5-1). Так определяем шаг диапазона. А как дальше, как быть? Спасибо! |
#2
|
||||
|
||||
вотава
Код:
procedure TForm1.Button4Click(Sender: TObject); var min, max, diapazon, d1, d2, d3, d4, d5, c, r : integer; begin Max := aa[1,1]; Min := aa[1,1]; d1:=0; d2:=0; d3:=0; d4:=0; d5:=0; for c := 1 to 20 do for r := 1 to 20 do begin if Max < aa[c, r] then Max := aa[c, r]; if Min > aa[c, r] then Min := aa[c, r]; end; diapazon:=round((max-min) / 5); for c := 1 to 20 do for r := 1 to 20 do begin if (min <= aa[c, r]) and (aa[c, r]<=diapazon) then inc(d1); if (diapazon < aa[c, r]) and (aa[c, r]<=diapazon*2) then inc(d2); if (diapazon*2 < aa[c, r]) and (aa[c, r]<=diapazon*3) then inc(d3); if (diapazon*3 < aa[c, r]) and (aa[c, r]<=diapazon*4) then inc(d4); if (diapazon*4 < aa[c, r]) and (aa[c, r]<=max) then inc(d5); end; LABEL6.Caption:='MIN = '+ IntToStr(MIN); LABEL7.Caption:='MAX = '+ IntToStr(MAX); LABEL1.Caption:='diap1 = '+ IntToStr(d1); LABEL2.Caption:='diap2 = '+ IntToStr(d2); LABEL3.Caption:='diap3 = '+ IntToStr(d3); LABEL4.Caption:='diap4 = '+ IntToStr(d4); LABEL5.Caption:='diap5 = '+ IntToStr(d5); end; |