Показать сообщение отдельно
  #2  
Старый 15.01.2013, 17:22
caHek-2x caHek-2x вне форума
Прохожий
 
Регистрация: 14.12.2010
Сообщения: 31
Репутация: 11
По умолчанию

как то так тебе надо ?


Код:
procedure TForm4.Button1Click(Sender: TObject);
var
  a, b: array [1 .. 5] of string;
  i, j: integer;
  nach, kon: char;
begin

  StringGrid1.Cells[0, 0] := 'вася';
  StringGrid1.Cells[0, 1] := 'нитро';
  StringGrid1.Cells[0, 2] := 'ясен';
  StringGrid1.Cells[0, 3] := 'опасно';
  StringGrid1.Cells[0, 4] := 'огонь';

  for i := 1 to 5 do
    a[i] := StringGrid1.Cells[0, i - 1];

  b[1] := a[1];
  a[1] := '';

  for i := 1 to 4 do
  begin
    kon := b[i][length(b[i])];
    for j := 1 to 5 do
    begin
      if length(a[j]) > 0 then
      begin
        nach := a[j][1];
        if nach = kon then
        begin
          b[i + 1] := a[j];
          a[j] := '';
          break;
        end;
      end;
    end;
  end;

  for i := 1 to 5 do
    StringGrid1.Cells[1, i - 1] := b[i];

end;

но тебе еще надо учесть что если не найдется слово подходящее для продолжения и тд ...
и еще надо учесть буквы 'А' и 'а' программа воспримет как разные ...
и ты в своем коде перепутал начало с концом ... ты брал nach:=b[i][1]; хотя как я понял в б будет уже готовое идти ... тоесть надо брать последнюю букву. .. и тд ... короче я код накидал смотри .. если че спрашивай ...


а да и ошибку он тебе выдавал на строках
nach:=b[i][1];
kon:=a[j][Length(a[j])];

потому что у тебя походу переменные были пустые ... и получалось a[j][Length(a[j])] если a[j] пустая то выходило a[j][0] ... поэтому и ошибка ..
Ответить с цитированием