Показать сообщение отдельно
  #1  
Старый 26.05.2022, 21:42
NeField NeField вне форума
Прохожий
 
Регистрация: 24.05.2022
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
Злость Некорректная работа программы

Условие: Текст дан. Выведите в алфавитном порядке все глухие согласные буквы, не входящие только в одно слово;
Проблема: Должен выводить повторяющиеся буквы в алфавитном порядке, но выводит только одну букву, ближайшую к концу алфавита
Код:
procedure TForm1.Button1Click(Sender: TObject);
    const
    gl=['к','п','с','т','ф','х','ц','ч','ш','щ'];
    bk:string='кпстфхцчшщ';
    type mnoz=set of char;
    var  s,s1:string;
     m:array[1..100] of mnoz;
     mn,mn1:mnoz;
     n,i,j:byte;
     word: ShortString;
   begin
    s := LowerCase(Memo1.Text);
    s:=s+' ';
    n:=0;
    while pos(' ',s)>0 do
   begin
     s1:=copy(s,1,pos(' ',s)-1);
     n:=n+1;
     m[n]:=[];
    for j:=1 to length(s1) do
    if s1[j] in gl then m[n]:=m[n]+[s1[j]];
    delete(s,1,pos(' ',s));
   end;
  mn1:=[];
  for i:=1 to n do
   begin
    mn:=[];
    for j:=1 to n do
    if j<>i then mn:=mn+m[j];
    mn1:=mn1+(m[i]*mn);
    end;
   if mn1=[] then
   Memo2.Lines[0] := 'Букв, которые не входят только в одно слово, нет!';
    begin
     for i:=1 to length(bk) do
     if (bk[i] in mn1) then
     word := bk[i] + ' ';
    end;
    Memo2.Text := word;
 end;
Ответить с цитированием