Задача 3 Урок 18
Primary tabs
Имеется текстовый файл в котором содержится не более 30 строк, в каждой строке не более 30 символов (пробелы тоже считаются символами). Цифры и другие символы перемешаны в каждой строке.
Задание: найдите максимальное число, c учетом того, что числом считаются подряд идущие цифры не только по горизонтали, но и по вертикали.Примеры:
fsd334rgd rfg46gdfg ter5tge56 123gergfОтвет: 345
fsd334rgd r fg ter5tge56 123gergfОтвет: 334
fsd334rgd r16hyj3f7 23tge6f57 123gergf7Ответ: 777
\|/ -->*<-- /o\ /_\_\ /_/_0_\ /_o_\_\_\ /_/_/_/_/o\ /@\_\_\@\_\_\ /_/_/O/_/_/_/_\ /_\_\_\_\_\o\_\_\ /_/0/_/_/20_/_/@/_\ /_\_\_\_\_0_\_\_\_\_\ /_/o/_/_/@/2/_/o/_/0/_\ [_1_]Ответ: 2021
program U18Z3; Var ms:array [1..30] of string; f1:text; filename, s,s1, stroka: string; i,j,naib,a,b:integer; procedure naibchi(var pstroka:string;var pnaib:integer); var ch,code:integer; begin val(pstroka,ch,code); pstroka:=''; if (ch>pnaib) then pnaib:=ch; ch:=0; end; begin filename := 'C:\Users\admin\Desktop\pascal\u18z3.txt'; assign(f1, filename); reset(f1); writeln('========nachalo faila====='); i:=0; while not eof(f1) do begin i:=i+1; readln(f1, s); writeln(s); ms[i]:=s; end; writeLn('========= konez faila ========='); naib:=0; for j:=1 to i do begin s:=ms[j]; stroka:=''; for a:=1 to length(s) do begin if (s[a]>='0') and (s[a]<='9') then stroka:=stroka+s[a] else naibchi(stroka,naib); end; naibchi(stroka,naib); end; for j:=1 to i do begin s:=ms[j]; for a:=1 to length(s) do if (s[a]>='0') and (s[a]<='9') then begin stroka:=stroka+s[a]; for b:=j+1 to i do begin s1:=ms[b]; if (s1[a]>='0') and (s1[a]<='9') then stroka:=stroka+s1[a] else break; end; naibchi(stroka,naib); end; end; writeln('naib=',naib); readln(); end.
- Log in to post comments
- 1183 reads
vedro-compota
Sun, 10/03/2021 - 13:39
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)