Показать сообщение отдельно
  #5  
Старый 13.05.2010, 18:55
Аватар для virgin34
virgin34 virgin34 вне форума
Прохожий
 
Регистрация: 24.04.2010
Сообщения: 7
Репутация: 10
По умолчанию

Помогите здесь разобраться, где if mas[i]>mas[i+1] then происходит неправильное сравнение длины строк ячеек в массиве строк. Ячейки в массиве уже заполнены:1)дома 2)я 3)был. В итоге чтобы в edit слова разместились в порядке убывания длины слова.
Код:
procedure TForm1.RastanovkaSlov(Sender: TObject);
var
mas:array[0..100]of string;
s:string;
i,n,change:integer;
begin
n:=4;
change:=1;
            for i:=0 to 4 do
            mas[i]:=stringgrid1.Cells[i,0];
while change>0 do
  begin
  change:=0;
  i:=0;
    while i<n do
    if mas[i]>mas[i+1] then
    begin
    s:=mas[i]+' ';
    mas[i]:=mas[i+1];
    mas[i+1]:=s;
    inc(change);
    end
                    else inc(i);
  end;

  for i:=0 to 100 do
       begin
       s:=s+mas[i];
       end;

edit2.Text:=s;
end;
Ответить с цитированием