Задача 3 Урок 18

Задача 3 урок 18

Имеется текстовый файл в котором содержится не более 30 строк, в каждой строке не более 30 символов (пробелы тоже считаются символами). Цифры и другие символы перемешаны в каждой строке.
Задание: найдите максимальное число, c учетом того, что числом считаются подряд идущие цифры не только по горизонтали, но и по вертикали.

Примеры:

fsd334rgd
rfg46gdfg
ter5tge56
123gergf

Ответ: 345

fsd334rgd
r      fg
ter5tge56
123gergf

Ответ: 334

fsd334rgd
r16hyj3f7
23tge6f57
123gergf7

Ответ: 777

          \|/
        -->*<--
          /o\
         /_\_\
        /_/_0_\
       /_o_\_\_\
      /_/_/_/_/o\
     /@\_\_\@\_\_\
    /_/_/O/_/_/_/_\
   /_\_\_\_\_\o\_\_\
  /_/0/_/_/20_/_/@/_\
 /_\_\_\_\_0_\_\_\_\_\
/_/o/_/_/@/2/_/o/_/0/_\
         [_1_]

Ответ: 2021

program U18Z3;
Var ms:array [1..30] of string;
    f1:text;
    filename, s,s1, stroka: string;
    i,j,naib,a,b:integer;

procedure naibchi(var pstroka:string;var pnaib:integer);
var ch,code:integer;
begin
  val(pstroka,ch,code);
  pstroka:='';
  if (ch>pnaib) then
    pnaib:=ch;
  ch:=0;
end;

begin
  filename := 'C:\Users\admin\Desktop\pascal\u18z3.txt';
  assign(f1, filename);
  reset(f1);
  writeln('========nachalo faila=====');
  i:=0;
  while not eof(f1) do
    begin
      i:=i+1;
      readln(f1, s);
      writeln(s);
      ms[i]:=s;
    end;
  writeLn('========= konez faila =========');
  naib:=0;
  for j:=1 to i do
  begin
    s:=ms[j];
    stroka:='';
      for a:=1 to length(s) do
      begin
        if (s[a]>='0') and (s[a]<='9') then
          stroka:=stroka+s[a]
        else
          naibchi(stroka,naib);
      end;
      naibchi(stroka,naib);
  end;
  for j:=1 to i do
  begin
    s:=ms[j];
    for a:=1 to length(s) do
      if (s[a]>='0') and (s[a]<='9') then
      begin
        stroka:=stroka+s[a];
        for b:=j+1 to i do
        begin
          s1:=ms[b];
          if (s1[a]>='0') and (s1[a]<='9') then
            stroka:=stroka+s1[a]
          else
            break;
        end;
        naibchi(stroka,naib);
      end;
  end;
  writeln('naib=',naib);
  readln();
end.  
vedro-compota's picture

решение засчитано

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