Напечатать все слова, не содержащие ни одной цифры - Pascal

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

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

Дали программу на pascal, а я его уже не помню я больше по веб, помогите написать программку простую Строка: AAaaB aaaAbb, CDeDC. ffGGG! hIIIk? DS23sd dffD3d dffoEd Напечатать все слова, не содержащие ни одной цифры. Рядом со словом напечатать количество букв в нем.

Решение задачи: «Напечатать все слова, не содержащие ни одной цифры»

textual
Листинг программы
  1. const rz=[' ','.',',','?','!'];{символы, разделители слов, можно добавить}
  2. var s,s1:string;
  3.     n,i,j,f,k:byte;
  4. begin
  5. writeln('Введите строку');
  6. readln(s);
  7. s:=' '+s;{добавим пробел в начало}
  8. writeln('Слова, не содержащие ни одной цифры');
  9. f:=0;
  10. n:=length(s);
  11. i:=2;
  12. while i<=n do
  13. if not(s[i] in rz)and (s[i-1] in rz) then{если не разделитель
  14.                                 и перед ним разделитель, то начало слова*}
  15.  begin
  16.   j:=i;
  17.   s1:='';
  18.   while (j<=n) and not(s[j] in rz) do {пока не разделитель и не конец строки}
  19.    begin
  20.     s1:=s1+s[j];
  21.     j:=j+1;
  22.    end;
  23.   k:=0;
  24.   j:=1;
  25.   while(j<=length(s1))and(k=0) do
  26.   if s1[j] in ['0'..'9'] then k:=1
  27.   else inc(j);
  28.   if k=0 then
  29.    begin
  30.     f:=1;
  31.     writeln(s1,' количество букв=',length(s1));
  32.    end;
  33.   i:=i+length(s1);
  34.  end
  35. else i:=i+1;{пропускаем разделители}
  36. if f=0 then write('Таких слов нет');
  37. end.

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

  1. Объявление переменных:
    • rz: массив символов, содержащий разделители слов
    • s, s1: строки для хранения введенной и обрабатываемой строки
    • n, i, j, f, k: переменные типа byte
  2. Ввод строки:
    • Пользователю выводится приглашение Введите строку
    • Введенная строка сохраняется в переменную s
  3. Добавление пробела в начало строки:
    • В начало строки s добавляется пробел
  4. Поиск слов без цифр:
    • Используется цикл while, в котором происходит анализ каждого символа в строке
    • Если символ не является разделителем и предыдущий символ - разделитель, он считается началом слова
    • Для каждого найденного слова производится последовательный анализ каждого символа
    • Если в слове обнаруживается цифра, оно помечается флагом k
    • Если в слове не обнаруживается ни одной цифры, выводится это слово и его длина
    • Выполняется шаг поиска слова (прибавляется длина слова к индексу)
    • Если ни одного слова без цифр не найдено, выводится сообщение Таких слов нет

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


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

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

15   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы