Дан текст из строчных латинских букв,за которым следует точка.Построить множество,состоящее из всех букв,входящих в текст по одному разу — Pascal(Паскаль)

uses crt;
const bk=['a'..'z'];{множество допустимых символов до точки}
var s:string;{строка}
    m:set of char;{множество}
    n,i,k,j:byte;{длина строки и счетчики циклов}
    c:char;{символ}
begin
clrscr;
repeat
writeln('Vvedite text iz strochnyh latinskih bukv, v konce tochka:');
readln(s);{читаем строку}
n:=length(s);{ее длина=количество символов}
k:=0;
for i:=1 to n-1  do
if not(s[i] in bk) then{если в строке до точки есть недопустимые символы}
 begin
  k:=1;{фиксируем}
  break;{дальше не ищем}
 end;
if (k=1)or(s[n]<>'.') then writeln('Neverno vvedena stroka. Povtorite vvod.');
{если есть недопустимый символ или в конце не точка, сообщаем}
until (k=0)and(s[n]='.');{если все нормально, заканчиваем ввод строки}
m:=[];{создаем пустое множество символов}
for i:=1 to n-1  do{смотрим строку до точки}
 begin
  k:=0;{счетчик одинаковых символов}
  for j:=1 to n-1 do{смотрим "клон" скроки}
  if s[j]=s[i] then k:=k+1;{если симол совпадает, считаем}
  if k=1 then include(m,s[i]);{если только 1 раз, вставляем в множество}
 end;
writeln('Mnozesto:');
for c:='a' to 'z' do
if c in m then write(c,' ');
{если очередная буква есть в множестве, выводим ее через пробел}
readln
end.

Leave a Comment

− 2 = 5