Задача 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 lesson18_4;
type
intArr = array[1..100] of integer;
strArr = array[1..30] of string;
procedure fillArr(var sArr: strArr; k: integer);
var
i, j: integer;
begin
for i := low(sArr) to k do
for j := low(sArr[i]) to length(sArr[i]) do
if (sArr[i][j] = ' ') or (sArr[i][j] = '|') then
sArr[i][j] := sArr[i - 1][j];
end;
function getCount(s: string): integer;
var
str: string = '';
b: boolean;
i, count: integer;
begin
count := 0;
for i := low(s) to length(s) do
begin
if (s[i] >= '0') and (s[i] <= '9') then
begin
str := str + s[i];
b := false;
end else
b := true;
if (str <> '') and (b or (i = length(s))) then
begin
count := count + 1;
str := '';
end;
end;
result := count;
end;
function max(a: intArr): integer;
var
m, i: integer;
begin
m := 0;
for i := low(a) to high(a) do
if a[i] > m then
m := a[i];
result := m;
end;
var
sArr: strArr;
iArr: intArr;
f1: text;
filename: string;
i, k: integer;
begin
filename := 'D:\Pascal\Uroc18\text2.txt';
assign(f1, filename);
reset(f1);
k := 0;
while not eof(f1) do
begin
k := k + 1;
readln(f1, sArr[k]);
end;
fillArr(sArr, k);
for i := low(sArr) to k do
iArr[i] := getCount(sArr[i]);
writeln('max = ', max(iArr));
readln();
end.- Log in to post comments
- 1755 reads
vedro-compota
Tue, 09/14/2021 - 22:13
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)