Помощь - Поиск - Пользователи - Календарь
Полная версия: Определить, сколько слов в предложение?
Форум «Всё о Паскале» > 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
Спасибо брат ;)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.