единственное, что пока сделала , нашла количество слов в строке
var
st:string[40];
i,k:integer;
begin
readln (st);
for i:=1 to length(st) do
if st[i]=' ' then k:=k+1;
writeln ('k=', k);
не пойму, как теперь работать с отдельными словами
var
st:string[40];
i,k:integer;
begin
readln (st);
for i:=1 to length(st) do
if st[i]=' ' then k:=k+1;
writeln ('k=', k);
const
limits = [#0..#32,'.',',',':',';','!','?','"'];
type
TWords = array[1..40] of string;
var
text : string;
words : TWords;
function GetWords(s : string; var w : TWords) : byte;
var
i,back,n : byte;
begin
i := 1;
n := 0;
while(i<=length(s)) do begin
while(i<=length(s)) and (s[i] in limits) do
inc(i);
if i<=length(s) then begin
back := i;
while(i<=length(s)) and not(s[i] in limits) do
inc(i);
inc(n);
w[n] := copy(s, back, i-back);
end;
end;
GetWords := n;
end;
uses crt;
const p=' ';
function one(var st:string; c:char):string;
var k,i:integer;
begin
k:=0;
while st[i]<>p do k:=k+1; {хочу посчит. сколько символов в первом слове}
c:=st[1];
for i:=1 to k do
while st[i]<>p do if st[i]=c then st[0]:=char(ord(st[0]-k);
one:=st;
end;
дальше этой строчки компиляция не идет, выдает несоответствие типов
uses crt;
const p=' ';
function one(var st:string; c:char):string;
var k,i:integer;
begin
for i:=1 to length(st) do
while st[i]<>p do
begin
k:=0;
while st[i]<>p do k:=k+1;
c:=st[1];
for i:=1 to k do
while st[i]<>p do if st[i]=c then st[0]:=char(ord(st[0])-k);
end;
one:=st;
end;
VAR
st:string;
c:char;
BEGIN
read (st);
write (one(st,c));
readkey;
end.
st[0]:=char(ord(st[0]-k);
c:=st[1];
function one(var st:string; var c:char):string;
uses crt;
function one(var st:string;var c:char):string;
var i:integer; f:boolean;
begin
writeln ('vvedite stroky');
read (st);
while i<>length(st) do
begin
f:=true;
for i:=1 to ' ' do
begin
c:=s[1];
while s[i]<>' ' or c:=s[i] do
if c=s[i] then f:=true; c:=c+1;
end;
end;