Advertisement
ara1123

akjbqvgqrjhba

Sep 28th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.45 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <math.h>
  4. using namespace std;
  5.  
  6. void addArray(double[], double[], int);
  7. void addVector(vector<double> &Numbers, vector<double> &Numbers2, int);
  8. void subtractArray(double[], double[], int);
  9. void subtractVector(vector<double> &Numbers, vector<double> &Numbers2, int);
  10. void magnitudeArray(double[], int);
  11. void magnitudeVector(vector<double> &Numbers, int);
  12. void dotArray(double[], double[], int);
  13. void dotVector(vector<double> &Numbers, vector<double> &Numbers2);
  14. void crossArray(double[], double[], int);
  15. void crossVector(vector<double> &Numbers, vector<double> &Numbers2, int);
  16.  
  17.  
  18. void addArray(double a1[], double a2[], int size)
  19. {
  20. int ans[size] = { 0 };
  21.  
  22. for (int c = 0; c < size; c++)
  23. {
  24. ans[c] = a1[c] + a2[c];
  25. }
  26.  
  27. cout << "Array Result: " << endl;
  28. switch (size)
  29. {
  30. case 1:
  31. cout << "i: ";
  32. cout << ans[0] << endl;
  33. break;
  34.  
  35. case 2:
  36. cout << "i: ";
  37. cout << ans[0] << endl;
  38. cout << "j: ";
  39. cout << ans[1] << endl;
  40. break;
  41.  
  42. case 3:
  43. cout << "i: ";
  44. cout << ans[0] << endl;
  45. cout << "j: ";
  46. cout << ans[1] << endl;
  47. cout << "k: ";
  48. cout << ans[2] << endl;
  49. break;
  50. }
  51.  
  52.  
  53. }
  54.  
  55.  
  56. void addVector(vector<double> &Numbers, vector<double> &Numbers2, int size)
  57. {
  58. vector<double> ans(Numbers.size());
  59.  
  60. switch (size)
  61. {
  62. case 1:
  63. ans[0] = Numbers[0] + Numbers2[0];
  64. break;
  65.  
  66. case 2:
  67. ans[0] = Numbers[0] + Numbers2[0];
  68. ans[1] = Numbers[1] + Numbers2[1];
  69. break;
  70.  
  71. case 3:
  72. ans[0] = Numbers[0] + Numbers2[0];
  73. ans[1] = Numbers[1] + Numbers2[1];
  74. ans[2] = Numbers[2] + Numbers2[2];
  75. break;
  76. }
  77.  
  78.  
  79. cout << "Vector Result: " << endl;
  80.  
  81. switch (Numbers.size())
  82. {
  83. case 1:
  84. cout << "i: ";
  85. cout << ans[0] << endl;
  86. break;
  87.  
  88. case 2:
  89. cout << "i: ";
  90. cout << ans[0] << endl;
  91. cout << "j: ";
  92. cout << ans[1] << endl;
  93. break;
  94.  
  95. case 3:
  96. cout << "i: ";
  97. cout << ans[0] << endl;
  98. cout << "j: ";
  99. cout << ans[1] << endl;
  100. cout << "k: ";
  101. cout << ans[2] << endl;
  102. break;
  103. }
  104. }
  105.  
  106.  
  107. void subtractArray(double a1[], double a2[], int size)
  108. {
  109. int ans[size] = { 0 };
  110.  
  111. for (int c = 0; c < size; c++)
  112. {
  113. ans[c] = a1[c] - a2[c];
  114. }
  115.  
  116. cout << "Array Result: " << endl;
  117. switch (size)
  118. {
  119. case 1:
  120. cout << "i: ";
  121. cout << ans[0] << endl;
  122. break;
  123.  
  124. case 2:
  125. cout << "i: ";
  126. cout << ans[0] << endl;
  127. cout << "j: ";
  128. cout << ans[1] << endl;
  129. break;
  130.  
  131. case 3:
  132. cout << "i: ";
  133. cout << ans[0] << endl;
  134. cout << "j: ";
  135. cout << ans[1] << endl;
  136. cout << "k: ";
  137. cout << ans[2] << endl;
  138. break;
  139. }
  140.  
  141.  
  142. }
  143.  
  144.  
  145. void subtractVector(vector<double> &Numbers, vector<double> &Numbers2, int size)
  146. {
  147. vector<double> ans(Numbers.size());
  148.  
  149. switch (size)
  150. {
  151. case 1:
  152. ans[0] = Numbers[0] - Numbers2[0];
  153. break;
  154.  
  155. case 2:
  156. ans[0] = Numbers[0] - Numbers2[0];
  157. ans[1] = Numbers[1] - Numbers2[1];
  158. break;
  159.  
  160. case 3:
  161. ans[0] = Numbers[0] - Numbers2[0];
  162. ans[1] = Numbers[1] - Numbers2[1];
  163. ans[2] = Numbers[2] - Numbers2[2];
  164. break;
  165. }
  166.  
  167.  
  168. cout << "Vector Result: " << endl;
  169.  
  170. switch (Numbers.size())
  171. {
  172. case 1:
  173. cout << "i: ";
  174. cout << ans[0] << endl;
  175. break;
  176.  
  177. case 2:
  178. cout << "i: ";
  179. cout << ans[0] << endl;
  180. cout << "j: ";
  181. cout << ans[1] << endl;
  182. break;
  183.  
  184. case 3:
  185. cout << "i: ";
  186. cout << ans[0] << endl;
  187. cout << "j: ";
  188. cout << ans[1] << endl;
  189. cout << "k: ";
  190. cout << ans[2] << endl;
  191. break;
  192. }
  193. }
  194.  
  195.  
  196. void magnitudeArray(double a1[], int size)
  197. {
  198. double ans = 0;
  199. int a = 0;
  200.  
  201. switch (size)
  202. {
  203. case 1:
  204. a = pow(a1[0], 2);
  205. break;
  206.  
  207. case 2:
  208. a = pow(a1[0], 2) + pow(a1[1], 2);
  209. break;
  210.  
  211. case 3:
  212. a = pow(a1[0], 2) + pow(a1[1], 2) + pow(a1[2], 2);
  213. break;
  214. }
  215.  
  216. ans = sqrt(a);
  217.  
  218. cout << "Array Result: " << endl;
  219. cout << ans << endl;
  220. }
  221.  
  222.  
  223. void magnitudeVector(vector<double> &Numbers, int size)
  224. {
  225. double ans = 0;
  226. int a = 0;
  227.  
  228. switch (size)
  229. {
  230. case 1:
  231. a = pow(Numbers[0], 2);
  232. break;
  233.  
  234. case 2:
  235. a = pow(Numbers[0], 2) + pow(Numbers[1], 2);
  236. break;
  237.  
  238. case 3:
  239. a = pow(Numbers[0], 2) + pow(Numbers[1], 2) + pow(Numbers[2], 2);
  240. break;
  241. }
  242.  
  243. ans = sqrt(a);
  244.  
  245. cout << "Vector Result: " << endl;
  246. cout << ans << endl;
  247. }
  248.  
  249.  
  250. void dotArray(double a1[], double a2[], int size)
  251. {
  252. int ans = 0;
  253.  
  254. for (int c = 0; c < size; c++)
  255. {
  256. ans += ((a1[c]) * (a2[c]));
  257. }
  258.  
  259. cout << "Array Result: ";
  260. cout << ans << endl;
  261.  
  262. }
  263.  
  264.  
  265. void dotVector(vector<double> &Numbers, vector<double> &Numbers2)
  266. {
  267. int ans = 0;
  268.  
  269. for (int c = 0; c < Numbers.size(); c++)
  270. {
  271. ans += ((Numbers[c]) * (Numbers2[c]));
  272. }
  273.  
  274. cout << "Vector Result: ";
  275. cout << ans << endl;
  276.  
  277. }
  278.  
  279.  
  280. void crossArray(double a1[], double a2[], int size)
  281. {
  282. int ans[3] = { 0 };
  283.  
  284. ans[0] = (a1[1] * a2[2]) - (a1[2] * a2[1]);
  285. ans[1] = (a1[0] * a2[2]) - (a1[2] * a2[0]);
  286. ans[2] = (a1[0] * a2[1]) - (a1[1] * a2[0]);
  287.  
  288.  
  289. cout << "Array Result: " << endl;
  290. cout << "i: " << ans[0] << endl;
  291. cout << "j: " << ans[1] << endl;
  292. cout << "k: " << ans[2] << endl;
  293. }
  294.  
  295.  
  296. void crossVector(vector<double> &Numbers, vector<double> &Numbers2, int size)
  297. {
  298. int ans[3] = { 0 };
  299.  
  300. ans[0] = (Numbers[1] * Numbers2[2]) - (Numbers[2] * Numbers2[1]);
  301. ans[1] = (Numbers[0] * Numbers2[2]) - (Numbers[2] * Numbers2[0]);
  302. ans[2] = (Numbers[0] * Numbers2[1]) - (Numbers[1] * Numbers2[0]);
  303.  
  304. cout << "Vector Result: " << endl;
  305. cout << "i: " << ans[0] << endl;
  306. cout << "j: " << ans[1] << endl;
  307. cout << "k: " << ans[2] << endl;
  308. }
  309.  
  310.  
  311. int main()
  312. {
  313.  
  314.  
  315.  
  316. int op = 0;
  317. int input = 0;
  318. int S = 0;
  319.  
  320.  
  321. cout << "Please enter number of vector components: ";
  322. cin >> S;
  323.  
  324.  
  325. vector<double> Numbers(S); //Vector used for all operations
  326. vector<double> Numbers2(S); //Vector specifically used for everything aside from magnitude
  327. double Array1[S] = { 0 }; //Array for all operations
  328. double Array2[S] = { 0 }; //Array specifically used for everything aside from magnitude
  329.  
  330.  
  331. cout << "Operations Available:" << endl;
  332. cout << "(0) Addition" << endl;
  333. cout << "(1) Subtraction" << endl;
  334. cout << "(2) Magnitude" << endl;
  335. cout << "(3) Dot Product" << endl;
  336. cout << "(4) Cross Product" << endl;
  337. cout << "Please select an operation: ";
  338. cin >> op;
  339.  
  340. switch (op)
  341. {
  342. case 0:
  343. cout << "Enter Component Values of Vector 1" << endl;
  344. switch (S)
  345. {
  346. case 1:
  347. cout << "i: ";
  348. cin >> input;
  349. Numbers[0] = input;
  350. Array1[0] == input;
  351. break;
  352. case 2:
  353. cout << "i: ";
  354. cin >> input;
  355. Numbers[0] = input;
  356. Array1[0] = input;
  357. cout << "j: ";
  358. cin >> input;
  359. Numbers[1] = input;
  360. Array1[1] = input;
  361. break;
  362.  
  363. case 3:
  364. cout << "i: ";
  365. cin >> input;
  366. Numbers[0] = input;
  367. Array1[0] = input;
  368. cout << "j: ";
  369. cin >> input;
  370. Numbers[1] = input;
  371. Array1[1] = input;
  372. cout << "k: ";
  373. cin >> input;
  374. Numbers[2] = input;
  375. Array1[2] = input;
  376. break;
  377. }
  378.  
  379. cout << "Enter Component Values of Vector 2" << endl;
  380. switch (S)
  381. {
  382. case 1:
  383. cout << "i: ";
  384. cin >> input;
  385. Numbers2[0] = input;
  386. Array2[0] = input;
  387. break;
  388.  
  389. case 2:
  390. cout << "i: ";
  391. cin >> input;
  392. Numbers2[0] = input;
  393. Array2[0] = input;
  394. cout << "j: ";
  395. cin >> input;
  396. Numbers2[1] = input;
  397. Array2[1] = input;
  398. break;
  399.  
  400. case 3:
  401. cout << "i: ";
  402. cin >> input;
  403. Numbers[0] = input;
  404. Array2[0] = input;
  405. cout << "j: ";
  406. cin >> input;
  407. Numbers2[1] = input;
  408. Array2[1] = input;
  409. cout << "k: ";
  410. cin >> input;
  411. Numbers2[2] = input;
  412. Array2[2] = input;
  413. break;
  414. }
  415.  
  416. addArray(Array1, Array2, S);
  417. addVector(Numbers, Numbers2, S);
  418.  
  419. break;
  420.  
  421. case 1:
  422. cout << "Enter Component Values of Vector 1" << endl;
  423. switch (S)
  424. {
  425. case 1:
  426. cout << "i: ";
  427. cin >> input;
  428. Numbers[0] = input;
  429. Array1[0] = input;
  430. break;
  431. case 2:
  432. cout << "i: ";
  433. cin >> input;
  434. Numbers[0] = input;
  435. Array1[0] = input;
  436. cout << "j: ";
  437. cin >> input;
  438. Numbers[1] = input;
  439. Array1[1] = input;
  440. break;
  441.  
  442. case 3:
  443. cout << "i: ";
  444. cin >> input;
  445. Numbers[0] = input;
  446. Array1[0] = input;
  447. cout << "j: ";
  448. cin >> input;
  449. Numbers[1] = input;
  450. Array1[1] = input;
  451. cout << "k: ";
  452. cin >> input;
  453. Numbers[2] = input;
  454. Array1[2] = input;
  455. break;
  456. }
  457.  
  458. cout << "Enter Component Values of Vector 2" << endl;
  459. switch (S)
  460. {
  461. case 1:
  462. cout << "i: ";
  463. cin >> input;
  464. Numbers2[0] = input;
  465. Array2[0] = input;
  466. break;
  467.  
  468. case 2:
  469. cout << "i: ";
  470. cin >> input;
  471. Numbers2[0] = input;
  472. Array2[0] = input;
  473. cout << "j: ";
  474. cin >> input;
  475. Numbers2[1] = input;
  476. Array2[1] = input;
  477. break;
  478.  
  479. case 3:
  480. cout << "i: ";
  481. cin >> input;
  482. Numbers[0] = input;
  483. Array2[0] = input;
  484. cout << "j: ";
  485. cin >> input;
  486. Numbers2[1] = input;
  487. Array2[1] = input;
  488. cout << "k: ";
  489. cin >> input;
  490. Numbers2[2] = input;
  491. Array2[2] = input;
  492. break;
  493. }
  494.  
  495. subtractArray(Array1, Array2, S);
  496. subtractVector(Numbers, Numbers2, S);
  497.  
  498. break;
  499.  
  500. case 2:
  501. cout << "Enter Component Values of Vector 1" << endl;
  502. switch (S)
  503. {
  504. case 1:
  505. cout << "i: ";
  506. cin >> input;
  507. Numbers[0] = input;
  508. Array1[0] = input;
  509. break;
  510. case 2:
  511. cout << "i: ";
  512. cin >> input;
  513. Numbers[0] = input;
  514. Array1[0] = input;
  515. cout << "j: ";
  516. cin >> input;
  517. Numbers[1] = input;
  518. Array1[1] = input;
  519. break;
  520.  
  521. case 3:
  522. cout << "i: ";
  523. cin >> input;
  524. Numbers[0] = input;
  525. Array1[0] = input;
  526. cout << "j: ";
  527. cin >> input;
  528. Numbers[1] = input;
  529. Array1[1] = input;
  530. cout << "k: ";
  531. cin >> input;
  532. Numbers[2] = input;
  533. Array1[2] = input;
  534. break;
  535. }
  536.  
  537. magnitudeArray(Array1, S);
  538. magnitudeVector(Numbers, S);
  539.  
  540. break;
  541.  
  542. case 3:
  543. cout << "Enter Component Values of Vector 1" << endl;
  544. switch (S)
  545. {
  546. case 1:
  547. cout << "i: ";
  548. cin >> input;
  549. Numbers[0] = input;
  550. Array1[0] = input;
  551. break;
  552. case 2:
  553. cout << "i: ";
  554. cin >> input;
  555. Numbers[0] = input;
  556. Array1[0] = input;
  557. cout << "j: ";
  558. cin >> input;
  559. Numbers[1] = input;
  560. Array1[1] = input;
  561. break;
  562.  
  563. case 3:
  564. cout << "i: ";
  565. cin >> input;
  566. Numbers[0] = input;
  567. Array1[0] = input;
  568. cout << "j: ";
  569. cin >> input;
  570. Numbers[1] = input;
  571. Array1[1] = input;
  572. cout << "k: ";
  573. cin >> input;
  574. Numbers[2] = input;
  575. Array1[2] = input;
  576. break;
  577. }
  578.  
  579. cout << "Enter Component Values of Vector 2" << endl;
  580. switch (S)
  581. {
  582. case 1:
  583. cout << "i: ";
  584. cin >> input;
  585. Numbers2[0] = input;
  586. Array2[0] = input;
  587. break;
  588.  
  589. case 2:
  590. cout << "i: ";
  591. cin >> input;
  592. Numbers2[0] = input;
  593. Array2[0] = input;
  594. cout << "j: ";
  595. cin >> input;
  596. Numbers2[1] = input;
  597. Array2[1] = input;
  598. break;
  599.  
  600. case 3:
  601. cout << "i: ";
  602. cin >> input;
  603. Numbers[0] = input;
  604. Array2[0] = input;
  605. cout << "j: ";
  606. cin >> input;
  607. Numbers2[1] = input;
  608. Array2[1] = input;
  609. cout << "k: ";
  610. cin >> input;
  611. Numbers2[2] = input;
  612. Array2[2] = input;
  613. break;
  614. }
  615.  
  616.  
  617. dotArray(Array1, Array2, S);
  618. dotVector(Numbers, Numbers2);
  619.  
  620. break;
  621.  
  622. case 4:
  623. cout << "Enter Component Values of Vector 1" << endl;
  624. switch (S)
  625. {
  626. case 1:
  627. cout << "i: ";
  628. cin >> input;
  629. Numbers[0] = input;
  630. Array1[0] = input;
  631. break;
  632. case 2:
  633. cout << "i: ";
  634. cin >> input;
  635. Numbers[0] = input;
  636. Array1[0] = input;
  637. cout << "j: ";
  638. cin >> input;
  639. Numbers[1] = input;
  640. Array1[1] = input;
  641. break;
  642.  
  643. case 3:
  644. cout << "i: ";
  645. cin >> input;
  646. Numbers[0] = input;
  647. Array1[0] = input;
  648. cout << "j: ";
  649. cin >> input;
  650. Numbers[1] = input;
  651. Array1[1] = input;
  652. cout << "k: ";
  653. cin >> input;
  654. Numbers[2] = input;
  655. Array1[2] = input;
  656. break;
  657. }
  658.  
  659. cout << "Enter Component Values of Vector 2" << endl;
  660. switch (S)
  661. {
  662. case 1:
  663. cout << "i: ";
  664. cin >> input;
  665. Numbers2[0] = input;
  666. Array2[0] = input;
  667. break;
  668.  
  669. case 2:
  670. cout << "i: ";
  671. cin >> input;
  672. Numbers2[0] = input;
  673. Array2[0] = input;
  674. cout << "j: ";
  675. cin >> input;
  676. Numbers2[1] = input;
  677. Array2[1] = input;
  678. break;
  679.  
  680. case 3:
  681. cout << "i: ";
  682. cin >> input;
  683. Numbers[0] = input;
  684. Array2[0] = input;
  685. cout << "j: ";
  686. cin >> input;
  687. Numbers2[1] = input;
  688. Array2[1] = input;
  689. cout << "k: ";
  690. cin >> input;
  691. Numbers2[2] = input;
  692. Array2[2] = input;
  693. break;
  694. }
  695.  
  696. crossArray(Array1, Array2, S);
  697. crossVector(Numbers, Numbers2, S);
  698.  
  699. break;
  700.  
  701. }
  702.  
  703. cout << "Would you like to try again? Y/N? ";
  704.  
  705.  
  706.  
  707.  
  708. return 0;
  709. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement