Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 13
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 /Sem. 13
Introduction_to_programming_FMI-a69b56e59ae0e7862c75d0ee014029e56ff5298a.tar
Introduction_to_programming_FMI-a69b56e59ae0e7862c75d0ee014029e56ff5298a.tar.gz
Introduction_to_programming_FMI-a69b56e59ae0e7862c75d0ee014029e56ff5298a.zip
Parentc4266a5fc91c5a18d2e887d0cdc85219247ebac3 (diff)
added sem 13
9 files changed, 132 insertions, 0 deletions
-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/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