![]() |
|
|
#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; |