diff options
minor fixes
13 files changed, 161 insertions, 268 deletions
| -rw-r--r-- | Sem. 01/task1.cpp | 127 | ||||
| -rw-r--r-- | Sem. 01/task1/task1.cpp | 126 | ||||
| -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).cpp | 156 | ||||
| -rw-r--r-- | Sem. 06/Time/Time.cpp | 6 | ||||
| -rw-r--r-- | Sem. 07/PersonAdvanced/PersonAdvanced.cpp | 5 | ||||
| -rw-r--r-- | Sem. 08/Nvector/Source.cpp | 1 | ||||
| -rw-r--r-- | Sem. 12/task1/Drinks/AlcoholDrink.cpp | 1 | ||||
| -rw-r--r-- | Sem. 12/task1/Drinks/Drink.cpp | 1 | ||||
| -rw-r--r-- | Sem. 12/task1/Drinks/EnergyDrink.cpp | 1 | ||||
| -rw-r--r-- | Sem. 12/task1/main.cpp | 5 |
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" |
