Помощь - Поиск - Пользователи - Календарь
Полная версия: Определить, сколько слов в предложение?
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Marader
Здраствуйте! Помогите пожалуйста ламеру :D
Задача! Записано предложение. Определите, сколько в нем слов.
(большая просьба сделать к ней блок схему)
Спасибо ;)
volvo
Ты когда регистрировался, правила читал?
Цитата
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!


FAQ: Строки + в поиске не менее 10 задач на эту же тему...

Блок-схему начертишь сам...
Marader
Я там ничего не понял! помоги пжл ;)
Marader
Поиск выдает ошибку! а так я не смог найти подобную ей!
volvo
1. Что именно непонятно в FAQ-е?
2. Чем могут разделяться слова в предложении? Только пробелами?
Marader
Вот что я написал! Но не правильно считает? (Исправь пожалуйста, и если можно блок схему)
-------------------------------------------------------------------------
uses crt;
var
st:string;
k,i,n:integer;
begin
clrscr;
writeln('Vvedite predlojenie ');
readln(st);
n:=length(st);
for i:=1 to n do
begin
if (st[i]=' ') or (st[i]=', ') or (st[i]='. ')
then
k:=k+1;
end;
writeln('Koli4estvo slov v stroke' ,k);
readln;
end.

---------------------------------------------------------------------------
volvo
Твоя программа считает не количество слов, а количество разделителей (вернее, только пробелов, из-за ошибок в программе), и если ты введешь строку:
'Вот эта строка, и ...' то в результате получишь непонятно что...

Вот правильный вариант:
const
razdel = [' ', ',', '.'];

var
i, j, n : integer;
s: string;
begin
ReadLn(s);

j := 0; n := length(s);
i := 1;
while i <= n do begin
while (i <= n) and not(s[i] in razdel) do inc(i);

if i < n then begin
inc(j);
while (i <= n) and (s[i] in razdel) do inc(i);
end;
end;
writeln(j, ' slov');
end.

А блок-схему начертишь сам...
Marader
Спасибо брат ;)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.