write(' C={'); for i:=1 to k do write(pC[i]:3); write('}');
pk:=k;
readln;
end;
Procedure RIZ(Var pa:ar;Var pb:ar;Var pc:ar;Var pn1, pn2,pk:integer); {вхід:A,B; вихід C}{програма для обчислення різниці множин}
{const n=5;m=6;}
var
i,j,k,l:integer;
begin
i:=1;j:=1; k:=0;
repeat
if pa[i]<pb[j] then begin k:=k+1; pC[K]:=pa[i]; i:=i+1; end
else begin if pa[i]=pb[j] then
begin i:=i+1; j:=j+1; end
else j:=j+1; end;
until (i>pn1)or(j>pn2);
if (i<pn1)and(j>pn2) then
begin for l:=i to pn1 do
begin k:=k+1; pc[k]:=pa[l]; end;
end;
if k=0 then
begin
write(' A={'); for i:=1 to pn1 do write(pa[i]:3); writeln('}');
write(' B={'); for i:=1 to pn2 do write(pb[i]:3); writeln('}');
write(' C={'); for i:=1 to k do write(pc[i]:3); writeln('}');
end
else
begin
write(' A={'); for i:=1 to pn1 do write(pa[i]:3); writeln('}');
write(' B={'); for i:=1 to pn2 do write(pb[i]:3); writeln('}');
write(' C={'); for i:=1 to k do write(pc[i]:3); writeln('}');
end;
pk:=k;
readln;
readln;
end; Procedure PERET(Var pa:ar;Var pb:ar;Var pc:ar;Var pn1, pn2,pk:integer); {вхід:A,B; вихід C}{програма для перетину множин}
{const n=10; m=7;}
var
i,j,k,l:integer;
begin
i:=1;j:=1;k:=0;
repeat
if pA[i]<pB[j] then i:=i+1;
if pA[i]>pB[j] then j:=j+1;
if pA[i]=pB[j] then
begin k:=k+1; pC[k]:=pA[i]; i:=i+1;j:=j+1;end;
until (i>pn1) or (j>pn2);
if k = 0 then
begin
write(' A={'); for i:=1 to pn1 do write(pa[i]:3); writeln('}');
write(' B={'); for i:=1 to pn2 do write(pB[i]:3); writeln('}');
write(' C={'); for i:=1 to k do write(pC[i]:3); write('}');
end
else
begin
write(' A={'); for i:=1 to pn1 do write(pa[i]:3); writeln('}');
write(' B={'); for i:=1 to pn2 do write(pB[i]:3); writeln('}');
write(' C={'); for i:=1 to k do write(pC[i]:3); write('}');
end;
writeln;
pk:=k;
readln;
end;
Begin{тіло програми}
k:=15;
For i:=1 to k do U[i]:=i;
Write ('Задайте множину A та ii границю');
write(' na=');REadln (na);
For i:=1 to na do begin write ('A[',i,']= '); Readln(a[i]); end;
Write ('Задайте множину В та ii границю');
write(' nb='); Readln (nb);
For i:=1 to nb do begin write ('B[',i,']= '); Readln(b[i]); end;
Write ('Задайте множину С та ii границю');
write(' nc='); Readln (nc);
For i:=1 to nc do begin write ('C[',i,']= '); Readln(C[i]); end;
Write ('Задайте множинуDта ii границю');
write(' nd='); Readln (nd);
For i:=1 to nd do begin write ('D[',i,']= '); Readln(D[i]); end;
peret(A,B,bk1,na,nb,nk1);
riz(U,bk1,bk2,k,nk1,nk2);
riz(U,C,bk3,k,nc,nk3);
riz(U,D,bk4,k,nD,nk4);
peret(bk3,bk4,bk5,nk3,nk4,nk5);
riz(U,bk5,bk6,k,nk5,nk6);
obed(bk2,bk6,M,nk2,nk6,nm);
end.
Результати:
Вхідні данні:
A={2,3,5,8}, na=4
B={1,2,5,11}, nb=4
C={12,14,15}, nc=3
D={3,9,10,11,12}, nd=5
Отримані данні:
М1= {2,5}
М2= {1,3,4,6,7,8,9,10,11,12,13,14,15}
М3= {1,2,3,4,5,6,7,8,9,10,11,13}
М4={1,2,4,5,6,7,8,13,14,15}
М5= {1,2,4,5,6,7,8,13}
М6={3,9,10,11,12,14,15}
3 Доведення теоретико-математичних тотожностей і тверджень
Завдання:Довести тотожність:
;Доведення:
1)
2)
3)
;4.Побудова таблиці істинності висловлень
4.1. Теоретичні відомості
Під висловленням розуміють пропозицію людської мови, про яку можна сказати, істинна вона або хибна. Пізніше стане ясно, чому тут говориться не про визначення, а про поняття висловлення. А надалі в нас з'явиться можливість дати точне визначення висловлення. Висловлення позначаються великими буквами латинського алфавіту, можливо з індексами:
. Якщо висловлення А є істинним то пишуть А=1, інакше пишуть А=0.Задається дія заперечення за допомогою таблиці істинності:
0 | 1 |
1 | 0 |
Кон’юнкція задається за допомогою таблиці істинності:
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Диз'юнкція задається за допомогою таблиці істинності:
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Еквівалентність задається таблицею істинності:
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Задається імплікація таблицею істинності:
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 1 |
Завдання:Побудуйте таблиці істинності для висловлювання
;Відзначимо, відповідно до пріоритетів виконання операцій
, кроки, за якими буде побудована таблиця істинності висловлень:
B | D | E | f1 | f2 | f3 | f4 | f5 | f6 | f7 | f8 | f9 | f10 | f11 | f12 | F |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 |
5.Побудова диз'юнктивної нормальної форми (ДНФ)
5.1. Теоретичні відомості
Визначення. Нехай F – висловлення і
.Визначення.
у тому і тільки в тому випадку, коли .Визначення. Кон’юнкція логічних змінних або їх заперечень називається елементарною кон’юнкцією. Загальний вигляд елементарної кон’юнкції
.Теорема. Будь-яке висловлення рівносильне диз'юнктивній нормальній формі (говорять ще так: “Будь-яке висловлення зводиться до ДНФ”).
Основні логічні тотожності:
1)
– ідемпотентність диз'юнкції;2)
– ідемпотентність кон’юнкції;3)
– комутативність диз'юнкції;4)
– комутативність кон’юнкції;5)
– асоціативність диз'юнкції;6)
– асоціативність кон’юнкції;7)
– дистрибутивність кон’юнкції щодо диз'юнкції;8)
– дистрибутивність диз'юнкції щодо кон’юнкції.