задание 4 Урок 19

{Дан текстовый файл, в котором с в ASCII-стиле нарисованы цепочки из цифр, которые
связаны по горизонтали и вертикали.
Все цепочки составляют одно дерево, которое устроено так:
всегда есть общий корень и это цифра
по горизонтали цепочка не разрывается пробелами, соединяется же с помощью
последовательностей знака - (тире).
по вертикали цепочка не разрывается переносом строк, соединяется же с помощью
вертикальных последовательностей символа | (вертикального разделителя).
Размер схемы не более чем 100 на 100 символов.}


задание 4 Урок 19

Var mas:array [1..100] of string;
    f1:text;
    filename,s: string;
    i,j,n,a,C,L,max:integer;
procedure obratnyiOtschet(Smas: array of string;L,k:integer; var n:integer);
var str: string;
begin
  while (C>=1) and(L>=0) do
  begin
    str:=Smas[L];
    if (str[C]>='0') and (str[C]<='9') then
    begin
        n:=n+1;  //счетчик цифр
        C:=C-1;  //счетчик элементов от конца к началу
    end;
    if (str[C]='-') then   //движение от конца к началу
      C:=C-1;
    if (str[C]='|') then // движение снизу вверх
      L:=L-1; //счетчик строк
  end;
end;
begin
  filename := 'C:\Users\qwe\Desktop\text.txt';
  assign(f1, filename);
  reset(f1);
  writeln('========nachalo faila=====');
  i:=1;

  while not eof(f1) do
    begin
      readln(f1, s);
      writeln(s);
      mas[i]:=s;
      i:=i+1; //счетчик строк

    end;
  writeLn('========= konez faila =========');
  max:=0;
  n:=0;
  for j:=1 to (i-1) do  // цикл по количеству строк
  begin
    s:=mas[j];
    for a:=1 to length(s) do
    begin
      if (s[a]>='0') and (s[a]<='9') and (a=length(s)) then
      begin
        C:=a;   //от индексa последней цифры в строке
        L:=j-1; //  с верхней строки
        obratnyiOtschet(mas,L,C,n);
        if (max<n) then
        begin
          max:=n;
        end;
        n:=0;
      end;
    end;
  end;
  writeln('max= ',max);
  readln();
end.         
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)