Подсчитать сколько слов во фразе «Программа модификации объектных модулей предназначена для внесения изменений в объектные модули» заканчивается на одинаковые буквы. Если таких слов нет, то подсчитать количество букв «п» в тексте.
А что конкретно для этой фразы??
function rav(s:string) : boolean;
begin
if s[1]=s[length(s)] then
rav:=true
else
rav:=false;
end;
type
prob=array[1..128] of integer;
slova=array[1..128]of string;
var
p:prob;
t:slova;
sc,i,k,r,j:integer;
s:string;
begin
readln(s);
s:=' '+s+' ';
k:=1;
for i:=1 to length(s) do
begin
if s[i]=' ' then
begin
p[k]:=i;
k:=k+1
end;
end;
for i:=0 to (k) do
begin
for j:=p[i]+1 to p[i+1]-1 do
begin
t[r]:=t[r]+s[j];
end;
r:=r+1;
end;
for i:=1 to r do
begin
if rav(t[i])=true then
sc:=sc+1;
end;
if sc<>0 then
writeln(sc,' слов начинающихся и заканчивающихся на одну и ту же букву')
else
begin
for i:=1 to length(s) do
begin
if s[i]='П'
then sc:=sc+1;
end;
writeln(sc,' букв "П"';
end;
readln
end.
Чуть ошибся)
Вот так
function rav(s:string) : boolean;
begin
if s[1]=s[length(s)] then
rav:=true
else
rav:=false;
end;
type
prob=array[1..128] of integer;
slova=array[1..128]of string;
var
p:prob;
t:slova;
sc,i,k,r,j:integer;
s:string;
begin
readln(s);
s:=' '+s+' ';
k:=1;
for i:=1 to length(s) do
begin
if s[i]=' ' then
begin
p[k]:=i;
k:=k+1
end;
end;
for i:=0 to (k) do
begin
for j:=p[i]+1 to p[i+1]-1 do
begin
t[r]:=t[r]+s[j];
end;
r:=r+1;
end;
for i:=1 to r do
begin
if rav(t[i])=true then
sc:=sc+1;
end;
if sc<>0 then
writeln(sc,' слов начинающихся и заканчивающихся на одну и ту же букву')
else
begin
for i:=1 to length(s) do
begin
if (s[i]='п') or (s[i]='П')
then sc:=sc+1;
end;
writeln(sc, ' букв "П"');
end;
readln
end.
не могли бы вы написать код для "заканчивающихся на одинаковую букву")) там получается два слова заканчиваются на букву "а" и два слова на букву "я"...и можно ли сделать без массива?)))))
без массива к сожалению не умею, я только учусь пока))
а насчет букв я чето тебя не понял, чего ты конкретно хочешь