Программа должна выглядить так: мы вводим предложение в паскаль, а он выводит сколько в нем слов. Это должно быть сделано через оператор 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.
Можно так:
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.
Оператора 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;
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;
Похожие вопросы
- Помогите написать программку на паскале по строкам
- Помогите написать задачи в паскале!!!!
- Помогите написать прогу на паскале
- ПОМОГИТЕ НАПИСАТЬ ЗАДАЧИ НА ПАСКАЛЕ
- СРОЧНО ПОМОГИТЕ!!! Напишите прогу на паскале
- Помогите написать прогу на паскале!
- помогите написать программу на паскале!!! если можно напишите в комментах что где делаете!!!
- Помогите написать программу на паскале
- помогите написать програму в Паскале по задаче
- Срочно!!! Помогите написать программку Pascal!!!Очень надо!!!