В каждой строке текстового файла 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д