/// @file /// @brief task B /// g++ -std=c++20 taskB.cpp -o taskB && ./taskB #include namespace one { struct Particle { double vx; // velocity in x-direction double vy; // velocity in y-direction double m; // mass /// @todo implement the following member functions: /// - energy(): returns the kinetic energy of the particle (formula, see main.ipynb) /// - print(): prints the values of the member variables to the console double energy() { return 0.5 * m * (vx * vx + vy * vy); } void print() { std::cout << "vx: " << vx << ", vy: " << vy << ", m: " << m << std::endl; } }; } // end namespace one namespace two { /// @todo implement a class with the following properties: /// - private member variables vx, vy, m /// - constructor with three parameters (for the three member variables) /// - set(): function to change the values of all three member variables /// - get(): returns the values of the member variables in a tuple /// - energy(): returns the kinetic energy of the particle (formula, see main.ipynb) /// - print(): prints the values of the member variables to the console class Particle { double vx; // velocity in x-direction double vy; // velocity in y-direction double m; // mass void set(double vx, double vy, double m) { this->vx = vx; this->vy = vy; this->m = m; } std::tuple get() { return std::make_tuple(vx, vy, m); } double energy() { return 0.5 * m * (vx * vx + vy * vy); } void print() { std::cout << "vx: " << vx << ", vy: " << vy << ", m: " << m << std::endl; } }; } // end namespace two int main() { /// @todo create objects from both classes and use their member functions one::Particle p1; p1.vx = 1.0; p1.vy = 2.0; p1.m = 3.0; p1.print(); std::cout << "energy: " << p1.energy() << std::endl; return 0; }