Website Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commitbd9ffde20d67674041712a6686340b0c619b791b (patch)
Author
 Your Name <you@example.com>
2021-05-15 12:31:51 +0300
Committer
 Your Name <you@example.com>
2021-05-15 12:31:51 +0300
Files044fb2a1d4cf32c970886c2243fc2155eae10078
Object-oriented_programming_FMI-bd9ffde20d67674041712a6686340b0c619b791b.tar
Object-oriented_programming_FMI-bd9ffde20d67674041712a6686340b0c619b791b.tar.gz
Object-oriented_programming_FMI-bd9ffde20d67674041712a6686340b0c619b791b.zip
Parenta76f4ac4ee38c4d64f54fa75f7e20b361e2b4102 (diff)
minor fixes
13 files changed, 161 insertions, 268 deletions
-rw-r--r--Sem. 01/task1.cpp127
-rw-r--r--Sem. 01/task1/task1.cpp126
-rw-r--r--Sem. 02/task1/selfPrintingTask.cpp (renamed from Sem. 02/selfPrintingTask.cpp)0
-rw-r--r--Sem. 02/task2/students.csv (renamed from Sem. 02/students.csv)0
-rw-r--r--Sem. 02/task2/studentsDatabase.cpp (renamed from Sem. 02/studentsDatabase.cpp)0
-rw-r--r--Sem. 04/uni_task(not finished).cpp156
-rw-r--r--Sem. 06/Time/Time.cpp6
-rw-r--r--Sem. 07/PersonAdvanced/PersonAdvanced.cpp5
-rw-r--r--Sem. 08/Nvector/Source.cpp1
-rw-r--r--Sem. 12/task1/Drinks/AlcoholDrink.cpp1
-rw-r--r--Sem. 12/task1/Drinks/Drink.cpp1
-rw-r--r--Sem. 12/task1/Drinks/EnergyDrink.cpp1
-rw-r--r--Sem. 12/task1/main.cpp5
diff --git a/Sem. 01/task1.cpp b/Sem. 01/task1.cpp
index 67ad5b1..e6f4661 100644
--- a/Sem. 01/task1.cpp
+++ b/Sem. 01/task1.cpp
@@ -3,124 +3,35 @@
using namespace std;
-
-struct point
-{
- int x;
- int y;
-};
-void print(const point& ptr)
-{
- cout << ptr.x << " " << ptr.y << endl;
-}
-point readPoint()
-{
- int x, y;
- cin >> x >> y;
- return{ x, y };
-}
-double getDist(const point& origin, const point& dest)
-{
- double dx = origin.x - dest.x;
- double dy = origin.y - dest.y;
-
- return sqrt(dx*dx + dy*dy);
-}
-
-
-struct triangle
-{
- point p1;
- point p2;
- point p3;
-};
-
-double getArea(const triangle& tr)
-{
- double sideA = getDist(tr.p1, tr.p2);
- double sideB = getDist(tr.p2, tr.p3);
- double sideC = getDist(tr.p3, tr.p1);
-
- double halfP = (sideA + sideB + sideC) / 2;
- return sqrt(halfP * (halfP - sideA) * (halfP - sideB) * (halfP - sideC));
-
-}
-
-void print(const triangle& tr)
-{
- cout << "Point1: ";
- print(tr.p1);
- cout << "Point2: ";
- print(tr.p2);
- cout << "Point3: ";
- print(tr.p3);
- cout << getArea(tr) << endl << endl;
-}
-
-void swap(int * arr, int i, int j)
-{
- int temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
-}
-void swap(triangle* arr, int i, int j)
-{
- triangle temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
-}
-void selectionSort(int* areas, triangle* triangles, int len)
+bool checkIfObratim(size_t element, size_t Z)
{
- for (int i = 0; i < len-1; i++)
+ for (int i = 1; i < Z; i++)
{
- int currPos = i;
- int min = i;
-
- for (int j = i; j < len; j++)
+ if ((i * element) % Z == 0)
{
- if (areas[j] < areas[min])
- min = j;
+ std::cout << "Obratniq element na " << element << " e " << i << std::endl;
+ return true;
}
-
- if (min != i)
+ }
+ return false;
+}
+size_t countDivisers(size_t Z)
+{
+ size_t count = 0;
+ for (int i = 1; i < Z; i++)
+ {
+ if (checkIfObratim(i,Z))
+ count++;
+ else
{
- swap(areas, i, min);
- swap(triangles, i, min);
+ std::cout << "Neobratim " << i << std::endl;
}
}
+ return count;
}
int main()
{
-
- int n;
- cin >> n;
-
- triangle* triangles = new triangle[n];
-
- for (int i = 0; i < n; i++)
- {
- point p1 = readPoint();
- point p2 = readPoint();
- point p3 = readPoint();
-
- triangles[i].p1 = p1;
- triangles[i].p2 = p2;
- triangles[i].p3 = p3;
- }
-
- int* areas = new int[n];
-
-
- for (int i = 0; i < n; i++)
- areas[i] = getArea(triangles[i]);
-
- selectionSort(areas, triangles, n);
-
- for (int i = 0; i < n; i++)
- print(triangles[i]);
-
- delete[] triangles;
- delete[] areas;
+ cout << countDivisers(4096) << endl;
}
diff --git a/Sem. 01/task1/task1.cpp b/Sem. 01/task1/task1.cpp
new file mode 100644
index 0000000..67ad5b1
--- /dev/null
+++ b/Sem. 01/task1/task1.cpp
@@ -0,0 +1,126 @@
+#include <iostream>
+#include <chrono>
+
+using namespace std;
+
+
+struct point
+{
+ int x;
+ int y;
+};
+void print(const point& ptr)
+{
+ cout << ptr.x << " " << ptr.y << endl;
+}
+point readPoint()
+{
+ int x, y;
+ cin >> x >> y;
+ return{ x, y };
+}
+double getDist(const point& origin, const point& dest)
+{
+ double dx = origin.x - dest.x;
+ double dy = origin.y - dest.y;
+
+ return sqrt(dx*dx + dy*dy);
+}
+
+
+struct triangle
+{
+ point p1;
+ point p2;
+ point p3;
+};
+
+double getArea(const triangle& tr)
+{
+ double sideA = getDist(tr.p1, tr.p2);
+ double sideB = getDist(tr.p2, tr.p3);
+ double sideC = getDist(tr.p3, tr.p1);
+
+ double halfP = (sideA + sideB + sideC) / 2;
+ return sqrt(halfP * (halfP - sideA) * (halfP - sideB) * (halfP - sideC));
+
+}
+
+void print(const triangle& tr)
+{
+ cout << "Point1: ";
+ print(tr.p1);
+ cout << "Point2: ";
+ print(tr.p2);
+ cout << "Point3: ";
+ print(tr.p3);
+ cout << getArea(tr) << endl << endl;
+}
+
+void swap(int * arr, int i, int j)
+{
+ int temp = arr[i];
+ arr[i] = arr[j];
+ arr[j] = temp;
+}
+void swap(triangle* arr, int i, int j)
+{
+ triangle temp = arr[i];
+ arr[i] = arr[j];
+ arr[j] = temp;
+}
+void selectionSort(int* areas, triangle* triangles, int len)
+{
+ for (int i = 0; i < len-1; i++)
+ {
+ int currPos = i;
+ int min = i;
+
+ for (int j = i; j < len; j++)
+ {
+ if (areas[j] < areas[min])
+ min = j;
+ }
+
+ if (min != i)
+ {
+ swap(areas, i, min);
+ swap(triangles, i, min);
+ }
+ }
+}
+int main()
+{
+
+
+ int n;
+ cin >> n;
+
+ triangle* triangles = new triangle[n];
+
+ for (int i = 0; i < n; i++)
+ {
+ point p1 = readPoint();
+ point p2 = readPoint();
+ point p3 = readPoint();
+
+ triangles[i].p1 = p1;
+ triangles[i].p2 = p2;
+ triangles[i].p3 = p3;
+ }
+
+ int* areas = new int[n];
+
+
+ for (int i = 0; i < n; i++)
+ areas[i] = getArea(triangles[i]);
+
+ selectionSort(areas, triangles, n);
+
+ for (int i = 0; i < n; i++)
+ print(triangles[i]);
+
+ delete[] triangles;
+ delete[] areas;
+
+}
diff --git a/Sem. 02/selfPrintingTask.cpp b/Sem. 02/task1/selfPrintingTask.cpp
index 862cf07..862cf07 100644
--- a/Sem. 02/selfPrintingTask.cpp
+++ b/Sem. 02/task1/selfPrintingTask.cpp
diff --git a/Sem. 02/students.csv b/Sem. 02/task2/students.csv
index 1d7debc..1d7debc 100644
--- a/Sem. 02/students.csv
+++ b/Sem. 02/task2/students.csv
diff --git a/Sem. 02/studentsDatabase.cpp b/Sem. 02/task2/studentsDatabase.cpp
index 7f9a5f5..7f9a5f5 100644
--- a/Sem. 02/studentsDatabase.cpp
+++ b/Sem. 02/task2/studentsDatabase.cpp
diff --git a/Sem. 04/uni_task(not finished).cpp b/Sem. 04/uni_task(not finished).cpp
deleted file mode 100644
index 7bf3a70..0000000
--- a/Sem. 04/uni_task(not finished).cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-#include <iostream>
-#include <fstream>
-
-using namespace std;
-
-
-struct Student
-{
- char* name;
- int fn;
- int gradesCount;
- double averageGrade;
-};
-void print(const Student& st)
-{
- cout << st.name << " " << st.fn << " " << st.gradesCount << " " << st.averageGrade << endl;
-}
-Student createStudent(const char* name, int fn, int gradesCount, double avGrade)
-{
- Student obj;
-
- size_t nameLen = strlen(name);
-
- obj.name = new char[nameLen + 1];
- strcpy(obj.name, name);
-
- obj.fn = fn;
- obj.gradesCount = gradesCount;
- obj.averageGrade = avGrade;
-
- return obj;
-}
-void saveStudentToFile(ofstream& f, const Student& st)
-{
- size_t nameLen = strlen(st.name);
- f.write((const char*)&nameLen, sizeof(nameLen)); //first we write the size of the name!
- f.write(st.name, nameLen);
- f.write((const char*)&st.fn, sizeof(st.fn));
- f.write((const char*)&st.gradesCount, sizeof(st.gradesCount));
- f.write((const char*)&st.averageGrade, sizeof(st.averageGrade));
-
-}
-Student readStudentFromFile(ifstream& f)
-{
- Student res;
-
- size_t nameLen;
-
- f.read((char *)&nameLen, sizeof(nameLen)); //first we read the size of the name!
-
- res.name = new char[nameLen + 1];
- f.read(res.name, nameLen);
- res.name[nameLen] = '\0';
-
- f.read((char *)&res.fn, sizeof(res.fn));
- f.read((char*)&res.gradesCount, sizeof(res.gradesCount));
- f.read((char*)&res.averageGrade, sizeof(res.averageGrade));
-
- return res;
-}
-void freeStudent(Student& s)
-{
- delete[] s.name;
-
- s.averageGrade = s.fn = s.gradesCount = 0;
-
-}
-
-const int UNI_NAME_MAX = 32;
-struct Uni
-{
- char name[UNI_NAME_MAX];
- size_t studentsCount;
- Student* students;
-};
-
-void saveUniToFile(ofstream& f, const Uni& uni)
-{
-
- f.write(uni.name, sizeof(uni.name));
- f.write((const char*)&uni.studentsCount, sizeof(uni.studentsCount)); //first we write how many students we have!
-
- for (int i = 0; i < uni.studentsCount; i++)
- saveStudentToFile(f, uni.students[i]);
-}
-
-void readUniFromFile(ifstream& f, Uni& uni)
-{
- f.read(uni.name, sizeof(uni.name));
- f.read((char*) &uni.studentsCount, sizeof(uni.studentsCount)); //we read how many students are saved in the file!
-
- uni.students = new Student[uni.studentsCount];
-
- for (int i = 0; i < uni.studentsCount; i++)
- uni.students[i] = readStudentFromFile(f);
-}
-void freeUni(Uni& uni)
-{
- for (int i = 0; i < uni.studentsCount; i++)
- freeStudent(uni.students[i]);
- strcpy(uni.name, "");
- uni.studentsCount = 0;
-}
-void print(const Uni& u)
-{
- cout << u.name << " " << u.studentsCount << endl;
- for (int i = 0; i < u.studentsCount; i++)
- print(u.students[i]);
-}
-int main()
-{
- { //Creating an university and saving to file
- Uni u;
- strcpy(u.name, "FMI");
- u.studentsCount = 3;
-
- u.students = new Student[u.studentsCount];
- u.students[0] = createStudent("Ivan", 81234, 3, 4.5);
- u.students[1] = createStudent("Angel", 12345, 4, 5);
- u.students[2] = createStudent("Mariq", 81234, 5, 5.5);
-
-
- ofstream f("uni.dat", ios::binary);
-
- if (!f.is_open())
- {
- cout << "Error" << endl;
- return -1;
- }
-
- saveUniToFile(f, u);
- freeUni(u);
- }
-
- { //Reading an university from file
-
- Uni myUni;
- ifstream f("uni.dat", ios::binary);
-
- if (!f.is_open())
- {
- cout << "Error" << endl;
- return -1;
- }
-
- readUniFromFile(f, myUni);
-
- print(myUni);
-
- f.close();
-
- freeUni(myUni);
-
- }
-}
-
diff --git a/Sem. 06/Time/Time.cpp b/Sem. 06/Time/Time.cpp
index 65549f7..9cd8620 100644
--- a/Sem. 06/Time/Time.cpp
+++ b/Sem. 06/Time/Time.cpp
@@ -10,15 +10,15 @@ Time::Time(size_t hours, size_t mins, size_t seconds)
setSeconds(seconds);
}
-size_t Time::getHours()
+size_t Time::getHours() const
{
return hours;
}
-size_t Time::getMins()
+size_t Time::getMins() const
{
return mins;
}
-size_t Time::getSeconds()
+size_t Time::getSeconds() const
{
return seconds;
}
diff --git a/Sem. 07/PersonAdvanced/PersonAdvanced.cpp b/Sem. 07/PersonAdvanced/PersonAdvanced.cpp
index fbea6c3..e4e062f 100644
--- a/Sem. 07/PersonAdvanced/PersonAdvanced.cpp
+++ b/Sem. 07/PersonAdvanced/PersonAdvanced.cpp
@@ -61,4 +61,9 @@ void PersonAdvanced::free()
{
delete[] name;
age = 0;
+}
+
+void PersonAdvanced::print()
+{
+ std::cout <<"Name: "<< name << ", age: " << age << std::endl;
} \ No newline at end of file
diff --git a/Sem. 08/Nvector/Source.cpp b/Sem. 08/Nvector/Source.cpp
index 332ac22..291b683 100644
--- a/Sem. 08/Nvector/Source.cpp
+++ b/Sem. 08/Nvector/Source.cpp
@@ -9,6 +9,7 @@ using namespace std;
int main()
{
Nvector v(3);
+ v[2] = 10;
Nvector v2 = 3 * v;
cout << v2;
diff --git a/Sem. 12/task1/Drinks/AlcoholDrink.cpp b/Sem. 12/task1/Drinks/AlcoholDrink.cpp
index 2f61087..4171ff0 100644
--- a/Sem. 12/task1/Drinks/AlcoholDrink.cpp
+++ b/Sem. 12/task1/Drinks/AlcoholDrink.cpp
@@ -1,3 +1,4 @@
+#pragma warning(disable: 4996)
#include "AlcoholDrink.h"
AlcoholDrink::AlcoholDrink() : AlcoholDrink("Unknown", 0, 0){}
diff --git a/Sem. 12/task1/Drinks/Drink.cpp b/Sem. 12/task1/Drinks/Drink.cpp
index 6f41b55..55b3e3a 100644
--- a/Sem. 12/task1/Drinks/Drink.cpp
+++ b/Sem. 12/task1/Drinks/Drink.cpp
@@ -1,3 +1,4 @@
+#pragma warning(disable: 4996)
#include "Drink.h"
#include <iostream>
diff --git a/Sem. 12/task1/Drinks/EnergyDrink.cpp b/Sem. 12/task1/Drinks/EnergyDrink.cpp
index a8ffac5..ef61456 100644
--- a/Sem. 12/task1/Drinks/EnergyDrink.cpp
+++ b/Sem. 12/task1/Drinks/EnergyDrink.cpp
@@ -1,3 +1,4 @@
+#pragma warning(disable: 4996)
#include "EnergyDrink.h"
#include <iostream>
diff --git a/Sem. 12/task1/main.cpp b/Sem. 12/task1/main.cpp
index 296f09f..ba367d8 100644
--- a/Sem. 12/task1/main.cpp
+++ b/Sem. 12/task1/main.cpp
@@ -1,4 +1,7 @@
-#include <iostream>
+#pragma warning(disable: 4996)
+
+
+#include <iostream>
#include "Bar/Bar.h"
#include "Drinks/EnergyDrink.h"