From a69b56e59ae0e7862c75d0ee014029e56ff5298a Mon Sep 17 00:00:00 2001 From: Angeld55 Date: Fri, 8 Jan 2021 14:28:26 +0200 Subject: added sem 13 --- README.md | 1 + Sem. 13/README.md | 15 +++++++++++++++ Sem. 13/task1.cpp | 15 +++++++++++++++ Sem. 13/task2.cpp | 14 ++++++++++++++ Sem. 13/task3.cpp | 14 ++++++++++++++ Sem. 13/task4.cpp | 0 Sem. 13/task5.cpp | 16 ++++++++++++++++ Sem. 13/task6.cpp | 15 +++++++++++++++ Sem. 13/task7.cpp | 23 +++++++++++++++++++++++ Sem. 13/task8.cpp | 20 ++++++++++++++++++++ 10 files changed, 133 insertions(+) create mode 100644 Sem. 13/README.md create mode 100644 Sem. 13/task1.cpp create mode 100644 Sem. 13/task2.cpp create mode 100644 Sem. 13/task3.cpp create mode 100644 Sem. 13/task4.cpp create mode 100644 Sem. 13/task5.cpp create mode 100644 Sem. 13/task6.cpp create mode 100644 Sem. 13/task7.cpp create mode 100644 Sem. 13/task8.cpp diff --git a/README.md b/README.md index 245ecd4..f56d78a 100644 --- a/README.md +++ b/README.md @@ -13,3 +13,4 @@ - **Тема 10 (18.12.2020) :** Указатели. Символни низове. - **Тема 11 (22.12.2020) :** Ð�лгоритми върху маÑ�иви. Ð�лгоритми за търÑ�ене. Ð�лгоритми за Ñ�ортиране. - **Тема 12 (27.12.2020) :** Референции. Пойнтери. Динамична памет. Задачи Ñ� низове. + - **Тема 13 (08.01.2021) :** Стекова рамка. РекурÑ�иÑ�. \ No newline at end of file diff --git a/Sem. 13/README.md b/Sem. 13/README.md new file mode 100644 index 0000000..be7432c --- /dev/null +++ b/Sem. 13/README.md @@ -0,0 +1,15 @@ +**Çàäà÷à 1:** Äà ñå ðåàëèçèðà ðåêóðñèâíà ôóíêöèÿ, êîÿòî ïðåñìÿòà n! + +**Çàäà÷à 2:** Äà ñå ðåàëèçèðà ðåêóðñèâíà ôóíêöèÿ, êîÿòî ïðåñìÿòà n-òîòî ÷èñëî íà ôèáîíà÷è. + +**Çàäà÷à 3:** Äà ñå ðåàëèçèðà ðåêóðñèâíà ôóíêöèÿ, êîÿòî âäèãà ÷èñëî íà äàäåíà ñòåïåí. + +**Çàäà÷à 4:** Äà ñå ðåàëèçèðà ðåêóðñèâíà ôóíêöèÿ, êîÿòî ïðèåìà ìàñèâ îò öåëè ÷èñëà è âðúùà ñóìàòà íà åëåìåíòèòå â íåãî. + +**Çàäà÷à 5:** Äà ñå ðåàëèçèðà ðåêóðñèâíà ôóíêöèÿ, êîÿòî ïðèåìà **ïðîèçâîëåí** ìàñèâ è ÷èñëî è âðúùà äàëè ÷èñëîòî ñå ñúäúðæà â ìàñèâà. (Ëèíåéíî òúðñåíå). + +**Çàäà÷à 6:** Äà ñå ðåàëèçèðà ðåêóðñèâíà ôóíêöèÿ, êîÿòî ïðèåìà **ñîðòèðàí** ìàñèâ è ÷èñëî è âðúùà äàëè ÷èñëîòî ñå ñúäúðæà â ìàñèâà. (Äâîè÷íî òúðñåíå). + +**Çàäà÷à 7:** Äà ñå ðåàëèçèðà ðåêóðñèâíà ôóíêöèÿ, êîÿòî ïðèåìà ñòðèíã è âðúùà äàëè ñòðèíãúò å ïàëèíäðîì. + +**Çàäà÷à 8:** Äà ñå ðåàëèçèðà ðåêóðñèâíà ôóíêöèÿ, êîÿòî ïðèåìà ìàñèâ îò öåëè ÷èñëà è âðúùà íàé-ãîëåìèÿò åëåìåíò â ìàñèâà. diff --git a/Sem. 13/task1.cpp b/Sem. 13/task1.cpp new file mode 100644 index 0000000..bd2ce93 --- /dev/null +++ b/Sem. 13/task1.cpp @@ -0,0 +1,15 @@ +#include +using namespace std; + +unsigned fact(unsigned n) +{ + if (n == 0) + return 1; + + return n * fact(n - 1); +} + +int main() +{ + cout << fact(5); +} \ No newline at end of file diff --git a/Sem. 13/task2.cpp b/Sem. 13/task2.cpp new file mode 100644 index 0000000..39f69ad --- /dev/null +++ b/Sem. 13/task2.cpp @@ -0,0 +1,14 @@ +#include +using namespace std; + +unsigned fibb(unsigned n) +{ + if (n == 0 || n == 1) + return 1; + return fibb(n - 1) + fibb(n - 2); +} + +int main() +{ + cout << fibb(5); +} \ No newline at end of file diff --git a/Sem. 13/task3.cpp b/Sem. 13/task3.cpp new file mode 100644 index 0000000..a17bdb0 --- /dev/null +++ b/Sem. 13/task3.cpp @@ -0,0 +1,14 @@ +#include +using namespace std; + +unsigned power(unsigned n, unsigned k) +{ + if (k == 0) + return 1; + return n * power(n, k - 1); +} + +int main() +{ + cout << power(2,7); +} \ No newline at end of file diff --git a/Sem. 13/task4.cpp b/Sem. 13/task4.cpp new file mode 100644 index 0000000..e69de29 diff --git a/Sem. 13/task5.cpp b/Sem. 13/task5.cpp new file mode 100644 index 0000000..5e38f28 --- /dev/null +++ b/Sem. 13/task5.cpp @@ -0,0 +1,16 @@ +#include +using namespace std; + +int sum(const int* arr, int len) +{ + if (len == 0) + return 0; + + return arr[0] + sum(arr+1, len - 1); +} + +int main() +{ + int arr[] = { 1, 2, 2, 6 }; + cout << sum(arr,4); +} \ No newline at end of file diff --git a/Sem. 13/task6.cpp b/Sem. 13/task6.cpp new file mode 100644 index 0000000..121cc9b --- /dev/null +++ b/Sem. 13/task6.cpp @@ -0,0 +1,15 @@ +#include +using namespace std; + +bool LinearSearch(const int* arr, int len, int searched) +{ + if (len == 0) + return false; + return arr[0] == searched || LinearSearch(arr + 1, len - 1, searched); +} + +int main() +{ + int arr[] = { 17, 1, 2, 2, 6 }; + cout << LinearSearch(arr, 5, 17); +} \ No newline at end of file diff --git a/Sem. 13/task7.cpp b/Sem. 13/task7.cpp new file mode 100644 index 0000000..c90cf32 --- /dev/null +++ b/Sem. 13/task7.cpp @@ -0,0 +1,23 @@ +#include +using namespace std; + +bool BinarySearch(const int* arr, int len, int searched) +{ + if (len == 0) + return false; + + int midIndex = len / 2; + + if (arr[midIndex] == searched) + return true; + if (arr[midIndex] < searched) + return BinarySearch(arr + midIndex + 1, len - midIndex - 1, searched); + else + return BinarySearch(arr, midIndex, searched); +} + +int main() +{ + int arr[] = { 1, 2, 2, 6, 19, 55 }; + cout << BinarySearch(arr, 6, 19); +} \ No newline at end of file diff --git a/Sem. 13/task8.cpp b/Sem. 13/task8.cpp new file mode 100644 index 0000000..a22d3b7 --- /dev/null +++ b/Sem. 13/task8.cpp @@ -0,0 +1,20 @@ +#include +using namespace std; + +int max(int a, int b) +{ + return a > b ? a : b; +} + +int max(const int* arr, int len) +{ + if (len == 1) + return arr[0]; + return max(arr[0], max(arr + 1, len - 1)); +} + +int main() +{ + int arr[] = { 1, 2, 2,-4,-6 }; + cout << max(arr, 5); +} \ No newline at end of file -- cgit v1.3.1-23-gd82d