Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,24 @@
*.exe
*.out
*.app
*.filters
*.user
*.log
*.pdb
*.idb
*.tlog
*.ilk
SZE/OODB/kyberszittya/Rec3/Recitation3/.vs/Recitation3/v15/.suo
SZE/OODB/kyberszittya/Rec3/Recitation3/.vs/Recitation3/v15/Browse.VC.db
SZE/OODB/kyberszittya/Rec3/Recitation3/.vs/Recitation3/v15/Browse.VC.opendb
SZE/OODB/kyberszittya/Rec3/Recitation3/.vs/Recitation3/v15/ipch/720e8647fbac6ed7.ipch
SZE/OODB/kyberszittya/Rec3/Recitation3/.vs/Recitation3/v15/ipch/AutoPCH/6bfa9ec59ac6f7db/LINKEDLIST.ipch
SZE/OODB/kyberszittya/Rec3/Recitation3/.vs/Recitation3/v15/ipch/AutoPCH/abb60791adcf511b/LABIRINTUS.ipch
SZE/OODB/kyberszittya/Rec3/Recitation3/.vs/Recitation3/v15/ipch/AutoPCH/cdab13bb4a56a2ec/UNIT.ipch
SZE/OODB/kyberszittya/Rec3/Recitation3/.vs/Recitation3/v15/ipch/AutoPCH/cea2f45df4cc64ab/SPHERECALCULATION.ipch
SZE/OODB/kyberszittya/Rec3/Recitation3/.vs/Recitation3/v15/ipch/AutoPCH/dee12e2fe46a3cab/BOOKOPERATOROVERLOADING.ipch
SZE/OODB/kyberszittya/Rec3/Recitation3/.vs/Recitation3/v15/ipch/AutoPCH/e7590d024f13c469/MAIN.ipch
SZE/OODB/kyberszittya/Rec3/Recitation3/.vs/Recitation3/v15/ipch/f1b21f5d4784671e.ipch
SZE/OODB/kyberszittya/Rec3/Recitation3/.vs/Recitation3/v15/Solution.VC.db
SZE/OODB/kyberszittya/Rec3/Recitation3/.vs/Recitation3/v15/Solution.VC.db-shm
SZE/OODB/kyberszittya/Rec3/Recitation3/.vs/Recitation3/v15/Solution.VC.db-wal
1 change: 1 addition & 0 deletions SZE/OODB/kyberszittya/Rec1/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.vscode/
15 changes: 15 additions & 0 deletions SZE/OODB/kyberszittya/Rec1/CMakeLists.txt.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 2.8.2)

project(googletest-download NONE)

include(ExternalProject)
ExternalProject_Add(googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG master
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-src"
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)
1 change: 1 addition & 0 deletions SZE/OODB/kyberszittya/Rec1/easy/comp_interest/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
build/
5 changes: 5 additions & 0 deletions SZE/OODB/kyberszittya/Rec1/easy/comp_interest/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
cmake_minimum_required(VERSION 3.5)
project(CompoundInterest)

add_executable(CompoundInterest src/main.cpp)
add_executable(CompoundInterestFile src/main_file.cpp)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
50 7.7 90
666 8 1000
700 5 1500
40 10 230
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include <cmath>

const inline double yearsToTargetCash(const double& cash, const double& interest, const double& target_cash)
{
return std::log(target_cash/cash)/std::log(1.0+interest);
}
20 changes: 20 additions & 0 deletions SZE/OODB/kyberszittya/Rec1/easy/comp_interest/src/main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#include <iostream>

#include "comp_interest.h"

using namespace std;

int main(int argc, char** argv)
{
double cash, interest, target_cash;
cout << "Starting cash [EUR]: ";
cin >> cash;
cout << "Compound interest [%]: ";
cin >> interest;
interest /= 100.0;
cout << "Desired cash [EUR]: ";
cin >> target_cash;
cout << "Years to get cash: " << ceil(yearsToTargetCash(cash, interest, target_cash)) << '\n';

return 0;
}
33 changes: 33 additions & 0 deletions SZE/OODB/kyberszittya/Rec1/easy/comp_interest/src/main_file.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#include <iostream>
#include <fstream>
#include <sstream>

#include "comp_interest.h"


using namespace std;


