![]() |
|
#1
|
|||
|
|||
![]() Вводится массив. Сколько в нем чисел совпадают с медианой (медиана - это среднее арифметическое всех чисел в массиве).
На вид простая! Как я понял надо в ListBox ввести числа сложить их и разделить на количество, и в цикле проверить каждое число равно ли оно средне арифметическому числу и вывести...Но у меня как то не получается всё сделать правильно... |
#2
|
||||
|
||||
![]() Если работать только с целыми числами, то примерно вот так:
Код:
program Project1; {$APPTYPE CONSOLE} uses SysUtils; var data:array of integer; arLen:integer; i,summ,med:integer; counter:integer; begin WriteLn('Input array length'); ReadLn(arLen); SetLength(data,arLen); counter:=1; summ:=0; for i:=Low(data) to High(data) do begin WriteLn(Format('Input element #%d',[counter])); ReadLn(data[i]); inc(counter); inc(summ,data[i]); end; med:=summ div arLen; summ:=0; for i:=Low(data) to High(data) do if data[i]=med then inc(summ); WriteLn(Format('Result - %d element(s)',[summ])); ReadLn; data:=nil; end. Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
![]() А визуальной случайно нету? Или вот как здесь зделать так что бы делил сумму на количество элементов?
Код:
Var Sum,A,i:integer; begin Sum:=0; for i:=0 to ListBox1.Items.Count-1 do begin A:=StrToInt(ListBox1.Items[1]); Sum:=Sum+A end; ShowMessage('Sum is '+IntToStr(Sum)); end; Последний раз редактировалось Admin, 09.12.2009 в 15:10. |
#4
|
|||
|
|||
![]() А визуально сам сделаешь.
Или в раздел "Работа"... |
#5
|
|||
|
|||
![]() я зделал, и среднее значение счтает! Но нехочет находить одинаковые числа...Может кто подскажет где здесь ошибка?
Код:
Var Sum,A,i,sum2,sum3:integer; begin Sum:=0; i:=0; while StringGrid1.Cells[0,i]<>'' do begin A:=StrToInt(StringGrid1.Cells[0,i]); Sum:=Sum+A; Inc(i) end; Sum2:=Sum div i; Sum3:=0; if sum=sum2 then sum3:=sum3+1; ShowMessage('Sum is '+IntToStr(sum3)) end; |