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