ответ:
uses crt;
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;
begin
clrscr;
repeat
writeln('введите текст на языке, между словами пробелы: ');
readln(s);
if pos(' ',s)=0 then
writeln('в предложении только одно слово. повторите ввод.');
until pos(' ',s)> 0;
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]; {делаем множество из букв, котoрые входят в другие числа}
mn1: =mn1+(m[i]*mn); {добавляем буквы, которые есть и в других словах}
end;
if mn1=[] then writeln('букв, которые не входят только в одно слово, нет! ')
else
begin
writeln('буквы, которые не входят только в одно слово: ');
for i: =1 to length(bk) do{идем по алфавиту,
если буква есть в строке, но ее нет в котором по разу, выводим}
if (bk[i] in mn1) then write(bk[i],' ');
end;
readln
end.
объяснение:
преобразуем первый запрос по правилу раскрытия скобок в логических выражениях:
новосибирск & (красноярск & хабаровск | норильск) ⇔
⇔ новосибирск & красноярск & хабаровск | новосибирск & норильск.
заменим переменные так, чтобы в таблице осталось только две переменных. для этого сначала обозначим «новосибирск & красноярск & хабаровск» как «а», «новосибирск & норильск» как «в». преобразуем последний запрос в таблице, добавив ничего не изменяющее логическое умножение на «новосибирск»:
новосибирск & красноярск & хабаровск & норильск ⇔
⇔ новосибирск & красноярск & хабаровск & норильск & новосибирск ⇔
⇔ а & норильск & новосибирск ⇔ а & в.
занесём данные в таблицу в новых обозначениях:
запрос найдено страниц, тыс.
а|в =570
в =214
а & в =68
вычислим количество страниц по запросу а по формуле включений исключений:
na = n(a|b) − nb + n(a& b) ⇔ na = 570 −214 + 68 = 424.
ответ: 424.
Поделитесь своими знаниями, ответьте на вопрос:
Скорость чтения ученика 6 класса составляет приблизительно 160 символов в минуту.какой объем информации получит ученик , если он будет непрырывно читать 30 минут? сколько времени потребуется ученику, чтобы прочесть текстовый документ, занимающий половину трёхдюймовой дискеты(1, 44 мбайт)?
ск-ть 160 сим/минвремя 30 минвсего 160*30=4800сим3-х дюймовая дискета эт я так понимаю 3,5", тогда примерно 1,4 половина - это примерно 0,7 мб или 716,8 кб (1024*0,7) или 734003,2 байт (716,8*1024). округлим, получим 734003 байта. если считать, что стандартный символ - это 1 байт, то имеем 734003 символа. тогда 734003/160=4587,51875 мин. ~ 4588 мин.