Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2011, 18:47   #1
P.A.S.C.A.L.
Пользователь
 
Регистрация: 06.02.2011
Сообщений: 22
По умолчанию Delphi - Нахождение среднего среди большлго числа чисел

Привет всем. Я первый раз на форуме и в заголовке не знал что написать.
Меня на работе попросили (студента, проходящего практику) написать прогу которая выводит в поле memo среднее число среди множества чисел (а их может быть мноооооого).
Все бы ничего, но загвоздка в другом: даны н-р в поле memo1 числа - 1,2,1,2,6,4,7,8,6,2,1,85,4,6,4,5,6, 14,56,4,87,1,6, 1,586,1,5,41,2,416,214,6,42,4;
мы вводим координаты (н-р:4), т.е. это значит, что среди всех выше перечисленных чисел программа выделяет 4 числа (т.е. 1,2,1,2), находит среднее число и записыват в memo2, потом берет след. 4 числа (т.е. 2,1,2,6), действие повторяется; потом сново берутся след. 4 числа (т.е. 1,2,6,4) и т.д.
Помогите написать сам код, ни как придумать не могу
Если кому не понятно то вот рис.

здесь массив чисел, черным цветом указаны первые 10 чисел, зеленым след. 10 и т.д.
Заранее благодарен
P.A.S.C.A.L. вне форума Ответить с цитированием
Старый 06.02.2011, 19:20   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> среднее число

не знаю, что такое "среднее число", но если это среднее арифметическое, то можно так:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  windowsize: Integer;
  startpos: Integer;
  i: Integer;
  sum, median: Integer;
begin
  windowsize := 10;
  //
  startpos := 0;
  while (startpos + windowsize <= Memo1.Lines.Count) do begin
    //
    sum := StrToIntDef(Memo1.Lines[startpos], 0);
    for i := startpos + 1 to startpos + windowsize - 1 do
      inc(sum, StrToIntDef(Memo1.Lines[i], 0));
    //
    median := sum div windowsize;
    Memo2.Lines.Add(IntToStr(median));
    //
    inc(startpos);
  end;
end;
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 08.02.2011, 09:04   #3
P.A.S.C.A.L.
Пользователь
 
Регистрация: 06.02.2011
Сообщений: 22
По умолчанию

Спасибо тебе Veniside, все великолепно работает.
P.A.S.C.A.L. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нахождение среднего арифметического двух длинных чисел Nortos Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 31.12.2010 18:55
нахождение среднего арифметического двух длинных чисел Nortos Помощь студентам 2 24.12.2010 21:23
вычитывание чисел из файла, и нахождение их среднего арифметического Sh@de Помощь студентам 1 18.08.2010 08:40
Дан файл, содержащий целые числа. Найти количество нечетных чисел среди элементов файла stasyan Помощь студентам 12 03.04.2010 18:49
Delphi:Определить имеется ли среди чисел a,b,c хотя бы одна пара взаимно противоположных чисел. Skvot Помощь студентам 6 27.04.2009 11:47