Задача 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
- 1435 reads
vedro-compota
Tue, 09/14/2021 - 22:13
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)