![]() |
|
#1
|
||||
|
||||
![]() Помогите написать программу одномерного массива используя три StringGrid или Memo из пяти элементов. Положительные числа на второй StringGrid (или Memo), а отрицательные числа на трети.
Код:
procedure TForm1.Button1Click(Sender: TObject); var m:array[0..4] of integer; i,k:integer; begin for i:=1 to 5 do begin if m[i]<0 then m[i] := StrToInt(StringGrid1.Cells[i,0]); inc(k); memo1.Lines.Add(inttostr(m[k])); end; end; ![]() Подскажите пожалуйста! |
#2
|
|||
|
|||
![]() Цитата:
так как массив у тебя наичнается с нуля [0..4] то цикл начинай тожк с нуля for i:=0 to 4 do Код:
For i:=0 to 4 do if m[i]<0 then memo1.lines.add(inttostr(m[i]) //если число отрицательное то в кинем его в мемо else StringGrid1.Cells[i,0]:=m[i] //если число положительное (или равно нулю) то кинем его на стрнгрид и еще,зачем вот эта строка у тебя? Код:
m[i] := StrToInt(StringGrid1.Cells[i,0]); Последний раз редактировалось Snake22, 27.11.2011 в 18:05. |
#3
|
||||
|
||||
![]() Спасибо! Но, так не пойдет(
Вот это вот работает. Код:
procedure TForm1.Button1Click(Sender: TObject); var i,k,p:integer; begin k:=0; p:=0; for i:=0 to stringgrid1.ColCount-1 do begin if strtoint(stringgrid1.Cells[i,0])>0 then begin stringgrid2.Cells[k,0]:=stringgrid1.cells[i,0]; inc(k); end; if strtoint(stringgrid1.Cells[i,0])<0 then begin stringgrid3.Cells[p,0]:=stringgrid1.cells[i,0]; inc(p); end; end; end; |