Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <Windows.h>
- #include <time.h>
- #include <stdlib.h>
- #include <vector>
- class Vandenynas {
- protected: int x, y, z;
- protected: int v,n;
- public:
- Vandenynas () { }
- Vandenynas(int xx, int yy, int zz, int vv, int nn) {
- x = xx; y = yy; z = zz; v = vv; n = nn;
- }
- void ivedimas() {
- int x5, y5, z5, n5, v5;
- while (!(std::cin >> x5) || !(std::cin >> y5) || !(std::cin >> z5)) {
- std::cin.clear();
- std::cin.ignore(999, '\n');
- std::cout << "Blogai ivesti duomenys. Iveskite per naujo. " << '\n';
- }
- // vandenyno matmenys.
- while (true) {
- if (x5 < 10 || y5 < 10 || z5 < 10) {
- std::cout << "Blogai ivesti duomenys , iveskite is naujo. " << '\n';
- std::cin >> x5 >> y5 >> z5;
- }
- else {
- break;
- }
- }
- //system("cls");
- std::cout << "Duomenys: " << '\n';
- std::cout << "ilgis: " << x5 << " " << "plotis: " << y5 << " " << "aukstis: " << z5;
- x = x5; y = y5; z = z5;
- std::cout << '\n';
- std::cout << "Iveskite tekmes krypti (1- tekme x asyje i +begalybe; 2- tekme x asyje i -begalybe; 3- tekme y asyje i +begalybe; 4- tekme y asyje i -begalybe" << '\n';
- std::cout << '\n';
- while (!(std::cin>> n5)) {
- std::cin.clear();
- std::cin.ignore(999, '\n');
- std::cout << "Blogai ivesti duomenys. Iveskite per naujo. " << '\n';
- }
- while (true) {
- if (n5 > 4 || n5 < 1)
- {
- std::cout << "Blogas pasirinkimas. Iveskite dar karta. " << '\n';
- std::cin >> n5;
- }
- else {
- break;
- }
- }
- n = n5;
- std::cout << '\n';
- std::cout << "Dabar iveskite vandens tekmes greiti(m/s)(MAX:10m/s) : " << '\n';
- while (!(std::cin >> v5 )) {
- std::cin.clear();
- std::cin.ignore(999, '\n');
- std::cout << "Blogai ivesti duomenys. Iveskite per naujo. " << '\n';
- }
- v = v5;
- }
- };
- class Zuvys :public Vandenynas
- {
- private: int x2, y2, z2;
- int v2,t;
- public:
- Zuvys(): Vandenynas() { }
- Zuvys(int a, int b, int c, int d,int h): Vandenynas(x,y,z,v,n) {
- x2 = a; y2 = b; z2 = c; v2 = d; t = h;
- }
- void ivedimas2() {
- //srand(time(NULL));
- int x3, y3, z3;
- x3 = rand() % x + 1;
- y3 = rand() % y + 1;
- z3 = rand() % z + 1;
- x2 = x3; y2 = y3; z2 = z3;
- std::cout << "Zuvies koordinates: " << '/n';
- std::cout << x2 << " " << y2 << " " << z2;
- }
- void ivedimas3() { // laiko ivedimas.
- int vv, t2;
- std::cout << "Iveskite zuvu judejimo greiti ir laiko intervala. " << '\n';
- while (!(std::cin >> vv)||!(std::cin >> t2)) {
- std::cin.clear();
- std::cin.ignore(999, '\n');
- std::cout << "Blogai ivesti duomenys. Iveskite per naujo. " << '\n';
- }
- v2 = vv;
- t = t2;
- }
- void judejimas() {
- int m, l;
- srand(time(NULL));
- // n - juros sroves kryptis( 1- x asimi i pliusa, 2 - x asimi i minusa, 3- y asimi i pliusa, 4- y asimi i minusa.)
- m = rand() % 3 + 1; // zuvies judejimo kryptis pagal kuria asi;
- l = rand() % 2 + 1; // zuvies judejimo kryptis (ar i pliusa ar i minusa)
- if (m == 1) { // x asies judejimas
- if (n == 1||n==2) {
- if (l == 1 && n == 1)
- {
- if (x <= (x2 + (v2 + v) * t)||1> (x2 + (v2 + v) * t)) // neleidzia zuviai isplaukt is vandenyno.
- {
- x2 = x;
- }
- else {
- x2 = x2 + (v2 + v) * t;
- }
- }
- else if (l == 1 && n == 2)
- {
- if (x <= (x2 + (v2 - v) * t)||1> (x2+(v2 - v) * t)) // neleidzia zuviai isplaukt is vandenyno.
- {
- x2 = x;
- }
- else {
- x2 = x2 + (v2 - v) * t;
- }
- }
- else if (l == 2 && n == 1)
- {
- if (x <= (x2 - (v2 - v) * t)||1> (x2 - (v2 - v) * t)) // neleidzia zuviai isplaukt is vandenyno.
- {
- x2 = x;
- }
- else {
- x2 = x2 - (v2 - v) * t;
- }
- }
- else if (l == 2 && n == 2)
- {
- if (x <= (x2 - (v2 + v) * t)||1> (x2 - (v2 + v) * t)) // neleidzia zuviai isplaukt is vandenyno.
- {
- x2 = y;
- }
- else {
- x2 = y2 - (v2 + v) * t;
- }
- }
- }
- else {
- if (l == 1)
- {
- if (x <= (x2 + v2 * t)||1> (x2 + v2 * t)) // neleidzia zuviai isplaukt is vandenyno.
- {
- x2 = x;
- }
- else {
- x2 = x2 + v2 * t;
- }
- }
- else if (l == 2)
- {
- if (x <= (x2 - v2 * t)||1> (x2 - v2 * t)) // neleidzia zuviai isplaukt is vandenyno.
- {
- x2 = x;
- }
- else {
- x2 = x2 - v2 * t;
- }
- }
- }
- }
- if (m == 2) { // y asies judejimas
- if (n == 3 || n == 4) {
- if (l == 1 && n == 3)
- {
- if (y <= (y2 + (v2 + v) * t)||1> (y2 + (v2 + v) * t)) // neleidzia zuviai isplaukt is vandenyno.
- {
- y2 = y;
- }
- else {
- y2 = y2 + (v2 + v) * t;
- }
- }
- else if (l == 1 && n == 4)
- {
- if (y <= (y2 + (v2 - v) * t)||1> (y2 + (v2 - v) * t)) // neleidzia zuviai isplaukt is vandenyno.
- {
- y2 = y;
- }
- else {
- y2 = y2 + (v2 - v) * t;
- }
- }
- else if (l == 2 && n == 3)
- {
- if (y <= (y2 - (v2 + v) * t)||1> (y2 - (v2 + v) * t)) // neleidzia zuviai isplaukt is vandenyno.
- {
- y2 = y;
- }
- else {
- y2 = y2 - (v2 + v) * t;
- }
- }
- else if (l == 2 && n == 4)
- {
- if (y <= (y2 - (v2 - v) * t)||1> (y2 - (v2 - v) * t)) // neleidzia zuviai isplaukt is vandenyno.
- {
- y2 = y;
- }
- else {
- y2 = y2 - (v2 - v) * t;
- }
- }
- }
- else {
- if (l == 1)
- {
- if (y <= (y2 + v2 * t)||1>(y2+v2*t)) // neleidzia zuviai isplaukt is vandenyno.
- {
- y2 = y;
- }
- else {
- y2 = y2 + v2 * t;
- }
- }
- else if (l == 2)
- {
- if (y <= (y2 - v2 * t)||1> (y2 - v2 * t)) // neleidzia zuviai isplaukt is vandenyno.
- {
- y2 = y;
- }
- else {
- y2 = y2 - v2 * t;
- }
- }
- }
- }
- if (m == 3) { // z asies judejimas
- if (l == 1)
- {
- if (z <= (z2 + v2 * t)||1>(z2 - v2 * t)) // neleidzia zuviai isplaukt is vandenyno.
- {
- z2 = z;
- }
- else {
- z2 = z2 + v2 * t;
- }
- }
- else if (l == 2)
- {
- if (z <= (z2 - v2 * t)|| 1>(z2 - v2 * t)) // neleidzia zuviai isplaukt is vandenyno.
- {
- z2 = z;
- }
- else {
- z2 = z2 - v2 * t;
- }
- }
- }
- }
- };
- int main() {
- Zuvys duom(0, 0, 0, 0, 0);
- int sk;
- std::vector<Zuvys> duomenys;
- std::cout << "Sveiki , cia programa Vandenynas. " << '\n';
- std::cout << '\n';
- std::cout << "*****************" << '\n';
- std::cout << '\n';
- std::cout << "Iveskite vandenyno matmenis (x,y,z) (MIN:10)" << '\n';
- std::cout << '\n';
- duom.ivedimas();
- std::cout << '\n';
- duom.ivedimas3();
- std::cout << '\n';
- duom.ivedimas2();
- std::cout << '\n';
- std::cout << "Iveskite norimu zuvu skaiciu,kad programa automatiskai sugeneruotu zuvu koordinates. " << '\n';
- std::cin >> sk;
- //for (int i = 0; i < sk; i++) {
- // duomenys.push_back(duom.ivedimas2);
- //}
- //std::cout << '\n';
- std::cout << "Iveskite zuvu judejimo greiti ir laiko intervala. " << '\n';
- //duom.ivedimas3;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement