Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.12.2009, 12:13
volery volery вне форума
Прохожий
 
Регистрация: 09.12.2009
Сообщения: 3
Репутация: 10
Печаль Массив

Вводится массив. Сколько в нем чисел совпадают с медианой (медиана - это среднее арифметическое всех чисел в массиве).

На вид простая! Как я понял надо в ListBox ввести числа сложить их и разделить на количество, и в цикле проверить каждое число равно ли оно средне арифметическому числу и вывести...Но у меня как то не получается всё сделать правильно...
Ответить с цитированием
  #2  
Старый 09.12.2009, 12:23
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Если работать только с целыми числами, то примерно вот так:
Код:
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  
Старый 09.12.2009, 12:37
volery volery вне форума
Прохожий
 
Регистрация: 09.12.2009
Сообщения: 3
Репутация: 10
По умолчанию

А визуальной случайно нету? Или вот как здесь зделать так что бы делил сумму на количество элементов?
Код:
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: Пользуемся тегами!

Последний раз редактировалось Admin, 09.12.2009 в 15:10.
Ответить с цитированием
  #4  
Старый 09.12.2009, 16:57
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А визуально сам сделаешь.
Или в раздел "Работа"...
Ответить с цитированием
  #5  
Старый 10.12.2009, 10:28
volery volery вне форума
Прохожий
 
Регистрация: 09.12.2009
Сообщения: 3
Репутация: 10
По умолчанию

я зделал, и среднее значение счтает! Но нехочет находить одинаковые числа...Может кто подскажет где здесь ошибка?

Код:
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;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:14.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025