В каждой строке текстового файла f найти самую длинную последовательность цифр - Pascal
Формулировка задачи:
В каждом рядке текстового файла f найти самую длинную последовательность цифр. Создать новый текстовый файл , каждый рядок которого будет состоять с длины самой длинной последовательности цифр та текста соответствующего рядка файла f
Derzky на форуме Сообщить модератору о нарушении
Решение задачи: «В каждой строке текстового файла f найти самую длинную последовательность цифр»
textual
Листинг программы
const NUMBERS: Set Of Char = ['0'..'9']; function LongestNumber(const s: String): Word; var i, Result, curr: Word; begin Result := 0; i := 1; curr := 0; while (i <= Length(s)) do begin if (s[i] in NUMBERS) then Inc(curr) else begin if (Result < curr) then Result := curr; curr := 0; end; Inc(i); end; LongestNumber := Result; end;
Объяснение кода листинга программы
- Объявление константы
NUMBERSсо значениями от '0' до '9' в виде множества символов. - Определение функции
LongestNumberс аргументомsтипа String, возвращающей значение типа Word. - Объявление переменных
i,Result,currтипа Word. - Инициализация переменных
Resultиiзначением 0, и переменнойcurrзначением 0. - Запуск цикла
whileдо тех пор, пока переменнаяiне станет больше длины строкиs. - Проверка, если символ в позиции
iстрокиsвходит в множествоNUMBERS, то увеличиваем переменнуюcurrна 1. - В противном случае, если текущее значение
currбольше значенияResult, то устанавливаемResultравнымcurr, аcurrравным 0. - Увеличиваем значение
i. - Возврат значения
ResultфункциейLongestNumber.