Другие языки программирования и технологии

Помогите написать программку в Паскале...

Программа должна выглядить так: мы вводим предложение в паскаль, а он выводит сколько в нем слов. Это должно быть сделано через оператор String.
Помогите кто сможет=)
Оператора string нет. string - зарезервированное слово - объявление типа "строка".

Можно так:

program WordsCnt;
uses Crt;
var St: string[255]; Cnt: Integer;
begin
ReadLn(St);
Cnt:= 1;
if Length(St) > 0 then
begin
while Pos(' ', St) <> 0 do
begin
if Pos(' ', St) <> 0 then Inc(Cnt); // здесь можно, конечно, добавить проверки на завершающий пробел, на лидирующий пробел и на то, что в строке только один пробел.
St[Pos(' ', St)]:= '%';
end;
WriteLn('Количество слов в строке: ', Cnt);
end else
WriteLn('Строка пуста! ');
while not KeyPressed do;
end.
DS
Denis Samokhin
1 930
Лучший ответ
Оператора string в паскале не существует, следовательно поставленная задача неразрешима.
Ответ видится так: слова это последовательность букв и цифр разделенных пробелами, то есть нужно удалить все начальные пробелы до знака далее нужно подсчитать пробелы:

function wc( const str: String ) : Integer;
var
P: Integer;
L: Integer;
isWord: Boolean;
begin
P := 1;
L := Length( str );
{ пропускаем все пробелы в начале строки }
while ( ( str[ P ] = " " ) and ( P <= L ) ) do
Inc( P );

{начинаем подсчет слов, изначально их 0, если у вас компилятор не найдет Result, замените его везде на wc}
Result := 0;
isWord := False;
while ( P <= L ) do begin
if ( str[ P ] <> " " ) then
isWord := True
else if ( isWord ) then begin
{если слово начиналось и окончилось пробелом, то можно увеличить счетчик слов и сбросить флаг наличия слова}
isWord := False;
Inc( Result );
end;
Inc( P );
end;

if ( isWord ) then begin
{если после завершения строки флаг наличия слова остался установлен то увеличить счетчик слов}
Inc( Result );
end;
end;