![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте, очень нужна помощь.
Необходимо создать программу для нормировки элементов динамического массива относительно его максимального элемента. Вообще, это надо сделать для двух различных массивов с использованием подпрограммы с открытым массивом для типового действия. Как найти максимальный элемент я знаю, но при попытке разделить элементы на этот максимальный, получается, что Делфи делит каждый элемент массива на самого себ, в результате получается массив, состоящий из одних единиц. Однако, выводит он максимальный в отдельное поле верно. Код:
function Max(j:array of real):real; var h:Byte; max1:real; begin max1:=j[0]; h:=1; while h<=high(j) do begin if j[h]>max1 then max1:=j[h]; h:=h+1; end; Max:=max1; end; procedure TForm1.Button1Click(Sender: TObject); var x:array of Real; nx,i:byte; maxx:Real; begin Label4.Caption:=''; nx:=Memo1.Lines.Count; SetLength (x,nx); for i:=0 to nx-1 do begin x[i]:=StrToFloat(Memo1.Lines[i]); maxx:=Max(x); Label3.Caption:='Наибольший элемент = '+FloatToStr(maxx); Label4.Caption:=Label4.Caption+FloatToStr(x[i])+#10; end; SetLength (x,0); end; end. Пробовал создавать процедуру с открытым массивом (вообще ничего не менялось при выводе), прописывать напрямую Код:
for i:=0 to nx-1 do x[i]:=x[i]/maxx; Может ли кто-нибудь подсказать? |