Website Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commitc92c14129dbefd34369186019450ead60a8183bb (patch)
Author
 Angel Dimitriev <achi_d@abv.bg>
2021-11-14 01:48:08 +0200
Committer
 GitHub <noreply@github.com>
2021-11-14 01:48:08 +0200
Files3e7b80b0dd94a33f78ff23bcf9928313cc514905
Introduction_to_programming_FMI-c92c14129dbefd34369186019450ead60a8183bb.tar
Introduction_to_programming_FMI-c92c14129dbefd34369186019450ead60a8183bb.tar.gz
Introduction_to_programming_FMI-c92c14129dbefd34369186019450ead60a8183bb.zip
Parentd7738ca1e288c32d9061014b4e832100c86c8778 (diff)
Create main.cpp
1 files changed, 146 insertions, 0 deletions
-rw-r--r--Sem 06 -kn/main.cpp146
diff --git a/Sem 06 -kn/main.cpp b/Sem 06 -kn/main.cpp
new file mode 100644
index 0000000..00ab1a8
--- /dev/null
+++ b/Sem 06 -kn/main.cpp
@@ -0,0 +1,146 @@
+#include <iostream>
+using namespace std;
+
+
+//Масиви.
+//- последователност от елементи от един тип.
+//- Елементите са ПОСЛЕДОВАТЕЛНО разположени в паметта.
+
+
+// <тип> <име>[<КОНСТАНТА: брой клетки>]
+
+// Елементите са от един тип.
+//Елементите са ПОСЛЕДОВАТЕЛНО разположени в паметта.
+
+// Имаме константен достъп до произволен елемент!
+
+// type arr[n]. адрес на k-ия елемент: arr + k * sizeof(type)
+// само с аритметика намираме адреса на клетката
+
+//Ститични масиви - масиви, на които големината трябва да бъде
+// известна преди да се компилира програмта!
+
+void print(const int arr[], int size)
+{
+ cout << "[ ";
+ for (int i = 0; i < size; i++)
+ cout << arr[i] << " ";
+ cout << "]" << endl;
+
+ cout << arr[size + 10] << endl;
+}
+
+bool linearSearch(const int arr[], int size, int el)
+{
+ for (int i = 0; i < size; i++)
+ {
+ if (arr[i] == el)
+ return true;
+ }
+ return false;
+}
+
+void f(int arr[])
+{
+ arr[0] = 44;
+}
+
+// Задача:
+// Въвежда се цяло число n (n<=1000).
+// Отпечатайте всички прости числа в [1...n].
+
+// Решето на Ератостен
+
+//Задача:
+// Напишете функция, която приема сортиран масив и елемент
+// и връща дали елементът се съдържа в масива
+
+//binary search
+
+
+bool binarySearch(const int arr[], int n, int el)
+{
+ int left = 0, right = n - 1;
+
+ while (left <= right)
+ {
+ int mid = left + (right - left) / 2; //(right + left) / 2;
+
+ if (arr[mid] == el)
+ return true;
+ else if (arr[mid] < el)
+ left = mid + 1;
+ else
+ right = mid - 1;
+ }
+
+ return false;
+}
+
+const int MAX_SIZE = 1000;
+
+
+void sieveEratosthenes(bool arr[], int n)
+{
+ arr[0] = arr[1] = false;
+
+ for (int i = 2; i < n; i++)
+ {
+ if (!arr[i])
+ continue;
+ int iter = i + i;
+ while (iter < n)
+ {
+ arr[iter] = false; //задраскване
+ iter += i;
+ }
+ }
+
+}
+void init(bool arr[], int n, bool value)
+{
+ for (int i = 0; i < n; i++)
+ arr[i] = value;
+}
+
+void printPrimeNumbers(bool arr[], int n)
+{
+ for (int i = 0; i < n; i++)
+ {
+ if (arr[i])
+ cout << i << " ";
+ }
+}
+
+void swap(int& x, int& y)
+{
+ int temp = x;
+ x = y;
+ y = temp;
+}
+
+void myReverse(int arr[], int n)
+{
+ for (int i = 0; i < n / 2; i++)
+ swap(arr[i], arr[n - i - 1]);
+}
+
+int main()
+{
+ //int n;
+ //cin >> n;
+
+ //bool arr[MAX_SIZE];
+ //init(arr, n, true);
+
+ //sieveEratosthenes(arr, n);
+ //printPrimeNumbers(arr, n);
+
+ int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
+ print(arr, 8);
+
+ myReverse(arr, 8);
+ print(arr, 8);
+
+}
+