Задача 3 урок 18
Primary tabs
Задача 3 урок 18
Имеется текстовый файл в котором содержится не более 30 строк, в каждой строке не более 30 символов (пробелы тоже считаются символами). Цифры и другие символы перемешаны в каждой строке.
Задание: найдите максимальное число, c учетом того, что числом считаются подряд идущие цифры не только по горизонтали, но и по вертикали.Примеры:
fsd334rgd rfg46gdfg ter5tge56 123gergf
Ответ: 345
type arrSTR = array[1..10] of string; Var f1:text; filename, str: string; i, maxS: integer; a: arrSTR; // process1 ищет максимальное число по строкам (maxS) procedure process1(str: string; var maxS: integer); var i, T, Code: integer; m: string; begin for i:=1 to length(str) do begin if (str[i]>='0')and(str[i]<='9') then begin m:=m+str[i]; if NOT((str[i+1]>='0')and(str[i+1]<='9')) OR (i=length(str)) then begin Val(m, T, Code); if maxS<T then maxS:=T; m:=''; end; end; end; end; procedure process2 (str: string; var a: arrSTR); var i: integer; begin for i:=1 to length(str) do a[i]:=a[i]+str[i]; end; begin filename := 'C:\Users\boris\Documents\HTML\tablica.txt'; assign(f1, filename); reset(f1); maxS:=0; while not eof(f1) do // пока не достигнут конец файла begin readln(f1, str); // читаем из него очередную строку process1(str,maxS);//поиск большего по строкам process2(str,a); //формерование строк по вертикалям end; for i:=1 to high(a) do begin process1(a[i],maxS);//"вертикальные" строки на поиск большего end; writeln('Max chislo= ',maxS); readln(); end.
- Log in to post comments
- 736 reads
vedro-compota
Sun, 09/19/2021 - 12:24
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)