![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Код:
procedure TForm1.Button1Click(Sender: TObject); var i,j,f,k: integer; e:real; l1,l2:integer; a:array of real; b:array of real; c:array of array of real; d:array of real; begin l1:=Memo1.Lines.Count; l2:=Memo2.Lines.Count; SetLength(a,l1); SetLength(b,l2); Setlength(c, l1,l2); SetLength(d, (l1+l2-1)); for i := 0 to l1-1 do a[i]:= StrToFloat(Memo1.Lines[i]); for j := 0 to l2-1 do begin b[j]:= strtofloat(Memo2.Lines[j]); end; for i := 0 to l1-1 do begin for j := 0 to l2-1 do begin c[i,j]:=a[i]*b[j]; end; end; for i := 0 to l1-1 do begin for j := 0 to l2-1 do begin stringGrid1.Cells[i,j]:=floatToStr(c[i,j]); end; end; d[1]:=c[1,1]; f:=3; e:=0; For k:=2 to (l1+l2) do begin for i := 1 to l1 do begin for j := 1 to l2 do begin if (j+i)=f then e:=e + c[i,j]; end; end; d[k]:=e; e:=0; f:=f+1; end; for j := 0 to High(d) do begin Memo3.Lines.Add(floattostr(d[j])); end; end; выдает ошибку Acsess Violation в красной строке. в чем может быть проблема? |
#2
|
|||
|
|||
![]() Нумерация элементов в массиве начинается с нуля,
попробуй так: Код:
... e:=e + c[i-1,j-1]; ... |
#3
|
|||
|
|||
![]() Цитата:
![]() сделал вот так, результаты выдает ток хз правильные или нет) Код:
procedure TForm1.Button1Click(Sender: TObject); var i,j,f,k: integer; e:real; l1,l2:integer; a:array of real; b:array of real; c:array of array of real; d:array of real; begin l1:=Memo1.Lines.Count; l2:=Memo2.Lines.Count; SetLength(a,l1); SetLength(b,l2); Setlength(c, l1,l2); SetLength(d, (l1+l2-1)); for i := 0 to l1-1 do a[i]:= StrToFloat(Memo1.Lines[i]); for j := 0 to l2-1 do begin b[j]:= strtofloat(Memo2.Lines[j]); end; for i := 0 to l1-1 do begin for j := 0 to l2-1 do begin c[i,j]:=a[i]*b[j]; end; end; for i := 0 to l1-1 do begin for j := 0 to l2-1 do begin stringGrid1.Cells[i,j]:=floatToStr(c[i,j]); end; end; d[1]:=c[1,1]; f:=3; e:=0; For k:=2 to (l1+l2-2) do begin for i := 0 to l1-1 do begin for j := 0 to l2-1 do begin if (j+i)=f then e:=e + c[i,j]; end; end; d[k]:=e; e:=0; f:=f+1; end; for j := 0 to (l1+l2-2) do begin Memo3.Lines.Add(floattostr(d[j])); end; end; Последний раз редактировалось Fazotron, 20.07.2010 в 21:15. |