Помощь - Поиск - Пользователи - Календарь
Полная версия: строки в паскале
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
radeon37
Подсчитать сколько слов во фразе «Программа модификации объектных модулей предназначена для внесения изменений в объектные модули» заканчивается на одинаковые буквы. Если таких слов нет, то подсчитать количество букв «п» в тексте.
Гость
А что конкретно для этой фразы??
radeon37
Цитата(Гость @ 23.05.2010 15:41) *

А что конкретно для этой фразы??


Подсчитать сколько слов заканчивается на одинаковые буквы. Если таких слов нет, то подсчитать количество букв «п» в тексте.
volvo
Цитата
Подсчитать сколько слов заканчивается на одинаковые буквы.
Ну вот тебя и спрашивают, в том примере, который ты привел, сколько слов заканчиваются на одну и ту же букву? Одно? Два? Три? Посчитай, и скажи, а не перепечатывай задание... А потом расскажешь КАК считал.
Гость
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.
radeon37
не могли бы вы написать код для "заканчивающихся на одинаковую букву")) там получается два слова заканчиваются на букву "а" и два слова на букву "я"...и можно ли сделать без массива?)))))
Гость
без массива к сожалению не умею, я только учусь пока))
а насчет букв я чето тебя не понял, чего ты конкретно хочешь
Lapp
Цитата(radeon37 @ 23.05.2010 20:00) *
не могли бы вы написать код для "заканчивающихся на одинаковую букву")) там получается два слова заканчиваются на букву "а" и два слова на букву "я"...
radeon37, ты пойми, что от тебя хотят тут более конкретной постановки задания. Никому неясно, что означает "сколько слов заканчиваются на одинаковые буквы". Это задание можно трактовать двояко. Скажи, что должно быть в ответе к данному примеру. Пока не поставишь условие - какой смысл решать?

варианты ответа такие:

1-й вариант:
6

2-й вариант:
а - 2
и - 2
я - 2
radeon37
Цитата(Lapp @ 25.05.2010 2:29) *

radeon37, ты пойми, что от тебя хотят тут более конкретной постановки задания. Никому неясно, что означает "сколько слов заканчиваются на одинаковые буквы". Это задание можно трактовать двояко. Скажи, что должно быть в ответе к данному примеру. Пока не поставишь условие - какой смысл решать?

варианты ответа такие:

1-й вариант:
6

2-й вариант:
а - 2
и - 2
я - 2


нужно, чтобы был второй вариант...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.