Website Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commitf05726d51dd6c41c23c337c2d4b0324ad231dbc8 (patch)
Author
 Angeld55 <angel_dimitriev@abv.bg>
2020-11-13 20:45:46 +0200
Committer
 Angeld55 <angel_dimitriev@abv.bg>
2020-11-13 20:45:46 +0200
Filesce8ee1c313676689342299c4e96c3d199d00370e
Introduction_to_programming_FMI-f05726d51dd6c41c23c337c2d4b0324ad231dbc8.tar
Introduction_to_programming_FMI-f05726d51dd6c41c23c337c2d4b0324ad231dbc8.tar.gz
Introduction_to_programming_FMI-f05726d51dd6c41c23c337c2d4b0324ad231dbc8.zip
Parent8f4b6b75fd57a34d33bb9dd17af305898a8da81e (diff)
added examples sem 5
diff --git a/README.md b/README.md
index cb3c1de..6e65e4e 100644
--- a/README.md
+++ b/README.md
@@ -3,5 +3,6 @@
- **Тема 1 (09.10.2020) :** Променливи. Типове променливи. Оператори. Преобразуване между типове.
- **Тема 2 (16.10.2020) :** Приоритет на операторите. ��оциативно�т. У�ловни провеки (if, switch)
- - **Тема 3 (23.10.2020) :** Жизнен цикъл на променливите. Оператори за цикъл(while, for). Оператор break. Задачи
+ - **Тема 3 (23.10.2020 и 28.10.2020) :** Жизнен цикъл на променливите. Оператори за цикъл(while, for). Оператор break. Задачи.
- **Тема 4 (04.11.2020) :** Бройни �и�теми. Побитови операции.
+ - **Тема 5 (13.11.2020) :** Задачи за цикли и побитови операции. \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/01. Between100and200.cpp b/Sem. 3/Tasks and Solutions/01. Between100and200.cpp
new file mode 100644
index 0000000..0817bcc
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/01. Between100and200.cpp
@@ -0,0 +1,15 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ unsigned int n;
+ cin >> n;
+
+ if (n < 100)
+ cout << "Less than 100" << endl;
+ else if (n <= 200)
+ cout << "Between 100 and 200" << endl;
+ else
+ cout << "More than 200" << endl;
+} \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/02. Speed check.cpp b/Sem. 3/Tasks and Solutions/02. Speed check.cpp
new file mode 100644
index 0000000..4660382
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/02. Speed check.cpp
@@ -0,0 +1,19 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ double speed;
+ cin >> speed;
+
+ if (speed <= 10)
+ cout << "Slow" << endl;
+ else if (speed < 50)
+ cout << "Average" << endl;
+ else if (speed < 150)
+ cout << "Fast" << endl;
+ else if (speed < 1000)
+ cout << "Ultra fast" << endl;
+ else
+ cout << "Extremely fast" << endl;
+} \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/03. Figures.cpp b/Sem. 3/Tasks and Solutions/03. Figures.cpp
new file mode 100644
index 0000000..170c403
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/03. Figures.cpp
@@ -0,0 +1,28 @@
+#include <iostream>
+using namespace std;
+
+const double PI = 3.14;
+int main()
+{
+ char figure;
+ cin >> figure;
+
+ if (figure == 's')
+ {
+ double side;
+ cin >> side;
+ cout << side * side << endl;
+ }
+ else if (figure == 'r')
+ {
+ double sideA, sideB;
+ cin >> sideA >> sideB;
+ cout << sideA * sideB << endl;
+ }
+ else if (figure == 'c')
+ {
+ double R;
+ cin >> R;
+ cout << PI * R * R << endl;
+ }
+} \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/04. Time + 15.cpp b/Sem. 3/Tasks and Solutions/04. Time + 15.cpp
new file mode 100644
index 0000000..aee3118
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/04. Time + 15.cpp
@@ -0,0 +1,21 @@
+#include <iostream>
+using namespace std;
+
+const double PI = 3.14;
+int main()
+{
+ int hours, mins;
+ cin >> hours >> mins;
+
+ (mins += 15) %= 60;
+
+ if (mins < 15)
+ (hours+=1)%=24;
+
+ if (hours <= 9)
+ cout << 0;
+ cout << hours << ":";
+ if (mins <= 9)
+ cout << 0;
+ cout << mins << endl;
+} \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/05. Chainsaw.cpp b/Sem. 3/Tasks and Solutions/05. Chainsaw.cpp
new file mode 100644
index 0000000..68940e0
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/05. Chainsaw.cpp
@@ -0,0 +1,16 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ int a, b, c, d, e;
+ cin >> a >> b >> c >> d >> e;
+
+ if ((a <= b && b >= c && c <= d && d >= e)
+ || (a >= b && b <= c && c >= d && d <= e))
+ {
+ cout << "Yes";
+ }
+ else
+ cout << "No";
+} \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/06. DivBy3.cpp b/Sem. 3/Tasks and Solutions/06. DivBy3.cpp
new file mode 100644
index 0000000..044aee9
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/06. DivBy3.cpp
@@ -0,0 +1,11 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ int n;
+ cin >> n;
+
+ for (int i = 3; i <= n; i+=3)
+ cout << i << endl;
+} \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/07. ContainsDigit.cpp b/Sem. 3/Tasks and Solutions/07. ContainsDigit.cpp
new file mode 100644
index 0000000..4ae1131
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/07. ContainsDigit.cpp
@@ -0,0 +1,20 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ int n, searchedDigit;
+ cin >> n >> searchedDigit;
+
+ bool found = false;
+ while (n != 0)
+ {
+ int lastDigit = n % 10;
+ if (searchedDigit == lastDigit)
+ {
+ found = true;
+ break;
+ }
+ n /= 10;
+ }
+} \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/08. DuplicateDigits.cpp b/Sem. 3/Tasks and Solutions/08. DuplicateDigits.cpp
new file mode 100644
index 0000000..0fa5946
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/08. DuplicateDigits.cpp
@@ -0,0 +1,93 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ bool found0, found1, found2, found3, found4, found5, found6, found7, found8, found9;
+ found0 = found1 = found2 = found3 = found4 = found5 = found6 = found7 = found8 = found9 = false;
+
+ int n;
+ cin >> n;
+
+ bool foundDuplicate = false;
+ while (!foundDuplicate && n != 0)
+ {
+ int lastDigit = n % 10;
+ switch (lastDigit)
+ {
+ case 0:
+ if (found0)
+ {
+ foundDuplicate = true;
+
+ }
+ found0 = true;
+ break;
+ case 1:
+ if (found1)
+ {
+ foundDuplicate = true;
+ }
+ found1 = true;
+ break;
+ case 2:
+ if (found2)
+ {
+ foundDuplicate = true;
+ }
+ found2 = true;
+ break;
+ case 3:
+ if (found3)
+ {
+ foundDuplicate = true;
+ }
+ found3 = true;
+ break;
+ case 4:
+ if (found4)
+ {
+ foundDuplicate = true;
+ }
+ found4 = true;
+ break;
+ case 5:
+ if (found5)
+ {
+ foundDuplicate = true;
+ }
+ found5 = true;
+ break;
+ case 6:
+ if (found6)
+ {
+ foundDuplicate = true;
+ }
+ found6 = true;
+ break;
+ case 7:
+ if (found7)
+ {
+ foundDuplicate = true;
+ }
+ found7 = true;
+ break;
+ case 8:
+ if (found8)
+ {
+ foundDuplicate = true;
+ }
+ found8 = true;
+ case 9:
+ if (found9)
+ {
+ foundDuplicate = true;
+ }
+ found9 = true;
+ break;
+ }
+ n /= 10;
+ }
+
+ cout << foundDuplicate;
+} \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/09. SumFromKtoN.cpp b/Sem. 3/Tasks and Solutions/09. SumFromKtoN.cpp
new file mode 100644
index 0000000..aea318a
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/09. SumFromKtoN.cpp
@@ -0,0 +1,18 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ int n, k;
+ cin >> k >> n;
+
+ int sum = 0;
+ for (int i = k; i <= n; i++)
+ sum += i;
+
+ cout << sum << endl;
+
+ //or use the formula
+
+ cout << (n*(n + 1)) / 2 - ((k - 1)*k) / 2 << endl;
+} \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/10. Pyramid.cpp b/Sem. 3/Tasks and Solutions/10. Pyramid.cpp
new file mode 100644
index 0000000..5d9e2a9
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/10. Pyramid.cpp
@@ -0,0 +1,14 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ int n;
+ cin >> n;
+ for (int i = 1; i <= n; i++)
+ {
+ for (int j = 1; j <= i; j++)
+ cout << "$";
+ cout << endl;
+ }
+} \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/11. Clock.cpp b/Sem. 3/Tasks and Solutions/11. Clock.cpp
new file mode 100644
index 0000000..6386ca0
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/11. Clock.cpp
@@ -0,0 +1,18 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ for (int hour = 0; hour <= 23; hour++)
+ {
+ for (int min = 0; min <= 59; min++)
+ {
+ if (hour < 10)
+ cout << 0;
+ cout << hour << ":";
+ if (min < 10)
+ cout << 0;
+ cout << min << endl;
+ }
+ }
+} \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/12. ClockWithStart.cpp b/Sem. 3/Tasks and Solutions/12. ClockWithStart.cpp
new file mode 100644
index 0000000..1b996e1
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/12. ClockWithStart.cpp
@@ -0,0 +1,31 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ int h, m;
+ cin >> h >> m;
+
+ for (int min = m + 1; min <= 59; min++)
+ {
+ if (h < 10)
+ cout << 0;
+ cout << h << ":";
+ if (min < 10)
+ cout << 0;
+ cout << min << endl;
+ }
+
+ for (int hour = h+1; hour <= 23; hour++)
+ {
+ for (int min = 0; min <= 59; min++)
+ {
+ if (hour < 10)
+ cout << 0;
+ cout << hour << ":";
+ if (min < 10)
+ cout << 0;
+ cout << min << endl;
+ }
+ }
+} \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/13. ClockWithStartAndEnd.cpp b/Sem. 3/Tasks and Solutions/13. ClockWithStartAndEnd.cpp
new file mode 100644
index 0000000..af39745
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/13. ClockWithStartAndEnd.cpp
@@ -0,0 +1,41 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ int hStart, mStart, hEnd, mEnd;
+ cin >> hStart >> mStart >> hEnd >> mEnd;
+
+ for (int min = mStart + 1; min <= 59; min++)
+ {
+ if (hStart < 10)
+ cout << 0;
+ cout << hStart << ":";
+ if (min < 10)
+ cout << 0;
+ cout << min << endl;
+ }
+
+ for (int hour = hStart+1; hour <= hEnd-1; hour++)
+ {
+ for (int min = 0; min <= 59; min++)
+ {
+ if (hour < 10)
+ cout << 0;
+ cout << hour << ":";
+ if (min < 10)
+ cout << 0;
+ cout << min << endl;
+ }
+ }
+
+ for (int min = 0; min < mEnd; min++)
+ {
+ if (hEnd < 10)
+ cout << 0;
+ cout << hEnd << ":";
+ if (min < 10)
+ cout << 0;
+ cout << min << endl;
+ }
+} \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/14. Frame.cpp b/Sem. 3/Tasks and Solutions/14. Frame.cpp
new file mode 100644
index 0000000..92de3ca
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/14. Frame.cpp
@@ -0,0 +1,30 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ int n;
+ cin >> n;
+
+ //Ãîðíà ðàìêà
+ cout << '+';
+ for (int i = 0; i < n - 2; i++)
+ cout << '-';
+ cout << '+' << endl;
+
+
+ //Ñðåäà
+ for (int j = 0; j < n - 2; j++)
+ {
+ cout << '|';
+ for (int i = 0; i < n - 2; i++)
+ cout << '-';
+ cout << '|' << endl;
+ }
+
+ //Äîëíà ðàìêà
+ cout << '+';
+ for (int i = 0; i < n - 2; i++)
+ cout << '-';
+ cout << '+' << endl;
+} \ No newline at end of file
diff --git a/Sem. 3/Tasks and Solutions/tasks.pdf b/Sem. 3/Tasks and Solutions/tasks.pdf
new file mode 100644
index 0000000..6c2ad50
--- /dev/null
+++ b/Sem. 3/Tasks and Solutions/tasks.pdf
Binary files differ
diff --git a/Sem. 4/README.md b/Sem. 4/README.md
index caa3f90..5357d01 100644
--- a/Sem. 4/README.md
+++ b/Sem. 4/README.md
@@ -120,10 +120,10 @@ sizeof(int) - > 4 размер в байтове. Байт = 8 бита.
Побитови операции(задачи):
-Задача 1: Да �е провери дали дадено чи�ло е четно или нечетно.
+**Задача 1**: Да �е провери дали дадено чи�ло е четно или нечетно.
-Задача 2: Въвежда �е чи�лa n и k и да �е определи �тойно�тта на k-ти� бит.(Вход: 10, 2 (000..001010) Изход: 0)
+**Задача 2**: Въвежда �е чи�лa n и k и да �е определи �тойно�тта на k-ти� бит.(Вход: 10, 2 (000..001010) Изход: 0)
-Задача 3: Въвежда �е чи�ло n. Да �е пре�метне 2^n.
+**Задача 3**: Въвежда �е чи�ло n. Да �е пре�метне 2^n.
-Задача 4: Въвежда �е чи�ло n. Да �е пре�метне чи�лото закодирано в предпо�ледните 3 бита.
+**Задача 4**: Въвежда �е чи�ло n. Да �е пре�метне чи�лото закодирано в предпо�ледните 3 бита.
diff --git a/Sem. 5/README.md b/Sem. 5/README.md
new file mode 100644
index 0000000..81e738e
--- /dev/null
+++ b/Sem. 5/README.md
@@ -0,0 +1,15 @@
+**Çàäà÷à 1:** Âúâåæäà ñå íåîòðèöàòåëíî ÷èñëî n. Äà ñå ïðîâåðè äàëè n å ïðîñòî.
+
+**Çàäà÷à 2:** Âúâåæäà ñå íåîòðèöàòåëíî ÷èñëî n. Äà ñå îòïå÷àòà íåãîâîòî ðàçáèâàíå íà ïðîñòè ìíîæèòåëè.
+Âõîä: 288 Èçõîä: 2^5 * 3^2
+
+**Çàäà÷à 3:** Âúâåæäà ñå íåîòðèöàòåëíî ÷èñëî n. Ïðåñìåòíåòå n + 1, èçïîëçâàéêè ñàìî öèêëè è ïîáèòîâè îïåðàöèè.
+
+**Çàäà÷à 4:** Âúâåæäàò ñå íåîòðèöàòåëíè ÷èñëà n è k. Ïðåñìåòíåòå n + k, èçïîëçâàéêè ñàìî öèêëè è ïîáèòîâè îïåðàöèè.**
+
+**Çàäà÷à 5:** Âúâåæäàò ñå íåîòðèöàòåëíè ÷èñëà n è k. Ïðåñìåòíåòå n * k, èçïîëçâàéêè ñàìî öèêëè è ïîáèòîâè îïåðàöèè.
+
+**Çàäà÷à 6:** Âñÿêî åñòåñòâåíî ÷èñëî ñå ïðåäñòàâÿ ïî åäèíñòâåí íà÷èí êàòî ñóìà íà **ðàçëè÷íè**(íå ñå ïîâòàðÿò) ñòåïåíè íà äâîéêàòà.
+Âúâåæäà ñå åñòåñòâåíî ÷èñëî n. Îòïå÷àòàéòå òîâà ðàçáèâàíå íà n.
+Âõîä: 26, Èçõîä: 2^1 + 2^3 + 2^4.
+Âõîä: 15, Èçõîä: 2^0 + 2^1 + 2^2 + 2^3 \ No newline at end of file
diff --git a/Sem. 5/Task 1.cpp b/Sem. 5/Task 1.cpp
new file mode 100644
index 0000000..20ca708
--- /dev/null
+++ b/Sem. 5/Task 1.cpp
@@ -0,0 +1,58 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ unsigned int n;
+ cin >> n;
+
+ //Ðåøåíèå 1:
+ bool isPrime1 = true;
+ for (int i = 2; i <= n - 1; i++)
+ {
+ if (n % i == 0)
+ isPrime1 = false;
+ }
+ cout << isPrime1 << endl;
+ // Ðåøåíèåòî ðàáîòè. Íî ïðàâè èçëèøíè ïðîâåðêè. Íå å íåîáõîäèìî äà òúðñèì äåëèòåë ÷àê äî n-1.
+ // Àêî íå íàìåðèì äåëèòåë îò êîðåí(n), òî íÿìà äà íàìåðèì è ñëåä êîðåíà.
+
+ //Ðåøåíèå 2:
+ bool isPrime2 = true;
+ for (int i = 2; i <= sqrt(n); i++)
+ {
+ if (n % i == 0)
+ isPrime2 = false;
+ }
+ cout << isPrime2 << endl;
+
+ // Ðåøåíèåòî ïàê ðàáîòè. Íî íà âñÿêà ïðîâåðêà i <= sqrt(n) ïðåñìÿòàìå êîðåí(n), êîåòî å î÷åâèäíî, ÷å å èçëèøíî.
+ // Ìîæå äà ãî ñìåòíåì âåäíúæ è ïîñëå äà ãî ïîëçâàìå.
+
+ //Ðåøåíèå 3:
+ bool isPrime3 = true;
+ double temp = sqrt(n);
+ for (int i = 2; i <= temp; i++)
+ {
+ if (n % i == 0)
+ isPrime3 = false;
+ }
+ cout << isPrime3 << endl;
+
+ // È òîâà ðåøåíèå äàâà âåðåí ðåçóëòàò. Íî îòíîâî å âúçìîæíî äà ïðàâè èçëèøíè ïðîâåðêè.
+ // Ïðè âúâåæäàíå íà ÷èñëîòî 2000000, î÷åâèäíî áè áèëî, ÷å ÷èñëîòî ÍÅ å ïðîñòî, ïîíåæå ñå äåëè íà 2.
+ // Íî íàøåòî ðåøåíèå ùå ïðîäúëæè äà òúðñè äåëèòåëè, äîðè ñëåä êàòî å âèäÿëî, ÷å èìà òàêúâ (â ñëó÷àÿ ÷èñëîòî 2).
+
+ //Ôèíàëíî ðåøåíèå:
+ bool isPrime4 = true;
+ double temp2 = sqrt(n);
+ for (int i = 2; i <= temp2; i++)
+ {
+ if (n % i == 0)
+ {
+ isPrime4 = false;
+ break;
+ }
+ }
+ cout << isPrime4 << endl;
+} \ No newline at end of file
diff --git a/Sem. 5/Task 2.cpp b/Sem. 5/Task 2.cpp
new file mode 100644
index 0000000..0f4408d
--- /dev/null
+++ b/Sem. 5/Task 2.cpp
@@ -0,0 +1,39 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ unsigned int n;
+ cin >> n;
+
+ for (int i = 2; n != 1; i++) //Âñè÷êè âúçìîæíè äåëèòåëè (ìíîæèòåëè) íà n 2,3,4,5,...,
+ {
+ // Ïðîâåðÿâàìå äàëè ÷èñëîòî å ïðîñòî (ïîíåæå íè èíòåðåñóâàò ñàìî ïðîñòè ìíîæèòåëè)
+ bool isPrime = true;
+ double temp = sqrt(i);
+ for (int j = 2; j <= temp; j++)
+ {
+ if (i % j == 0)
+ {
+ isPrime = false;
+ break;
+ }
+ }
+
+ if (!isPrime)
+ continue; //Àêî íå å ïðîñòî - íå íè èíòåðåñóâà òîâà ÷èñëî. Ïðåìèíàâàìå êúì ñëåäâàùîòî.
+
+ // Ùîì ñìå ñòèãíàëè òóê, ñìå óáåäåíè, ÷å i å ïðîñòî ÷èñëî.
+ // Èñêàìå äà âèäèì êîëêî ïúòè i äåëè n.
+
+ int pow = 0;
+ while (n % i == 0)
+ {
+ n /= i;
+ pow++;
+ }
+
+ if (pow != 0) //Àêî ïîíå âåäíúæ ãî å ðàçäåëèëî - çíà÷è ó÷àñòâà â ðàçáèâàíåòî íà ïðîñòè ìíîæèòåëè.
+ cout << i << "^" << pow << " ";
+ }
+} \ No newline at end of file
diff --git a/Sem. 5/Task 3.cpp b/Sem. 5/Task 3.cpp
new file mode 100644
index 0000000..6723ee2
--- /dev/null
+++ b/Sem. 5/Task 3.cpp
@@ -0,0 +1,27 @@
+#include <iostream>
+using namespace std;
+
+
+//Àëãîðèòúìúò çà ñúáèðàíå ñ 1 â äâîè÷åí çàïèñ:
+//Îò äÿñíî íà ëÿâî - ïðàâèì âñè÷êè 1-öè íà 0, äîêàòî íå ñðåùíåì ïúðâàòà 0.
+//Ïúðâàòà 0 ÿ ïðàâèì íà 1.
+
+// 101001111 + 1
+// 101010000
+int main()
+{
+ unsigned int n;
+ cin >> n;
+
+ int mask = 1; //Íàé-äåñíèÿò áèò íà ìàñêàòà å 1-öà. Âñè÷êè äðóãè ñà 0-ëè.
+
+
+ while ((n & mask) > 0) //Ïðîâåðÿâàìå äàëè òåêóùèÿ áèò å 1-öà. (ïðè ïúðâîòî âëèçàíå, ïðîâåðÿâàìå íàé-äåñíèÿ)
+ {
+ n ^= mask; // Ïðàâèì ãî íà 0 ( n = n ^ mask)
+ mask <<= 1; // Îòìåñòâàìå ìàñêàòà, çà äà ïðîâåðèì áèò-à â ëÿâî. (mask = mask << 1)
+ }
+
+ //Îòêðèëè ñìå ïúðâàòà 0. 1-öàòà å íà òî÷íàòà ïîçèöèÿ â ìàñêàòà.
+ n |= mask; // Ïðàâèì íà 1-öa (n = n | mask)
+} \ No newline at end of file
diff --git a/Sem. 5/Task 4.cpp b/Sem. 5/Task 4.cpp
new file mode 100644
index 0000000..3dd9d53
--- /dev/null
+++ b/Sem. 5/Task 4.cpp
@@ -0,0 +1,23 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ unsigned int n, k;
+ cin >> n >> k;
+
+
+ //Ïðèëàãàìå k ïúòè ñúáèðàíå íà n ñ 1.
+ for (int i = 0; i < k; i++)
+ {
+ //Êîäúò îò ìèíàëàòà çàäà÷à - ñúáèðàìå n ñ 1.
+ int mask = 1;
+ while ((n & mask) > 0)
+ {
+ n ^= mask;
+ mask <<= 1;
+ }
+ n |= mask;
+ }
+ cout << n << endl;
+} \ No newline at end of file
diff --git a/Sem. 5/Task 5.cpp b/Sem. 5/Task 5.cpp
new file mode 100644
index 0000000..b11de99
--- /dev/null
+++ b/Sem. 5/Task 5.cpp
@@ -0,0 +1,33 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ unsigned int n, k;
+ cin >> n >> k;
+
+ //Ñìÿòàìå n*k. n+n+n...+n (k ïúòè).
+ //Ïðèëàãàìå êîäà îò ïðåäèøíàòà çàäà÷à k ïúòè
+
+
+ int result = 0;
+
+ // Èçïúëëíÿâà ñå k ïúòè.
+ for (int t = 0; t < k; t++)
+ {
+
+ //Ñúáèðà result ñ n
+ for (int i = 0; i < n; i++)
+ {
+ //Ñúáèðàìå result ñ 1.
+ int mask = 1;
+ while ((result & mask) > 0)
+ {
+ result ^= mask;
+ mask <<= 1;
+ }
+ result |= mask;
+ }
+ }
+ cout << result << endl;
+} \ No newline at end of file
diff --git a/Sem. 5/Task 6.cpp b/Sem. 5/Task 6.cpp
new file mode 100644
index 0000000..2360b61
--- /dev/null
+++ b/Sem. 5/Task 6.cpp
@@ -0,0 +1,19 @@
+#include <iostream>
+using namespace std;
+
+int main()
+{
+ unsigned int n;
+ cin >> n;
+
+ int currentPosition = 0;
+ while (n != 0)
+ {
+ if (n % 2 == 1) //ïðîâåðêà çà ïîñëåäíèÿ áèò
+ {
+ cout << "2^" << currentPosition << " ";
+ }
+ currentPosition++;
+ n >>= 1; // Âå÷å ïðåäïîñëåäíèÿò áèò ñòàâà ïîñëåäåí. (n /=2);
+ }
+} \ No newline at end of file