глухие согласные
Добавлено: 27 фев 2006, 00:14
Дан текст на русском языке. Нужно вывести в Memo, все глухие согласные которые не входят в каждое слово в тексте, т.е. если например 1 слово в тексте, то для него все глухие, если 2 слова, то для каждого из них все глухие и т.д.
У меня сделан пример, но в большинстве случаев он неправильно работает, если кто знает как, исправьте мой код пожайлуста.
procedure TForm1.Button1Click(Sender: TObject);
const
word_delim: set of char = [' ',':',',','.','!',';','?']; //разделители слов
a : array[0..9] of char = ('к','п','с','т','ф','х','ц','ч','ш','щ');
var
i,j:integer;
ai_count,wordlen:integer;
begin
for i := 0 to 9 do begin
ai_count:=0; wordlen:=0;
for j:= 1 to Length(Edit1.Text) do begin
if a=AnsiLowerCase(Edit1.Text[j]) then inc(ai_count);
if Edit1.Text[j] in word_delim then begin
if (ai_count = 0) and (wordlen>0) then begin
Memo1.Lines.Add(a);
ai_count:=0; wordlen:=0;
Continue;
end;
wordlen:=0;
end else inc(wordlen);
end;
end;
end;
У меня сделан пример, но в большинстве случаев он неправильно работает, если кто знает как, исправьте мой код пожайлуста.
procedure TForm1.Button1Click(Sender: TObject);
const
word_delim: set of char = [' ',':',',','.','!',';','?']; //разделители слов
a : array[0..9] of char = ('к','п','с','т','ф','х','ц','ч','ш','щ');
var
i,j:integer;
ai_count,wordlen:integer;
begin
for i := 0 to 9 do begin
ai_count:=0; wordlen:=0;
for j:= 1 to Length(Edit1.Text) do begin
if a=AnsiLowerCase(Edit1.Text[j]) then inc(ai_count);
if Edit1.Text[j] in word_delim then begin
if (ai_count = 0) and (wordlen>0) then begin
Memo1.Lines.Add(a);
ai_count:=0; wordlen:=0;
Continue;
end;
wordlen:=0;
end else inc(wordlen);
end;
end;
end;