<em><u>Вариант для тех, кто любит и понимает множества.</u></em>
const
cs='бвгджз';
var
s:string;
i:integer;
c:char;
p,csg:set of char;
begin
Writeln('Введите текст, разделяя слова запятыми, в конце поставьте точку');
Readln(s);
p:=[];
for i:=1 to Length(cs) do Include(csg,cs[i]); { инициализация множества }
s:=LowerCase(s); { приведение к нижнему регистру }
i:=1; c:=s[1];
while c<>'.' do begin
{ обработка нечетного слова }
while not (c in [',','.']) do begin
if (c in csg) and not (c in p) then Include(p,c);
i:=i+1;
c:=s[i]
end;
{ обработка четного слова }
if c<>'.' then begin i:=i+1; c:=s[i] end;
while not(c in [',','.']) do begin
if (c in csg) and (c in p) then Exclude(p,c);
i:=i+1;
c:=s[i]
end;
if c<>'.' then begin i:=i+1; c:=s[i] end
end;
s:='';
for i:=1 to Length(cs) do if cs[i] in p then Write(cs[i])
end.
<em><u>Тестовое решение:</u></em>
Введите текст, разделяя слова запятыми, в конце поставьте точку
Это,пример,текста,созданного,для,проверки,программы.
гд
<em><u>Вариант для тех, кто с множествами не дружит:</u></em>
const
cs='бвгджз';
var
s,p:string;
i,n:integer;
c:char;
begin
Writeln('Введите текст, разделяя слова запятыми, в конце поставьте точку');
Readln(s);
p:=''; n:=Length(cs);
s:=LowerCase(s); { приведение к нижнему регистру }
i:=1; c:=s[1];
while c<>'.' do begin
{ обработка нечетного слова }
while (c<>',') and (c<>'.') do begin
if (Pos(c,cs)>0) and (Pos(c,p)=0) then p:=p+c;
i:=i+1;
c:=s[i]
end;
{ обработка четного слова }
if c<>'.' then begin i:=i+1; c:=s[i] end;
while (c<>',') and (c<>'.') do begin
if (Pos(c,cs)>0) and (Pos(c,p)=1) then p[Pos(c,p)]:='*';
i:=i+1;
c:=s[i]
end;
if c<>'.' then begin i:=i+1; c:=s[i] end
end;
for i:=1 to Length(cs) do if Pos(cs[i],p)>0 then Write(cs[i])
end.
<em><u>Тестовое решение:</u></em>
Введите текст, разделяя слова запятыми, в конце поставьте точку
Данная,фраза,предлагается,для,тестирования.
вг
Определим для алфавита СС. О = 0 ... Т = 3. СС с основанием 4.
теперь можно из слов ТОПОР и РОПОТ определить третичные числа, а затем перевести их в СС с основанием 10
ТОПОР = 30102(4) = 786(10)
РОПОТ = 20103(4) = 531(10)
теперь вычитаем из большего меньшее и включаем правую границу
786 - 531 + 1 = 256
Ответ: 256
решать "в лоб" такое выражение не стоит, так как это трудоёмко, поэтому для начала упростим
AC v -(A)B v -A-C (дистрибутивность) ДНФ
-A-C v AC v BC
теперь найдём оценочно те параметры при которых хотя бы в одном случае получим в результате 1(так как или достаточно по одному набору
00 v ... v ... = 1
... v 11 v ... = 1
... v ... v 11 = 1
видим зависимость по параметру C так как если !С то выражение = 0
кроме варианта 00(-A-C) либо 11(AC), тогда первые 2 либо A, либо C
отсюда 3 столбец - это B
теперь определяем чередования по таблице, зная, где B
в строке (0, 1. 1) определяем подстановками, что переменные расположены в порядке CAB. для проверки дойдём по таблице до конца и, не находя неточных результатов утверждаем, что последовательность верна.
Ответ: CAB
<span>Да, это он, Литий-ионный аккумулятор</span>