|
#1
|
|||
|
|||
поикс слова
Код:
{найти в тексте слова, которые начинаются и окончиваются на одну букву и посчитать их количество. Например-дано:акула, машина, торт, акула ответ:акула-2, торт-1} procedure TForm1.Button1Click(Sender: TObject); var BykvaEnd,BykvaHome:char; slovo:string; count:array[1..100] of integer; poisk,k,g:integer; begin memo1.Color:=clred; memo2.Color:=clblue; memo1.Font.Color:=clwhite; memo2.Font.Color:=clyellow; slovo:=memo1.Lines.Text; k:=1; BykvaHome:=slovo[1]; BykvaEnd:=slovo[length(slovo)]; if BykvaEnd=' ' then BykvaEnd:=slovo[length(slovo)-1] {пропускаю пробелы, иначе ищу слово} else if BykvaHome=BykvaEnd then begin poisk:=pos(slovo,memo1.Lines.Text);{ищу повтор слова} count[k]:=count[k]+1 end else begin k:=k+1; slovo:=memo1.lines.Text end; for g=1 to k do memo2.Lines.Add(slovo+StrToint(count[g])) end;{procedure} Последний раз редактировалось nav, 28.03.2010 в 13:18. |
#2
|
|||
|
|||
Держи)
Для работы алгоритма, требуется мемо, листбокс и кнопка. Код:
procedure TForm1.Button1Click(Sender: TObject); var cnts:array of integer; i,n:integer; w:String; begin w:=''; SetLength(cnts,0); with ListBox1.Items do begin ListBox1.Clear; BeginUpdate; for i:=1 to Length(Memo1.Text) do if Memo1.Text[i] in [' ',',','.',#10,#13] then begin if (Length(w)>1) and (w[1]=w[Length(w)]) then begin n:=IndexOf(w); if n <> -1 then cnts[n]:=cnts[n]+1 else begin Add(w); SetLength(cnts,Length(cnts)+1); cnts[high(cnts)]:=1; end; end; w:=''; end else w:=w+Memo1.Text[i]; for i:=Low(cnts) to high(cnts) do Strings[i]:=Strings[i]+' : '+IntToStr(cnts[i]); SetLength(cnts,0); EndUpdate; end; end; |
#3
|
||||
|
||||
Можно несколько попроще, если текст разбить по словам и слова запихать в TStringList, а там уже можно используя сортировку это сделать легко.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
|||
|
|||
Цитата:
P.S.А круто я тему написал: "поикс"? Буквы перепутал! |
#5
|
|||
|
|||
У меня он выдавал, как ты просил, смотри в чем ошибся..
|
#6
|
|||
|
|||
Цитата:
|
#7
|
||||
|
||||
Цитата:
Делаю программы за очки репутации! |