int main(int argc, char** argv)
{
ifstream file("../data/interests.dat");
if (file.is_open())
{
string line;
while(getline(file, line))
{
stringstream ss(line);
double cash, interest, target_cash;
ss >> cash;
ss >> interest;
interest /= 100.0;
ss >> target_cash;
cout << "Starting cash [EUR]: " << cash << '\n';
cout << "Compound interest [%]: " << interest << '\n';
cout << "Desired cash [EUR]: " << target_cash << '\n';
cout << "Years to get cash: " << ceil(yearsToTargetCash(cash, interest, target_cash)) << '\n';
cout << '\n';
}
}
return 0;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
build/
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
cmake_minimum_required(VERSION 3.5)
project(TriangleCalc)

add_executable(TriangleAreaCalc src/main.cpp src/triangle.cpp)
add_executable(TriangleAreaCalcFile src/main_file.cpp src/triangle.cpp)

# If you want to test, then go ahead with it
configure_file(./../../CMakeLists.txt.in googletest-download/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
RESULT_VARIABLE result
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )
if(result)
message(FATAL_ERROR "CMake step for googletest failed: ${result}")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} --build .
RESULT_VARIABLE result
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download )
if(result)
message(FATAL_ERROR "Build step for googletest failed: ${result}")
endif()
add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googletest-src
${CMAKE_CURRENT_BINARY_DIR}/googletest-build
EXCLUDE_FROM_ALL)

set(PROJECT_TEST_NAME ${PROJECT_NAME}_test)
include_directories(${GTEST_INCLUDE_DIRS})
add_executable(${PROJECT_TEST_NAME} test/test_triangle.cpp src/triangle.cpp)


target_link_libraries(${PROJECT_TEST_NAME} gtest_main pthread)
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
3 4 5
15 16 19
6 4 7
5 6 2
4 7 19
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

#include <iostream>

#include "triangle.h"


int main(int argc, char** argv)
{
double a,b,c;
std::cout << "Give me some traingle parameters" << '\n';
std::cout << "Side a [cm]: ";
std::cin >> a;
std::cout << "Side b [cm]: ";
std::cin >> b;
std::cout << "Side c [cm]: ";
std::cin >> c;
Triangle triangle({a,b,c});
if (validTriangle(triangle))
{
std::cout << "Area [cm^2]: " << calcTriangleArea(triangle) << '\n';
}
else
{
std::cerr << "Invalid triangle\n";
}

return 0;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#include <iostream>
#include <fstream>
#include <sstream>

#include "triangle.h"

int main(int argc, char** argv)
{
std::ifstream triangle_input_file(argv[1]);
if (triangle_input_file.is_open())
{
std::string line;
while(getline(triangle_input_file, line))
{
std::stringstream ss(line);
double a,b,c;
ss >> a;
ss >> b;
ss >> c;
std::cout << "Sides [cm]: " << a << '\t' << b << '\t' << c << '\n';
Triangle triangle({a,b,c});
if (validTriangle(triangle))
{
std::cout << "Area [cm^2]: " << calcTriangleArea(triangle) << '\n';
}
else
{
std::cerr << "Invalid triangle\n";
}
}
}


return 0;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#include "triangle.h"


inline double calcSemiperimeter(const Triangle& triangle)
{
return (triangle.a+triangle.b+triangle.c)/2.0;
}

/**
* Check if triangle is correct using triangle equations
* */
bool validTriangle(const Triangle& triangle)
{
if (std::abs(triangle.a - triangle.b) < triangle.c && triangle.c < triangle.a + triangle.b)
{
return true;
}
else
{
return false;
}

}

/**
* Use Heron's formula. It's cool.
* A = sqrt()
* */
double calcTriangleArea(const Triangle& triangle)
{
double s = calcSemiperimeter(triangle);
return std::sqrt(s*(s-triangle.a)*(s-triangle.b)*(s-triangle.c));
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#include <cmath>

struct Triangle
{
double a,b,c;
};

inline double calcSemiperimeter(const Triangle& triangle);
bool validTriangle(const Triangle& triangle);
double calcTriangleArea(const Triangle& triangle);
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#include "../src/triangle.h"

#include "gtest/gtest.h"

TEST(TriangleTestSuite, triangleEquationCorrect1)
{
Triangle triangle({3,4,5});
ASSERT_TRUE(validTriangle(triangle));
}

TEST(TriangleTestSuite, triangleEquationCorrect2)
{
Triangle triangle({13,12,17});
ASSERT_TRUE(validTriangle(triangle));
}

TEST(TriangleTestSuite, triangleEquationIncorrect1)
{
Triangle triangle({13,12,34});
ASSERT_FALSE(validTriangle(triangle));
}

TEST(TriangleTestSuite, triangleArea)
{
Triangle triangle({3,4,5});
ASSERT_DOUBLE_EQ(6.0, calcTriangleArea(triangle));
}

int main(int argc, char** argv)
{
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
build/
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
cmake_minimum_required(VERSION 3.5)
project(SimpleTempMonitorMemory)

add_executable(SimpleTempMonitorMemory src/main.cpp)
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Build with CMake
Create a folder:
```bash
mkdir build && cd build
cmake ..
make
```
Then run:
```bash
./SimpleTempMonitorMemory
```

# Debug
To debug with cmake, run the following:
```bash
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug
make
```
Then, you can use a debugger (gdb):
```
gdb ./SimpleTempMonitorMemory
```

To check memory leaks with Valgrind, use the following:
```
valgrind --leak-check=yes ./SimpleTempMonitorMemory
```
Loading