diff options
added examples sem 5
24 files changed, 595 insertions, 5 deletions
@@ -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 Binary files differnew file mode 100644 index 0000000..6c2ad50 --- /dev/null +++ b/Sem. 3/Tasks and Solutions/tasks.pdf 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 |
