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

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

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

Слова в предложении разделены пробелом. В конце предложения точка. Подсчитать количество предложений и количество слов в предложении. (ввод предложений с клавиатуры) Проблема с кодом:
program Project1; 
 
{$APPTYPE CONSOLE} 
 
uses 
SysUtils; 
 
var s:string; 
a,b,i:integer; 
begin 
writeln('Vvedite'); 
write(s); 
readln(s); 
a:=0; 
b:=1; 
for I := 0 to length(s) do 
if s[i]='.' then 
begin 
a:=a+1 ; 
end; 
if s[i]=' ' then 
begin 
b:=b+1 ; 
end; 
writeln('Otvet'); 
writeln('predl=',a); 
writeln('slov=',b); 
readln; 
end.
Количество предложений считает правильно а слова не считает...в чем загвоздка?

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

textual
Листинг программы
var
    s: String;
    i, countWord, countSent: Byte;
    inWord: Boolean;
begin
    countSent := 0; countWord := 0; inWord := False;
    Write('Input string: '); ReadLn(s);
    for i := 1 to Length(s) do
    begin
        if ((inWord) And (s[i] = ' '))
        then
        begin
            Inc(countWord);
        end;
        if (s[i] = '.')
        then
        begin
            Inc(countSent);
            if (inWord)
            then
                Inc(countWord);
            WriteLn(countSent, ' sentence: ', countWord, ' words.');
            countWord := 0;
        end;
        inWord := Not (s[i] in [' ', '.']);
    end;
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
Похожие ответы