Задача 4 Урок 18
Primary tabs
Дан текстовый файл, в котором с в ASCII-стиле нарисованы цепочки из цифр, которые связаны по горизонтали и вертикали.
Все цепочки составляют одно дерево, которое устроено так:
всегда есть общий корень и это цифра
по горизонтали цепочка не разрывается пробелами, соединяется же с помощью последовательностей знака - (тире).
по вертикали цепочка не разрывается переносом строк, соединяется же с помощью вертикальных последовательностей символа | (вертикального разделителя).
Размер схемы не более чем 100 на 100 символов.Примеры:
1------4--------------5-------6--------7 | | | |-------5---------8 | |-------6--------7--7-------9------8---1----5---3Ответ: 10
1------4------8--------5-------6--------7 | | | | | |-------5---------8 | | | |--------8-8-8---8----8 | |-------6--------7--7 |--------------5-5--5--5Ответ: 8
program U18Z4; Var ms:array [1..100] of string; f1:text; filename,s: string; i,j,n,u,kk,ll,naib:integer; procedure proc(mms: array of string;l,k:integer; var nn:integer); var str: string; begin while (k>=1) and(l>=0) do begin str:=mms[l]; if (str[k]>='0') and (str[k]<='9') then begin nn:=nn+1; k:=k-1; end; if (str[k]='-') then k:=k-1; if (str[k]='|') then l:=l-1; end; end; begin filename := 'C:\Users\admin\Desktop\pascal\u18z4.txt'; assign(f1, filename); reset(f1); writeln('========nachalo faila====='); i:=1; while not eof(f1) do begin readln(f1, s); writeln(s); ms[i]:=s; i:=i+1; end; writeLn('========= konez faila ========='); naib:=0; n:=0; for j:=1 to (i-1) do begin s:=ms[j]; for u:=1 to length(s) do begin if (s[u]>='0') and (s[u]<='9') and (u=length(s)) then begin kk:=u; ll:=j-1; proc(ms,ll,kk,n); if (naib<n) then begin naib:=n; end; n:=0; end; end; end; writeln('naib= ',naib); readln(); end.
- Log in to post comments
- 1052 reads
vedro-compota
Sun, 10/03/2021 - 13:40
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)