Да се състави програма (C++), чрез която се доказва закона за преместване за булевата функция (A ^ ( B v A)) = A чрез проверка на всеки терм от таблицата за истинност.
Използвани означения:
! - отрицание, логическа функция Not
v - дизюнкция, логическа функция Or
^ - конюнкция, логическа функция And
(свободен достъп)
Да се състави програма (C++), чрез която се доказва закона за преместване за булевата функция: A v (B ^ A) = A чрез проверка на всеки терм от таблицата за истинност.
Да се състави програма (C++), чрез която се доказва закона за преместване за булевата функция (A ^ B v !A v C) = (A v C) ^ (!A v B) чрез проверка на всеки терм от таблицата за истинност.
Да се състави програма (C++), чрез която се доказва закона за преместване за булевата функция (A v ! B) ^ (!A v C) = (A ^ C) v (!B ^ !A) чрез проверка на всеки терм от таблицата за истинност.
Да се състави програма (C++), чрез която се доказват двата закона на Де Морган: ! (A v B) =(!A ^ !B), както и !(A ^ B) = !A v !B чрез проверка на всеки терм от таблицата за истинност.
Да се състави програма (C++), чрез която се доказват двете теореми за близост, чрез проверка на всеки терм от таблицата за истинност.
теорема за близост: A ^ B v A ^ !B = A
теорема за близост (A v B) ^ (A v !B) = A
Да се състави програма (C++), чрез която се доказват двете теореми за съгласието, чрез проверка на всеки терм от таблицата за истинност.
теорема за съгласието: A^B v !A ^ C v B ^ C = A ^ B v !A ^ C
теорема за съгласието: (A v B) ^ (!A v C) ^ (A v C) = (A v B) ^ (A v C)
Да се състави програма (C++), чрез която се доказват двете теореми за опростяването, чрез проверка на всеки терм от таблицата за истинност.
теорема за опростяване: A v !A ^ B = A v B
теорема за опростяване: A ^ (!A v B) = A ^ B
Да се състави програма (C++) чрез която се изчисляват и извеждат стойностите на следните булеви функции с две променливи:
константа 0, конюнкция, променлива X, променлива Y, сума по модул 2 (изключваща дизюнкция), дизюнкция, NOR - операция на Пирс, логическа равнозначност, инверсия на Y, инверсия на X, NAND - Операция на Шефер, константа 1.
Ако A е променлива от булев тип, то операциите конюнкция, дизюнкци и отрицание биха се подчинявали на следните закони:
идемпотентни закони:
A ^ A = A, като и A v A = A
закони за неутрален елемент:
A ^ 1 = A - 1 е неутрален елемент по отношение на операцията конюнкция
A v 0 = A - 0 е неутрален елемент по отношение на операцията дизюнкция
закони за доминирането:
A v 1 = 1
A ^ 0 = 0
закон на противоречие: A ^ !A = 0
закон за изключеното трето: A v !A = 1
закон за двойното отрицание /двойното допълнение: !(!A) = A
Да се състави програма (C++) чрез която се изчисляват и извеждат стойностите на булевите фунции при използване на определените закони.
Да се състави програма (C+), чрез която се въвежда цяло число N [10...10010]. В програмата да са реализирани следните булеви функции:
булева фукция за определяне вида на последния бит – проверка за четност;
булева фукция за извеждане резултата от проверка дали N е точна степен на 2;
булева фукция за извеждане стойност за степен на 2 съобразно номера на последия ляв бит със стойност 1;
булева фукция за инвертиране (обръщане) стойността на всеки бит на въведеното цяло число;
чрез булева функция xor да се разменят стойностите на две естествени числа;
чрез функция да се изведе броя битове на въведеното цяло число;
чрез функция да се изведе броя десни битове на въведеното цяло число - първия бит отдясно със стойност 1;
чрез функция да се изведе най-голямото цяло число, което може да се добави към въведеното.
Пример: N=48 Изход:
четно,
не е степен на 2,
числото съдържа 6 бита
16 - последния ляв бит 1
-49 - обърнати всички битове на N
брой десни битове в числото 6;
2147483599 – максимално число за добавяне
Да се състави програма, чрез която се въвежда естествено число N [2..1001]. Да се въведат N броя цели числа от интервала [-1001..1001].
В програмата да се реализира булева функция, съдържаща само побитови операции, без оператор if. Ако е въведено число 0, или 1 булевата функция да връща резултат 1, в останалите случаи 0.
Като краен резултат програмата да изведе число от двоична бройна система, чийто цифри са резултата от въведените числа.
Пример: N=6 0,-1,1,5,0,123 Изход: 101010
Да се състави програма (C++), чрез която се доказват верността на булевата функция за двата варианта на дистрибутивния закон в булевата алгебра, чрез проверка на всеки терм от таблицата за истинност.
A v (B ^ C) = (A v B) ^ (A v C)
A ^ (B v C) = (A ^ B) v (A ^ C)
Да се състави програма (C++), чрез която се доказват верността на булевата функция за сума по модул 2 (Xor) като се използва умножение и отрицание на двете променливи. Доказателството да се осъществи чрез проверка на всеки терм от таблицата за истинност на булевата функция.
A Xor B = (A ^ !B) v (!A ^ B)
Да се състави програма (C++), чрез която се извежда k-тия бит на въведено естествено число като стойност на булева функция. Да се използват побитови оператори.
Пример: 10, 3 Изход: False
Да се състави програма (C++), чрез която чрез функция да инвертира десните k бита на въведено естествено число. Да се използват побитови оператори.
Пример: 17, 3 Изход: 22
Да се състави програма, чрез която се въвеждат три естествени числа A, B, C.
Програмата да съдържа булева функция, проверяваща дали въведените числа са подредени във възходящ ред.
Пример: 7,18,33 Изход: True
Да се състави програма, чрез която се въвежда естествено число N от интервала [1..10]. Програмата да изчислява най-малкото двоично число съдържащо в записа си N броя единици. Чрез функция от булев тип да се проверява дали изчисленото число е четно или нечетно. Използвайте побитови операции. Пример: 3 Изход: 7, False
Да се докаже тъждество (!A ^ C) v (!A ^ !B) v B = !A v B. Да се състави програма (C++), чрез която се доказват верността му, като се осъществи проверка на всеки терм от таблицата за истинност на булевата функция.