geekbrains_oop_cpp/lesson_3/main.cpp

137 lines
4.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <iostream>
#include <functional>
#include <vector>
#include "exercise_1.hpp"
#include "exercise_2.hpp"
#include "exercise_3.hpp"
#include "exercise_4.hpp"
using namespace std;
void ex_1();
void ex_2();
void ex_3();
void ex_4();
int main()
{
// ex_1();
// ex_2();
ex_3();
ex_4();
return 0;
}
void ex_1()
{
Parallelogram Pgrm(15.2, 9.5);
Circle Crcl(14.5);
Rectangle Rctgl(14.0, 7.1);
Square Sqre(23.3);
Rhombus Rmbs(17.4, 13.2);
vector<reference_wrapper<Figure>> f;
f.push_back(Pgrm);
f.push_back(Crcl);
f.push_back(Rctgl);
f.push_back(Sqre);
f.push_back(Rmbs);
for (reference_wrapper<Figure> c : f)
c.get().area();
/*
* Площадь параллелограмма равна 144.4
* Площадь круга равна 660.52
* Площадь прямоугольника равна 99.4
* Площадь квадрата равна 542.89
* Площадь ромба равна 229.68
*/
}
void ex_2()
{
Minivan m("Макдоналдс", "ABC");
/*
* Транспортное средство компании Макдоналдс, модель ABC
* Легковой автомобиль компании Макдоналдс, модель ABC
* Автобус компании Макдоналдс, модель ABC
* Минивэн компании Макдоналдс, модель ABC
*/
}
void ex_3()
{
Fraction a(3, 9);
Fraction b(2, 3);
Fraction c; // 0
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;
cout << "[a + b] " << a << " + " << b << " = " << a + b << endl;
cout << "[a - b] " << a << " - " << b << " = " << a - b << endl;
cout << "[a * b] " << a << " * " << b << " = " << a * b << endl;
cout << "[a / b] " << a << " / " << b << " = " << a / b << endl;
cout << "[c + b] " << c << " + " << b << " = " << c + b << endl;
cout << "[b + c] " << b << " + " << c << " = " << b + c << endl;
cout << "[c - b] " << c << " - " << b << " = " << c - b << endl;
cout << "[b - c] " << b << " - " << c << " = " << b - c << endl;
cout << "[c * b] " << c << " * " << b << " = " << c * b << endl;
cout << "[b * c] " << b << " * " << c << " = " << b * c << endl;
cout << "[c / b] " << c << " / " << b << " = " << c / b << endl;
cout << "[b / c] " << b << " / " << c << " = " << b / c << endl;
cout << "-a = " << -a << endl;
cout << "[a == b] " << a << " == " << b << " is " << ((a == b) ? "true" : "false") << endl;
cout << "[a != b] " << a << " != " << b << " is " << ((a != b) ? "true" : "false") << endl;
cout << "[a < b] " << a << " < " << b << " is " << ((a < b) ? "true" : "false") << endl;
cout << "[a <= b] " << a << " <= " << b << " is " << ((a <= b) ? "true" : "false") << endl;
cout << "[a > b] " << a << " > " << b << " is " << ((a > b) ? "true" : "false") << endl;
cout << "[a >= b] " << a << " >= " << b << " is " << ((a >= b) ? "true" : "false") << endl;
cout << "[c == a] " << c << " == " << a << " is " << ((c == a) ? "true" : "false") << endl;
cout << "[c != a] " << c << " != " << a << " is " << ((c != a) ? "true" : "false") << endl;
cout << "[c < a] " << c << " < " << a << " is " << ((c < a) ? "true" : "false") << endl;
cout << "[c <= a] " << c << " <= " << a << " is " << ((c <= a) ? "true" : "false") << endl;
cout << "[c > a] " << c << " > " << a << " is " << ((c > a) ? "true" : "false") << endl;
cout << "[c >= a] " << c << " >= " << a << " is " << ((c >= a) ? "true" : "false") << endl;
/*
* a = 3/9
* b = 2/3
* c = 0
* [a + b] 3/9 + 2/3 = 1
* [a - b] 3/9 - 2/3 = -1/3
* [a * b] 3/9 * 2/3 = 2/9
* [a / b] 3/9 / 2/3 = 1/2
* [c + b] 0 + 2/3 = 2/3
* [b + c] 2/3 + 0 = 2/3
* [c - b] 0 - 2/3 = -2/3
* [b - c] 2/3 - 0 = 2/3
* [c * b] 0 * 2/3 = 0
* [b * c] 2/3 * 0 = 0
* [c / b] 0 / 2/3 = 0
* [b / c] 2/3 / 0 = [На 0 делить нельзя!] 0
* -a = -3/9
* [a == b] 3/9 == 2/3 is false
* [a != b] 3/9 != 2/3 is true
* [a < b] 3/9 < 2/3 is true
* [a <= b] 3/9 <= 2/3 is true
* [a > b] 3/9 > 2/3 is false
* [a >= b] 3/9 >= 2/3 is false
* [c == a] 0 == 3/9 is false
* [c != a] 0 != 3/9 is true
* [c < a] 0 < 3/9 is true
* [c <= a] 0 <= 3/9 is true
* [c > a] 0 > 3/9 is false
* [c >= a] 0 >= 3/9 is false
*/
}
void ex_4()
{
}