Подсчитать количество предложений и количество слов в предложении - Pascal

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

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

Слова в предложении разделены пробелом. В конце предложения точка. Подсчитать количество предложений и количество слов в предложении. (ввод предложений с клавиатуры) Проблема с кодом:
Листинг программы
  1. program Project1;
  2. {$APPTYPE CONSOLE}
  3. uses
  4. SysUtils;
  5. var s:string;
  6. a,b,i:integer;
  7. begin
  8. writeln('Vvedite');
  9. write(s);
  10. readln(s);
  11. a:=0;
  12. b:=1;
  13. for I := 0 to length(s) do
  14. if s[i]='.' then
  15. begin
  16. a:=a+1 ;
  17. end;
  18. if s[i]=' ' then
  19. begin
  20. b:=b+1 ;
  21. end;
  22. writeln('Otvet');
  23. writeln('predl=',a);
  24. writeln('slov=',b);
  25. readln;
  26. end.
Количество предложений считает правильно а слова не считает...в чем загвоздка?

Решение задачи: «Подсчитать количество предложений и количество слов в предложении»

textual
Листинг программы
  1. var
  2.     s: String;
  3.     i, countWord, countSent: Byte;
  4.     inWord: Boolean;
  5. begin
  6.     countSent := 0; countWord := 0; inWord := False;
  7.     Write('Input string: '); ReadLn(s);
  8.     for i := 1 to Length(s) do
  9.     begin
  10.         if ((inWord) And (s[i] = ' '))
  11.         then
  12.         begin
  13.             Inc(countWord);
  14.         end;
  15.         if (s[i] = '.')
  16.         then
  17.         begin
  18.             Inc(countSent);
  19.             if (inWord)
  20.             then
  21.                 Inc(countWord);
  22.             WriteLn(countSent, ' sentence: ', countWord, ' words.');
  23.             countWord := 0;
  24.         end;
  25.         inWord := Not (s[i] in [' ', '.']);
  26.     end;
  27. end.

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

  1. Объявляется переменная s типа String, и переменные i, countWord, countSent типа Byte, а также переменная inWord типа Boolean.
  2. Устанавливаются начальные значения: countSent равен 0, countWord равен 0, inWord равен False.
  3. Выводится приглашение Input string:, после чего пользователь вводит строку, которая присваивается переменной s.
  4. Запускается цикл по строке s. Для каждого символа строки выполняются следующие действия:
    • Если inWord равно True и текущий символ s[i] равен пробелу, то увеличиваем значение countWord на 1.
    • Если текущий символ s[i] равен точке '.', увеличиваем значение countSent на 1, если inWord равно True, увеличиваем значение countWord на 1, после чего выводим количество предложений и слов для текущего предложения и сбрасываем countWord в 0.
    • Переменной inWord присваивается значение, обратное тому, является ли символ s[i] пробелом или точкой.
  5. Код завершается.

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


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

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

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

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

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

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