Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.17;
Скачать: CL | DM;

Вниз

кол-во слов начинающихся и заканчивающихся заданным символом   Найти похожие ветки 

 
Lipris ©   (2006-11-30 16:43) [0]

как написать программу которая в строке найдет  количество слов начинающихся и заканчивающихся заданным символом.

Текст: "Без знаков припинания текст теряет выразительность"
например Заданный символ "т"

Результат работы программы: Кол-во слов начин. и заканчив на "т" равно 2

слова отделены только пробелами (одним или несколькими)


 
Сергей М. ©   (2006-11-30 16:44) [1]

И ?


 
Jeer ©   (2006-11-30 16:49) [2]


> Lipris ©   (30.11.06 16:43)


ТЗ поставлено правильно, осталось или написать тебе самому и пожаловаться на какие-либо проблемы в решении этой задачи или определиться с тем, сколько сможешь заплатить за реализацию этого ТЗ на любом языке программирования, поскольку тобой он явно не определен.


 
tesseract ©   (2006-11-30 16:50) [3]

for i:=1 to length(mystr) do
begin
if mystr[i]=" " then
  //думай сам
end;


 
AndreyRu   (2006-11-30 21:41) [4]

function RetCount(Ch : Char; Text : String; CaseSens : boolean) : integer;
var
  r : array of string;
  s, tmp : string;
  c : Char;
begin
 Result := 0;
 s := trim(Text);
 if not CaseSens then
   begin
     s := AnsiUpperCase(s);
     c := AnsiUpperCase(Ch)[1];
   end;
 if pos(" ", s) = 0 then
   begin
      if (s[1] <> C) or (s[length(s)] <> C) then
         exit;
   end;
 repeat
   tmp := copy(s, 1, pos(" ", s)-1);
   delete(s, 1, pos(" ", s));
   s := trim(s);
   if (tmp[1] = C) and (tmp[length(tmp)] = C) then
     inc(Result);
 until
   pos(" ", s) = 0;
 if (s[1] = C) or (s[length(s)] = C) then
   inc(Result);
end;


 
AndreyRu   (2006-11-30 21:43) [5]

Только r : array of string; - Лишнее.. )) Сорри..


 
Elen ©   (2006-12-01 07:46) [6]


> Lipris

Могу предложить код пошустрее чем у AndreyRu :

procedure TForm1.Edit1Change(Sender: TObject);
var s:string; n,i:integer;
begin
s:="Без знаков тприпинания текст теряет выразительность";
i:=1;n:=0;
while i<=length(s) do begin
if (i>1)and(s[i-1]=" ")and(copy(s,i,length(edit1.Text))=Edit1.Text) then
 inc(n);
inc(i);
end;
caption:=inttostr(n);
end;


В эдит вводится начало слова (первая буква) в капшине твое решенее.


 
Elen ©   (2006-12-01 07:57) [7]


> Lipris

Автор извини [6] не учтен заканчивающийся символ :
Вот так правильнее по сабжу :

procedure TForm1.Edit1Change(Sender: TObject);
var s:string; n,i,a:integer;
begin
s:="Без знаков тприпинаният текст теряет выразительность";
i:=1;n:=0;
while i<=length(s) do begin
if s[i]=" " then  begin a:=i; inc(i);
 while (s[i]<>" ")and(i<length(s)) do inc(i);
 if (s[i-1]=Edit1.Text)and(s[a+1]=Edit1.Text) then inc(n);
end else inc(i);
end;
caption:=inttostr(n);
end;


(Может быть на всякий случай надо будет пробелами строку входную дополнить на концах)


 
Думкин ©   (2006-12-01 08:20) [8]


> Elen ©   (01.12.06 07:57) [7]

А если строка заканчивается на 2 пробела? Или начинается не с пробела? Или...


 
Думкин ©   (2006-12-01 08:27) [9]

Снимаю в виду замечания:

> (Может быть на всякий случай надо будет пробелами строку
> входную дополнить на концах)

Правда, студентам помогать текстом - не надо. Декабрь. Сессия.


 
Elen ©   (2006-12-01 09:29) [10]


> Снимаю в виду замечания:

Ага я вот тоже с сессией так парюсЪЪ что и лишний раз [6] пишу... Крыша хлопает в ладоши... :)



Страницы: 1 вся ветка

Текущий архив: 2006.12.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.051 c
15-1164353049
Железяка
2006-11-24 10:24
2006.12.17
Закрыть доступ в сеть


15-1164646391
Орион
2006-11-27 19:53
2006.12.17
Иконки погоды


15-1164355623
passlight
2006-11-24 11:07
2006.12.17
К вопросу о бессмысленности выбора...


2-1164575622
Sat
2006-11-27 00:13
2006.12.17
проблеммы с классом


3-1160480822
Darkwing
2006-10-10 15:47
2006.12.17
Как постоянно отображать актуальную таблицу?