Задача 3 Урок 19
Primary tabs
Имеется текстовый файл в котором содержится не более 30 строк, в каждой строке не более 30 символов (пробелы тоже считаются символами). Цифры и другие символы перемешаны в каждой строке.
Задание: найдите максимальное число, c учетом того, что числом считаются подряд идущие цифры не только по горизонтали, но и по вертикали.
type strArr = array[1..30] of string; var f1: text; filename, s: string; i, max : integer; str_arr: strArr; procedure get_max_str(str: string; var max: integer); //находим максимальное из строки var i, num, code: integer; num_str: string; begin i := 1; while(i <= length(str)) do begin if((str[i] >= '0') AND (str[i] <= '9')) then begin num_str := ''; while((str[i] >= '0') AND (str[i] <= '9') AND (i <= length(str))) do begin num_str += str[i]; i += 1; end; val(num_str, num, code); if(code = 0) then if(num > max) then max := num; end else i += 1; end; end; procedure col_to_arr(str: string; var arr: strArr); //сохраняем столбцы, как элементы массива строк var i: integer; begin for i := 1 to length(str) do arr[i] += str[i]; end; begin str_arr[1] := ''; max := 0; filename := 'D:\User\Pascal\lesson18\task_3\input.txt'; assign(f1, filename); reset(f1); while(NOT eof(f1)) do begin readln(f1, s); get_max_str(s, max); col_to_arr(s, str_arr); writeln(s); end; for i := low(str_arr) to high(str_arr) do begin if(str_arr[i] = '') then break; get_max_str(str_arr[i], max); end; writeln(); writeln('Maximalnoe: ', max); readln(); end.
- Log in to post comments
- 738 reads