Показать сообщение отдельно
  #1  
Старый 30.04.2012, 14:28
Petros9n Petros9n вне форума
Прохожий
 
Регистрация: 13.10.2011
Сообщения: 34
Репутация: 10
По умолчанию Помогите с алгоритмом

Здравствуйте, такая ситуация: есть в едите ключ суть в том что каждые две цифры ключа указывают на ячейку в матрице, например ключ: 13233141
здесь 1 - номер строки первого элемента, 3 - номер столбца первого элемента, 2 - номер строки второго элемента и т.д. Надо алгоритм для считывания этих координат и записи по ним определённых значений в матрицу, я такой алгоритм написал:
Код:
L:=1;
s:=edtKey.Text;
While L<=Length(s) do
begin
i := StrToInt(s[L]);
j := StrToInt(s[L+1]);
Mas[i][j]:=1;
L := L+2;
end;

Суть в том что матрица может быть размером больше 10 и координаты могут состоять из двух чисел, я придумал в ключе отмечать символом "*" (например 93*105*106) который будет давать знать программе что дальше находится многозначная цифра. Вот надо под это доработать алгоритм. Надеюсь на Вашу помощь.

Пытаюсь придумать алгоритм но пока ничего толкового, сделал как-то так:
Код:
L:=1;
s:=edtKey.Text;
  While L<=Length(s) do
  begin
    if s[L] = '*' then
      begin
        i := StrToInt(s[L+1]+s[L+2]);
        if s[L+3] = '*' then
          j := StrToInt(s[L+4]+s[L+5])
        else
          j := StrToInt(s[L+3]);
      end
	else  
	  i := StrToInt(s[L]);
    if s[L+1] = '*' then
      j := StrToInt(s[L+2]+s[L+3])
    else
      j := StrToInt(s[L+1]);
    Mas[i][j]:=1;
    L := L+2;
  end;
результат -> Runtime error 216
Ответить с цитированием