|
#1
|
|||
|
|||
Исправить ошибку
Матрица A состоит из 7 строк и 5 столбцов. Сформировать два одномерных массива. P – из положительных элементов матрицы, N – из отрицательных элементов матрицы. Нулевые элементы не включать.
Ошибки в последних строках. Надо вывести в memo1 и memo2. Исправьте, пожалуйста. Код:
var a:Array[1..7,1..5] of integer; p:Array[1..7*5] of integer; n:Array[1..7*5] of integer; i,j,k,l:integer; begin randomize; for i:=1 to 6 do begin for j:=1 to 8 do begin a[i,j] := random(10); StringGrid1.Cells[j - 1, i- 1] := FloatToStr(a[i, j]); end; end; l := 0; k := 0; for i:=1 to 6 do begin for j:=1 to 8 do begin if a[i,j] > 0 then begin inc(k); p[k] := a[i,j]; end; if a[i,j] < 0 then begin inc(l); n[l] := a[i,j]; end; end; end; for i:=1 to k do memo1.Lines.Text:=memo1.Lines.Text+'P[',i,'=',p[i],' '; memo1.Lines.Add(''); for i:=1 to l do memo1.Lines.Text:=memo1.Lines.Text+'N[',i,'=',n[i],' '; end. Последний раз редактировалось Admin, 17.03.2016 в 20:12. |
#2
|
|||
|
|||
24:
Код:
for i:=1 to k do memo1.Lines.Text:=memo1.Lines.Text+'P['_IntToStr(i)+'='+IntToStr(p[i])+' '; 26: Код:
for i:=1 to k do memo1.Lines.Text:=memo1.Lines.Text+'N['_IntToStr(i)+'='+IntToStr(n[i])+' '; А вообще, это не очень хорошо так с Memo обращаться. Лучше сделать буферную строковую переменную, собрать строку в ней, а потом уже в Memo добавить. |