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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2013, 09:28   #1
MaxRegN
 
Регистрация: 25.02.2013
Сообщений: 4
По умолчанию Дин. массив (Delphi)

Задание - Составить функцию для определения среднего арифметического значения тех элементов одномерного массива длиной N, модуль значения которых меньше заданной величины. Используя эту функцию, вывести те элементы заданного массива, значение которых больше найденного по процедуре среднего арифметического. При расчете среднего арифметического в процедуре учитывать только те элементы массива, модуль которых меньше 5.
Код:
 type mas=array of integer;
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
function sred(a:mas;n:integer):real;
var i,k:integer;
begin
k:=0;
result:=0;
for i:=0 to n-1 do
if abs(a[i])<5 then
 begin
  k:=k+1;
  result:=result+a[i]
 end;
if k=0 then result:=0
else result:=result/k
end;  
procedure TForm1.Button1Click(Sender: TObject);
var a:mas;
    n,i,k:integer;
    sr:real;
begin
randomize;
n:=StrToInt(Edit1.Text);
SetLength(a,n);
StringGrid1.ColCount:=n;
StringGrid2.ColCount:=n;
for i:=0 to n-1 do
 begin
  a[i]:=-10+random(21);
  StringGrid1.Cells[i,0]:=IntToStr(a[i])
 end;
sr:=sred(a,n);
Edit2.Text:='Среднее арифметическое элементов по модулю <5='
+FloatToStrF(sr,ffFixed,6,2);
k:=0;
for i:=0 to n-1 do
if a[i]>sr then
 begin
  k:=k+1;
  StringGrid2.Cells[k-1,0]:=IntToStr(a[i]);
 end;
StringGrid2.ColCount:=k;
end;
помогите доделать, чтобы можно было менять размеры стрингрида и ввод не только рандомный, но и ручной.

_______
если теги [CODE] [/CODЕ] пишете ручками, то внутри них пробелов быть не должно!


Модератор.

Последний раз редактировалось Serge_Bliznykov; 25.02.2013 в 09:40.
MaxRegN вне форума Ответить с цитированием
Старый 25.02.2013, 10:02   #2
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

1.
Цитата:
ввод не только рандомный, но и ручной.
Код:
  Include (StringGrid1.Options, goEditing);
или в инспекторе объектов
2.
Цитата:
чтобы можно было менять размеры стрингрида
Код:
procedure TForm1.btnSetCount(Sender: TObject);
begin
StringGrid1.ColCount := StrToInt(Edit1.Text);
end;
Код:
procedure TForm1.Button1Click(Sender: TObject);
...
n := StringGrid1.ColCount;
Sibedir вне форума Ответить с цитированием
Старый 25.02.2013, 22:27   #3
MaxRegN
 
Регистрация: 25.02.2013
Сообщений: 4
По умолчанию

это только предусмотрели возможность ввода а механизма нет...
MaxRegN вне форума Ответить с цитированием
Старый 26.02.2013, 05:55   #4
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

А какой еще механизм нужен? Теперь берёте и вводите ручками. Это и будет ручной ввод.
Sibedir вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы и дин. переменные. Изменить с использованием дин. переменных. Маленыч Паскаль, Turbo Pascal, PascalABC.NET 4 07.06.2012 11:17
из дин. дека в дин. стек (Borland С++) mego4el Помощь студентам 1 07.07.2011 14:41
Двухмерный дин. массив в классе Red_Line Общие вопросы C/C++ 4 18.02.2011 12:20
Инициализация дин. массивов Delphi Diplomnik Помощь студентам 8 27.01.2011 11:32
Трехмерный дин. массив revanatar Общие вопросы C/C++ 3 29.11.2010 22:02