Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ количество слов, заканчивающихся на заданную букву

Автор: Saha 13.4.2010, 12:36

Создать в программе Блокнот текстовый файл. Написать программу, которая подсчитывает количество слов в созданном текстовом файле, заканчивающихся на заданную букву.
Как сделать, чтобы программа определяла, что слово должно заканчиваться на заданную букву???
Пожалуйста, помогите!! Буду очень благодарна))

Автор: Евгений М. 13.4.2010, 12:38

Цитата
Пожалуйста, помогите!!

http://www.prepody.ru/ipb.html?act=boardrules
В чем проблема то? Или для вас "помогите" одно и тоже, что "решите мне"?

Автор: Saha 13.4.2010, 13:12

Цитата(Евгений М. @ 13.4.2010, 18:38) *

http://www.prepody.ru/ipb.html?act=boardrules
В чем проблема то? Или для вас "помогите" одно и тоже, что "решите мне"?

эмм.. я не знаю как сделать так, чтоб программа определяла, что слово именно ЗАКАНЧИВАЕТСЯ на заданную букву..

Автор: Vahappaday 13.4.2010, 16:14

а язык-то хоть какой?

Автор: Saha 15.4.2010, 8:36

Паскаль

Автор: Vahappaday 15.4.2010, 11:24

{с - искомый символ, на который слово должно заканчивается}
{пердположим, у вас есть распарсенный массив строк}
{s - текущее обрабатываемое слово}
{count - счетчик слов}
l:= length(s);
if (s[l]=c) then count:=count+1;

Автор: Saha 15.4.2010, 14:12

Спасибо))) А тип s какой должен быть?

Автор: Saha 15.4.2010, 15:18

у меня не получается((
У меня есть программа, которая находит в заданной строке слово, в котором больше всего встречается заданная буква. Может в ней кое-что изменить просто, да и все?

program lab8;
const r=[' ',',','.'];
var s,s1,s2:string;
i,k,m,g,p:integer;
c:char;
begin
writeln('vvedite stroku');
readln(s);
s:=' '+s;
write('vvedite bukvu dlya poiska c=');
readln ©;
m:=0;
for i:=1 to length(s) do
if not(s[i]in r)and (s[i-1] in r) then
begin
k:=i;s1:='';
while not(s[k] in r)and(k<=length(s))do
begin
s1:=s1+s[k];
k:=k+1;
end;
g:=0;
for p:=1 to length(s1) do
if s1[p]=c then g:=g+1;
if g>m then
begin
m:=g;
s2:=s1;
end;
end;
writeln;
if m=0 then write('slov s bukvoi ',c,' net')
else writeln('bolshe vsego bukv ',c,' v slove ',s2);
end.

Автор: Saha 16.4.2010, 9:24

Я справилась сама))

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)