Website Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commita69b56e59ae0e7862c75d0ee014029e56ff5298a (patch)
Author
 Angeld55 <angel_dimitriev@abv.bg>
2021-01-08 14:28:26 +0200
Committer
 Angeld55 <angel_dimitriev@abv.bg>
2021-01-08 14:28:26 +0200
Files97ebf65d4305338946037cc7caa5e22c6c2ac2aa
Introduction_to_programming_FMI-a69b56e59ae0e7862c75d0ee014029e56ff5298a.tar
Introduction_to_programming_FMI-a69b56e59ae0e7862c75d0ee014029e56ff5298a.tar.gz
Introduction_to_programming_FMI-a69b56e59ae0e7862c75d0ee014029e56ff5298a.zip
Parentc4266a5fc91c5a18d2e887d0cdc85219247ebac3 (diff)
added sem 13
10 files changed, 133 insertions, 0 deletions
-rw-r--r--README.md1
-rw-r--r--Sem. 13/README.md15
-rw-r--r--Sem. 13/task1.cpp15
-rw-r--r--Sem. 13/task2.cpp14
-rw-r--r--Sem. 13/task3.cpp14
-rw-r--r--Sem. 13/task4.cpp0
-rw-r--r--Sem. 13/task5.cpp16
-rw-r--r--Sem. 13/task6.cpp15
-rw-r--r--Sem. 13/task7.cpp23
-rw-r--r--Sem. 13/task8.cpp20
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 <iostream>
+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 <iostream>
+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 <iostream>
+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
--- /dev/null
+++ b/Sem. 13/task4.cpp
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 <iostream>
+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 <iostream>
+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 <iostream>
+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 <iostream>
+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