{Дан текстовый файл, в котором с в 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
Wed, 02/09/2022 - 20:27
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)