Определить, какой процент слов в тексте содержит удвоенную согласную - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Задача.Определить,какой процент слов в тексте содержит удвоенную согласную(слова разделены пробелами.Не могу вывести процентное содержание слов,выводится только просто количество слов с двойными согласными.Код приведен ниже.Что нужно добавить,чтобы выводилось процентное содержание?

Решение задачи: «Определить, какой процент слов в тексте содержит удвоенную согласную»

textual
Листинг программы
var
  Str, Str1, old: string;
  i, c, c1: integer;
  D1, D2: integer;
 
const
  s1: string = 'бвгджзкйлмнпрстфхцчшщъь';
 
begin
  readln(Str);
  Str1 := '';
  c := 0;
  D1 := 1;
  D2 := 0;
  old := '';
  c1 := 0;
  for i := 1 to length(Str) do 
  begin//1
    if Str[i] = ' ' then 
    begin//2
      c := c + 1;
    end
    else 
    begin
      if c > 0 then 
      begin;
        D1 := D1 + 1; //Счётчик слов
        c := 0;
      end;
      //Привод к нижнему регистру
      if (Str[i] > 'А') and (Str[i] < 'Я') then 
        Str[i] := chr(ord(Str[i]) + 32);
      
      if Str[i] = old then 
      begin
        c1 := c1 + 1; //Считаем одинаковые буквы.
        
      end 
      else 
      begin
                                 //если есть удвоение
        if c1 = 1 then 
        begin
          if pos(old, s1) <> 0 then 
          begin
            D2 := D2 + 1;
            break; // остальные удвоенные в слове не считаем
          end;
        end;
        c1 := 0;
      end;
      
      old := Str[i];
      
    end; //
    
  end;  //
  writeln('Всего слов: ', d1);
  writeln('Всего удвоенных слов: ', d2);  
  writeln('Процент слов в тексте содержит удвоенную согласную: ', d2 / d1 * 100:0:2);  
  readln;
end.

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

  1. В строке считывается входной текст.
  2. Инициализируются переменные: Str, Str1, old, i, c, c1, D1, D2.
  3. Строка разбивается на символы.
  4. Проверяется каждый символ:
    • Если символ - пробел, увеличивается счетчик c.
    • Если символ не является пробелом и предыдущий символ был пробелом, увеличивается счетчик D1.
    • Если символ не является пробелом и не совпадает с предыдущим символом, увеличивается счетчик c.
    • Если символ не является пробелом и совпадает с предыдущим символом, увеличивается счетчик c1.
  5. После обработки всех символов, вычисляется количество слов (D1) и количество удвоенных согласных слов (D2).
  6. Выводится общее количество слов и удвоенных согласных слов.
  7. Вычисляется процент слов в тексте, содержащих удвоенную согласную.
  8. Выводится полученный процент.
  9. Программа завершается ожиданием ввода пользователя.

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

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