Задача 4 Урок 20
Primary tabs
Дан текстовый файл, в котором с в ASCII-стиле нарисованы цепочки из цифр, которые связаны по горизонтали и вертикали.
Все цепочки составляют одно дерево, которое устроено так:всегда есть общий корень и это цифра
по горизонтали цепочка не разрывается пробелами, соединяется же с помощью последовательностей знака - (тире).
по вертикали цепочка не разрывается переносом строк, соединяется же с помощью вертикальных последовательностей символа | (вертикального разделителя).Размер схемы не более чем 100 на 100 символов. Задача: вывести длина самой длинной цепочки.
type sarr=array [1..10] of string;
type iarr=array [1..15] of integer;
var f:text; name:string; i,j,k,t,h,t1,max:integer;
a1:iarr; s:sarr;
function zapolni(z:string; x:integer; var a:iarr; t:integer):integer;
var j:integer;
begin
for j:=x to length(z) do
if (z[j]>='0') and (z[j]<='9') then
a[t]+=1;
result:=a[t];
end;
begin
t:=0;
name:='C:\Users\test\Desktop\TraliVali\file.txt';
assign(f,name);
reset(f);
h:=0;
while not eof(f) do
begin
h+=1;
readln(f, s[h]);
end;
i:=1;
for j:=1 to length(s[1]) do
begin
if (s[i][j]>='0') and (s[i][j]<='9') then
begin
k+=1;
if s[i+1][j]='|' then
begin
i+=1;
while (s[i][j]='|') and (i<h) do
begin
i+=1;
if s[i][j+1]='-' then
begin
t1+=1;
a1[t1]:=k+zapolni(s[i],j,a1,t1);
end;
end;
end;
i:=1;
end;
end;
max:=a1[1];
for t1:=2 to high(a1) do
if a1[t1]>max then
max:=a1[t1];
writeln(max);
readln();
end. - Log in to post comments
- 620 reads