Вопрос по динамическим массивам

  • Автор темы _NoNaMe_
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

_NoNaMe_

#1
В программе из Мемо, откуда берутся значения для забивания их в массив
(а именно так:

setlength(MaxK,Memo1.Lines.Count);
for i:=0 to Memo1.Lines.Count-1 do
maxk:=StrToInt(Memo1.Lines);
)

делаю процедуру

setlength(umno,Memo1.Lines.Count*Memo2.Lines.Count);
for i:=1 to Memo1.Lines.Count do
for j:=1 to Memo2.Lines.Count do
begin
umno:=maxk*maxk2[j];
inc(u);
end;

выводим мне какую-то непонятицу.. (((( а именно 4 84 6 126 и т.д. (((

пробовал делал так:
for i:=0 to Memo1.Lines.Count-1 do
for j:=1 to Memo2.Lines.Count do
но.. во-первых, перезаписывает 0 и 1 строки, а во-вторых не работает более чем с массивом в 3 и 2 единицы ((((


подскажите как сделать так, что б при возникновении массивов любой длинны они бы перемножались поэлементно. не могу додуматься (

Пояснение: массив a = [1,2,3] массив b=[1,2] то при поэлементном умножении массив с должен быть [1,2,2,4,3,6]

Помогите пожалуйста ((
 
X

xmailer

#2
Код:
var
maxk : array of integer;
maxk2 : array of integer;
umno : array of integer;
i,j,u : integer;
begin
setlength(maxk,Memo1.Lines.Count);
for i:=0 to Memo1.Lines.Count-1 do maxk[i]:=StrToInt(Memo1.Lines[i]);

setlength(maxk2,Memo2.Lines.Count);
for i:=0 to Memo2.Lines.Count-1 do maxk2[i]:=StrToInt(Memo2.Lines[i]);

u:=0;
setlength(umno,Memo1.Lines.Count*Memo2.Lines.Count);
for i:=0 to Memo1.Lines.Count-1 do
for j:=0 to Memo2.Lines.Count-1 do
begin
umno[u]:=maxk[i]*maxk2[j];
inc(u);
end;

//массив	maxk = [1,2,3]
//массив	maxk2 = [1,2]
//рузультат umno = [1,2,2,4,3,6]
end;
 
Статус
Закрыто для дальнейших ответов.