cpp.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <array>
4 #include <initializer_list>
5 #include <iostream>
6 
7 namespace cppm {
8 
9 inline void ex1() {
10  const double x0 = 0, v0 = 10;
11  for (double t = 0; t <= 5; t++) {
12  const double x = x0 + v0 * t;
13  std::cout << "t=" << t << " s"
14  << "\tx=" << x << " m" << std::endl;
15  }
16 }
17 
18 inline void ex2() {
19  double x0;
20  std::cin >> x0;
21  std::cout << x0 << std::endl;
22 }
23 
25 {
26 private:
27  double _xmin, _xmax, _dx;
28 
29 public:
30  inline UserInput0() {}
31 
32  inline void read() {
33  std::cout << "xmin?=\t";
34  std::cin >> _xmin;
35  std::cout << "xmax?=\t";
36  std::cin >> _xmax;
37  std::cout << "dx?=\t";
38  std::cin >> _dx;
39  }
40 
41  inline void write() {
42  for (double x = _xmin; x < _xmax; x += _dx) {
43  std::cout << x << ",";
44  }
45  std::cout << std::endl;
46  }
47 
48  inline void run() {
49  char cmd = 'y';
50  while (cmd == 'y') {
51  read();
52  write();
53  do {
54  std::cout << "continue? y[yes]/n[no]" << std::endl;
55  std::cin >> cmd;
56  } while (cmd != 'y' && cmd != 'n');
57  }
58  }
59 };
60 
61 inline void ex3() {
62  UserInput0 ui0;
63  ui0.run();
64 }
65 
66 template<size_t N, size_t M>
67 class UserInput
68 {
69 private:
70  std::array<double, N> _innames;
71  std::array<double, N> _invalues;
72  std::array<double, M> _outnames;
73  std::array<double, M> _outvalues;
74 
75 public:
76  inline UserInput(std::array<double, N> innames, std::array<double, M> outnames)
77  : _innames{ innames }
78  , _outnames{ outnames } {}
79 
80  inline void read() {
81  for (size_t idx = 0; idx < N; idx++) {
82  std::cout << _innames[idx] << "? =\t";
83  std::cin >> _invalues[idx];
84  }
85  }
86 
87  inline void write() {
88  for (size_t idx = 0; idx < M; idx++) {
89  std::cout << _outnames[idx] << "=";
90  std::cout << _outvalues[idx] << "\t";
91  }
92  std::cout << std::endl;
93  }
94 
95  inline void calculate() {}
96 
97  inline void run() {
98  char cmd = 'y';
99  while (cmd == 'y') {
100  read();
101  calculate();
102  write();
103  do {
104  std::cout << "continue? y[yes]/n[no]" << std::endl;
105  std::cin >> cmd;
106  } while (cmd != 'y' && cmd != 'n');
107  }
108  }
109 };
110 
111 } // namespace cppm
void read()
Definition: cpp.h:80
void run()
Definition: cpp.h:97
void calculate()
Definition: cpp.h:95
Definition: cpp.h:7
void run()
Definition: cpp.h:48
void write()
Definition: cpp.h:87
UserInput0()
Definition: cpp.h:30
void ex1()
Definition: cpp.h:9
void read()
Definition: cpp.h:32
void ex3()
Definition: cpp.h:61
void write()
Definition: cpp.h:41
UserInput(std::array< double, N > innames, std::array< double, M > outnames)
Definition: cpp.h:76
void ex2()
Definition: cpp.h:18