задача 4 урок 19
Primary tabs
Дан текстовый файл, в котором с в ASCII-стиле нарисованы цепочки из цифр, которые связаны по горизонтали и вертикали.
Все цепочки составляют одно дерево, которое устроено так:
всегда есть общий корень и это цифра
по горизонтали цепочка не разрывается пробелами, соединяется же с помощью последовательностей знака - (тире).
по вертикали цепочка не разрывается переносом строк, соединяется же с помощью вертикальных последовательностей символа | (вертикального разделителя).
Размер схемы не более чем 100 на 100 символов.1------4--------------5-------6--------7 | | | |-------5---------8 | |-------6--------7--7-------9------8---1----5---3Ответ: 10
Решение
program task_4_lesson19; type str = array[1..50] of string; // Печать файла procedure printArr(a: str); var i: integer; begin for i := 1 to 50 do begin write(a[i]); writeln(); end; end; //Считаю числа в первой строке до s[j]-го элемента procedure FirstStr(var c1: integer; s: string; p: integer); var i: integer; begin for i := 1 to p do if ((s[i] >= '0') and (s[i] <= '9')) then c1 := c1 + 1; end; //Ститаю числа в I-ой строке от s[j]-го элемента procedure secondStr(var c2: integer; s: string; p: integer); var i: integer; begin for i := p to length(s) do if ((s[i] >= '0') and (s[i] <= '9')) then c2 := c2 + 1; end; var f1: text; i,j: integer; st: str; s, filename: string; n: integer; // кол-во в первой строке c1: integer; //кол-во чисел в первой строке до I-го элемента c2: integer; //кол-во чисел в N-ой строке max: integer; begin c1 := 0; c2 := 0; i := 1; n := 0; filename := 'C:\Users\XE\Documents\Pascal\input4.txt'; assign(f1, filename); reset(f1); while not eof(f1) do begin readln(f1, s); st[i] := s; i += 1; end; firststr(n, st[1], 50); for i := 2 to high(st) do begin for j := 1 to length(st[i]) do if ((st[i][j] = '|') and (st[i][j+1] = '-')) then begin secondstr(c2, st[i], j); firststr(c1, st[1], j); end; max := c1 + c2; c1 := 0; c2 := 0; if max >= n then n := max; end; printArr(st); write(n); readln end.
Консоль
1------4------8--------5-------6--------7 | | | | | |-------5----9-----8 | | | |--------8-8-8---8----8-9 | |-------6--------7--7----5---5 |--------------5-5--5--5---5---2 Otvet: 9
- Log in to post comments
- 652 reads
vedro-compota
Wed, 11/10/2021 - 18:52
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)