diff options
Added todays programming practice
1 files changed, 99 insertions, 0 deletions
| -rw-r--r-- | Year 1/Programming introduction/Practice-22.11.21.cpp | 99 |
diff --git a/Year 1/Programming introduction/Practice-22.11.21.cpp b/Year 1/Programming introduction/Practice-22.11.21.cpp new file mode 100644 index 0000000..163db31 --- /dev/null +++ b/Year 1/Programming introduction/Practice-22.11.21.cpp @@ -0,0 +1,99 @@ +#include <iostream> + +using namespace std; + +/* Exercises: + * https://github.com/triffon/ip-2021-22/blob/master/practicum/6/week7/%D0%9F%D0%BE%D0%B1%D0%B8%D1%82%D0%BE%D0%B2%D0%B8%20%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8%20%D0%B8%20%D0%B1%D1%80%D0%BE%D0%B9%D0%BD%D0%B8%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B8.pdf + */ + +// Задача първа: +// Да се реализира функция getBitwiseRepresentation(int n); която извежда на +// стандартния изход двоичното представяне на числото. + +void getBitwiseRepresentation(int n) { + for (int i = 31; i >= 0; i--) { + cout << !!(n & (1 << i)); + } + cout << endl; +} + +void ex1() { + int n; + cin >> n; + + getBitwiseRepresentation(n); +} + +// Задача втора: +// Да се напише функция flipFourthBit(int n); която обръща четвъртия бит на +// числото n. + +int flipFourthBit(int n) { + return n ^ 8; +} + +void ex2() { + int n; + cin >> n; + + cout << flipFourthBit(n) << endl; +} + +// Задача трета: +// Напишете функция, която приема число и връща броя на нулите в двоичния му +// запис. + +int zeroesCount(int n) { + int count = 0; + for (int i = 31; i >= 0; i--) { + count += !(n & (1 << i)); + } + return count; +} + +void ex3() { + int n; + cin >> n; + + cout << zeroesCount(n) << endl; +} + +// Задача четвърта: +// Да се напише функция setBit(int n, int bitPosition, bool newBitValue); която +// променя бита на подадената позиция. + +int setBit(int n, int bitPosition, bool newBitValue) { + if (!(n >> bitPosition ^ newBitValue)) + return n; + return n ^ (1 << bitPosition); +} + +void ex4() { + int n, position, newBit; + cin >> n >> position >> newBit; + + cout << setBit(n, position, newBit) << endl; +} + +// Задача пета*: Имаме масив от цели числа с дължина n, където 0 ≤ n ≤ 30 +// Да се изведат всички подмножества на n. + +// void printSubSets(int nums[], int len) { +// for (int i = 1; i <= len; i <<= 1) { +// +// for (int j = 0; ) +// } +// } + +// Задача шеста: +// Да се напише функция която приема число в десетична бройна система и го +// превръща в число от произволна бройна система, подадена като аргумент на +// функцията. + +int tenToNBase(int num, int baseN) { + +} + +int main() { + ex4(); +} |
