Если слова разделяются одним пробелом, то задачу можно решить так: var s:string; k:integer; begin writeln('Введите строку'); readln(s); s:=s+' '; k:=0; while pos(' ',s)>0 do begin k:=k+1; delete(s,1,pos(' ',s)); end; writeln('Количество слов в строке = ',k); end.
Пример: Введите строку Вася пошел гулять. Количество слов в строке = 3
Ryazanova1575
16.03.2021
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016 begin var s:=ReadlnString('>'); Print('Найдено слов:',s.ToWords.Count) end.
Решение: я попробую объяснить словами... var a,b,c:integer; begin a:=1257; c:=0; while (a>0) do т.к a>0 (1257>0) начинаем решить действия begin if (a mod 2 <> 0) then Здесь: 1257:2=628 (остаток 1) b:= a mod 10; Здесь: 1257:10=125 (остаток 7) c:=c+b; Получается, мы складываем остатки и a:=a div 10; получаем 8. Для ответа нам пригодится end; число, составленное из остатка а и 8, writeln(c); то есть 18. end.
ответ: 18.
Стуканова УЧРЕЖДЕНИЕ1877
16.03.2021
Прежде всего, код надо отформатировать и исправить имеющиеся в нем ошибки. А затем приступать к его рассмотрению.
var a, b: integer;
procedure proc(var a: integer; b: integer); begin b := 4; a := 6; b := a + b end;
begin a := 2; b := 3; proc(a, b); Writeln(a, ' ', b) end.
Описаны две целочисленные переменные a и b. Им присваиваются значения 2 и 3 соответственно. Затем следует вызов процедуры proc, в которую эти переменные передаются в качестве параметров.
На входе в proc получаем a=2, b=3. Далее b получает значение 4, а получает значение 6 и затем b получает значение суммы a+b, т.е. 4+6=10. На этом работа процедуры завершается. Поскольку параметр процедуры a имеет описатель var, то в основную программу вернется значение, которое a имело внутри процедуры (т.е. 6). Значение b=10 действует только внутри процедуры и в основную программу не вернется.
Следовательно, в основной программа значение а поменяется на 6, а значение b сохранится прежним (3). В результате на выходе будет строка: 6 3
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Ввести с клавиатуры символьную строку и определить сколько в ней слов. пример: вася пошел найдено 3 слова.
var s:string; k:integer;
begin
writeln('Введите строку');
readln(s);
s:=s+' ';
k:=0;
while pos(' ',s)>0 do
begin
k:=k+1;
delete(s,1,pos(' ',s));
end;
writeln('Количество слов в строке = ',k);
end.
Пример:
Введите строку
Вася пошел гулять.
Количество слов в строке = 3