Работа со строками - Turbo Pascal (249887)
Формулировка задачи:
Найти самое часто встречающееся слово в строке.
Такое:
я еще не знаю
Решение задачи: «Работа со строками»
textual
Листинг программы
const N=3; var u: string; ws: array[1..N] of string; w: string; len: integer; i, j, q: integer; frq, max_frq,k:integer; num:string; begin writeln('Введите текст из ', N, ' слов: '); read(u); len := length(u); i := 1; while i <= len do if (lowercase(u[i]) >= 'а') and (lowercase(u[i]) <= 'я') then begin w := lowercase(u[i]); i := i + 1; while (i <= len) and ((lowercase(u[i]) >= 'а') and (lowercase(u[i]) <= 'я')) do begin w := w + lowercase(u[i]); i := i + 1; end; j := 1; while j <= q do j := j + 1; if j > q then begin q := q + 1; ws[q] := w; end; end else i := i + 1; //ПОИСК num := ws[1]; max_frq := 1; for i:=1 to N-1 do begin frq := 1; for k:=i+1 to N do if ws[i] = ws[k] then frq := frq + 1; if frq > max_frq then begin max_frq := frq; num := ws[i]; end; end; if max_frq > 1 then writeln('САМОЕ ЧАСТО ВСТРЕЧАЮЩЕЕСЯ СЛОВО ', num) end.
Объяснение кода листинга программы
- Объявляются переменные: N, u, ws, w, len, i, j, q, frq, max_frq, k, num.
- Пользователю предлагается ввести текст из N слов.
- Введенный текст сохраняется в переменной u, а его длина - в переменную len.
- Переменная i инициализируется значением 1.
- В цикле while (i <= len) выполняется следующая проверка: если текущий символ u[i] является буквой от 'а' до 'я' (включительно), то: 5.1. Символ u[i] преобразуется в нижний регистр и добавляется к переменной w. 5.2. Значение i увеличивается на 1. 5.3. В цикле while (i <= len) и (u[i] >= 'а' и u[i] <= 'я') выполняется следующая операция: а) символ u[i] преобразуется в нижний регистр и добавляется к переменной w. б) значение i увеличивается на 1.
- Значение j инициализируется значением 1.
- В цикле while (j <= q) выполняется следующая операция: а) значение j увеличивается на 1.
- Если j больше q, то: а) q увеличивается на 1. б) значение ws[q] присваивается переменной w.
- Если условие в блоке else истинно, то значение i увеличивается на 1.
- В цикле for (i:=1 to N-1) выполняется следующая операция: а) Переменная frq инициализируется значением 1. б) В цикле for (k:=i+1 to N) выполняется следующая операция: а) Если ws[i] равно ws[k], то значение frq увеличивается на 1. в) Если frq больше max_frq, то: а) max_frq присваивается значение frq. б) Значение num присваивается значение ws[i].
- Если max_frq больше 1, то выводится сообщение
САМОЕ ЧАСТО ВСТРЕЧАЮЩЕЕСЯ СЛОВО
и значение num.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д