Показать сообщение отдельно
  #1  
Старый 17.08.2009, 17:06
Alyonka89 Alyonka89 вне форума
Прохожий
 
Регистрация: 17.08.2009
Сообщения: 3
Репутация: 10
По умолчанию Удаление элемента из массива

Здравствуйте!
Помогите пожалуйста с удалением элементов из массива.
Нужно удалить из массива Х, состоящего из n элементов, первые четыре нулевых элемента.
Если использую for I := n downto 1 do удаляются 4 последних нулевых элемента,
а если использую for I := 1 to n do не удаляется 0, если он следует сразу за другим нулём.
Что нужно изменить? Заранее спасибо за помощь.
Код:
procedure TForm1.Button1Click(Sender: TObject);
type massiv=array [1..50] of real;
procedure del_mass(m, kol:integer; var y:massiv);
var i: integer;
begin
  for I := m to kol-1 do
    y[i]:=y[i+1];
end;
var i, n, k: byte;
    x: massiv;
begin
  n:=strtoint(edit1.text);
  for I := 1 to n do
    x[i]:=strtofloat(stringgrid1.Cells[i,0]);
  k:=0;
  for I := n downto 1 do
    begin
      if x[i]=0 then
        begin
          if k>=4 then break
          else
            del_mass(i,n,x);
          k:=k+1;
        end;
    end;
  for I := 1 to n-k do
    stringgrid2.cells[i,0]:=floattostr(x[i]);
end;
Admin: Не забываем пользоваться тегами для оформления кода!
Ответить с цитированием