Работа со строками - 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.

Объяснение кода листинга программы

  1. Объявляются переменные: N, u, ws, w, len, i, j, q, frq, max_frq, k, num.
  2. Пользователю предлагается ввести текст из N слов.
  3. Введенный текст сохраняется в переменной u, а его длина - в переменную len.
  4. Переменная i инициализируется значением 1.
  5. В цикле 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.
  6. Значение j инициализируется значением 1.
  7. В цикле while (j <= q) выполняется следующая операция: а) значение j увеличивается на 1.
  8. Если j больше q, то: а) q увеличивается на 1. б) значение ws[q] присваивается переменной w.
  9. Если условие в блоке else истинно, то значение i увеличивается на 1.
  10. В цикле 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].
  11. Если max_frq больше 1, то выводится сообщение САМОЕ ЧАСТО ВСТРЕЧАЮЩЕЕСЯ СЛОВО и значение num.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5
Похожие ответы