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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2016, 14:30   #1
ralex35
Пользователь
 
Регистрация: 06.05.2016
Сообщений: 16
По умолчанию Delphi Вычислить среднее арифметическое элементов

Подскажите,пожалуйста,что добавить или изменить,чтобы среднее арифметическое считало,пока только 0 выдает

Вычислить среднее арифметическое элементов массива Х=(х1, х2, …,xn), расположенные между его минимальным и максимальным значениями

Код:
function GetSubStr(st:string; k:integer):string;
var
p, i:integer;
begin
for i:=1 to k-1 do begin
p:=pos(' ', st);
st:=copy(st, p+1, length(st)-p);
end;
p:=pos(' ', st);
if p<>0
then result:=copy(st, 1, p-1)
else result:=st;
end;

procedure TForm1.btn1Click(Sender: TObject);
var
sr:real;
i,n,max,min,maxi,mini,k,s,j:integer;
b:array [1..100] of integer;
begin
n:=StrToInt(edt1.text);
 for i:=1 to n do
 begin
  b[i]:=StrToInt(GetSubStr(Edt2.Text,i));
 end;
max:=b[1];
min:=b[1];
k:=1;
sr:=0;
s:=0;
  for i:=2 to n do
  begin
   if b[i]>max then begin max:=b[i]; end;
   if b[i]<min then begin min:=b[i]; end;
  end;

  if maxi > mini then
    for j:=maxi to mini do
      begin
       s:=s+b[j];
       k:=k+1;
      end
  else
  if maxi < mini then
    for j:=mini to maxi do
      begin
       s:=s+b[j];
       k:=k+1;
      end;
 sr:=s/k;
 Lbl3.Caption:=FloatToStr(sr);
end;
end.

Последний раз редактировалось ralex35; 07.05.2016 в 14:41.
ralex35 вне форума Ответить с цитированием
Старый 07.05.2016, 15:21   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
sr:real;
i,n,max,min,maxi,mini,k,s,j:integer;
b:array [1..100] of integer;
begin
n:=StrToInt(edit1.text);
 for i:=1 to n do
 begin
  b[i]:=StrToInt(GetSubStr(Edit2.Text,i));
 end;
maxi:=1;
mini:=1;
k:=1;
sr:=0;
s:=0;
  for i:=2 to n do
  begin
   if b[i]>b[maxi] then maxi:=i;
   if b[i]<b[mini] then mini:=i;
  end;
If maxi<mini then
begin
   j:=maxi;
   maxi:=mini;
   mini:=j;
end;
    for j:=mini to maxi do
      begin
       s:=s+b[j];
       k:=k+1;
      end;
 sr:=s/k;
 Label3.Caption:=FloatToStr(sr);
end;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 07.05.2016, 18:12   #3
ralex35
Пользователь
 
Регистрация: 06.05.2016
Сообщений: 16
По умолчанию

только считает среднее арифметическое с учетом минимального, не могу сообразить как без учета сделать
ralex35 вне форума Ответить с цитированием
Старый 08.05.2016, 03:48   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
for j:=mini+1 to maxi-1 do
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 08.05.2016, 10:16   #5
ralex35
Пользователь
 
Регистрация: 06.05.2016
Сообщений: 16
По умолчанию

Я ввожу массив: 1 2 3 2 2 5 , результат среднего арифметического пишет 1,8, а должно 2,25
ralex35 вне форума Ответить с цитированием
Старый 08.05.2016, 10:30   #6
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

ralex35, у вас в 1-м посте
Код:
k:=1;
а надо
Код:
k:=0;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 08.05.2016, 10:34   #7
ralex35
Пользователь
 
Регистрация: 06.05.2016
Сообщений: 16
По умолчанию

Спасибо большое
ralex35 вне форума Ответить с цитированием
Старый 08.05.2016, 10:35   #8
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi Одномерные массивы azhigalieva Помощь студентам 1 30.10.2013 23:26
Delphi -одномерные массивы Griiish Помощь студентам 4 16.09.2013 23:40
Одномерные массивы Delphi MisaMisa Помощь студентам 0 02.04.2013 12:45
одномерные массивы в delphi 7 Студентос Помощь студентам 10 07.12.2012 16:18
Одномерные массивы Delphi! Kate23 Помощь студентам 0 22.01.2012 10:01