Advertisement
harissel22

Untitled

May 18th, 2019
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.69 KB | None | 0 0
  1. /*
  2. TP 16/17 (Tutorijal 9, Zadatak 3)
  3.  
  4. Testove pisao Kenan Ekinovic. Za sva pitanja, sugestije
  5. i zalbe obratiti se na mail: kekinovic1@etf.unsa.ba
  6.  
  7. Vrsit ce se provjera na prepisivanje tutorijala.
  8. */
  9. #include <iostream>
  10. #include <cmath>
  11.  
  12. class Vektor3d
  13. {
  14. double koordinate[3];
  15. mutable int x=0;
  16. public:
  17. void Postavi(double x,double y,double z) {
  18. Vektor3d::koordinate[0]=x;
  19. Vektor3d::koordinate[1]=y;
  20. Vektor3d::koordinate[2]=z;
  21. }
  22. void Ocitaj(double &x, double &y, double &z) const {
  23. x = Vektor3d::koordinate[0];
  24. y =Vektor3d::koordinate[1];
  25. z = Vektor3d::koordinate[2];
  26. }
  27. void Ispisi() const {
  28. std::cout << "{" << koordinate[0] << "," << koordinate[1] << "," << koordinate[2] << "}";
  29. x=x+1;
  30. }
  31. double DajX() const {
  32. return koordinate[0];
  33. }
  34. double DajY() const {
  35. return koordinate[1];
  36. }
  37. double DajZ() const {
  38. return koordinate[2];
  39. }
  40. int DajBrojIspisa() const {
  41. return x;
  42. }
  43. double DajDuzinu() const {
  44. return sqrt(koordinate[0] * koordinate[0] + koordinate[1] * koordinate[1] + koordinate[2] * koordinate[2]);
  45. }
  46. Vektor3d &PomnoziSaSkalarom(double s) {
  47. koordinate[0] *= s;
  48. koordinate[1] *= s;
  49. koordinate[2] *= s;
  50. return *this;
  51. }
  52. Vektor3d &SaberiSa(const Vektor3d &v) {
  53. koordinate[0] += v.koordinate[0];
  54. koordinate[1] += v.koordinate[1];
  55. koordinate[2] += v.koordinate[2];
  56. return *this;
  57. }
  58. void PostaviX(double x) {
  59. Vektor3d::koordinate[0]=x;
  60. }
  61. void PostaviY(double y) {
  62. Vektor3d::koordinate[1]=y;
  63. }
  64. void PostaviZ(double z) {
  65. Vektor3d::koordinate[2]=z;
  66. }
  67. friend Vektor3d ZbirVektora(const Vektor3d &v1, const Vektor3d &v2) {
  68. Vektor3d v3;
  69. v3.koordinate[0]=v1.koordinate[0]+v2.koordinate[0];
  70. v3.koordinate[1]=v1.koordinate[1]+v2.koordinate[1];
  71. v3.koordinate[2]=v1.koordinate[2]+v2.koordinate[2];
  72. return v3;
  73. }
  74.  
  75. };
  76. int main ()
  77. {
  78. Vektor3d v1, v2;
  79. v1.Postavi(3, 4, 2);
  80. v2.Postavi(2, 0, 5);
  81. v1.Ispisi();
  82. v1.Ispisi();
  83. v1.Ispisi();
  84. v2.Ispisi();
  85. v2.Ispisi();
  86. std::cout << std::endl;
  87. std::cout << "Objekat v1 je ispisan " << v1.DajBrojIspisa()<< " puta , a objekat v2 " << v2.DajBrojIspisa() << " puta" << std::endl;
  88. return 0;
  89. }
  90.  
  91.  
  92.  
  93. /*
  94. TP 16/17 (Tutorijal 9, Zadatak 4)
  95.  
  96. Testove pisao Kenan Ekinovic. Za sva pitanja, sugestije
  97. i zalbe obratiti se na mail: kekinovic1@etf.unsa.ba
  98.  
  99. Vrsit ce se provjera na prepisivanje tutorijala.
  100. */
  101. #include <iostream>
  102. #include <stdexcept>
  103. #include <iomanip>
  104. class Sat
  105. {
  106. int sati,minute,sekunde;
  107. static int PretvoriUSekunde(int h, int m, int s) {
  108. return h*3600+m*60+s;
  109. }
  110. void PretvoriUNormalno (int brojsekundi);
  111. public:
  112. static bool DaLiJeIspravno(int h, int m, int s) {
  113. return (h>=0 && h<=24 && m<=59 && m>=0 && s<=59 && s>=0);
  114. }
  115. Sat& Postavi(int h, int m, int s);
  116. Sat& PostaviNormalizirano(int h, int m, int s);
  117. Sat& Sljedeci();
  118. Sat& Prethodni();
  119. Sat& PomjeriZa(int brojsekundi);
  120. void Ispisi() const;
  121. int DajSate() const {
  122. return sati;
  123. }
  124. int DajMinute() const {
  125. return minute;
  126. }
  127. int DajSekunde() const {
  128. return sekunde;
  129. }
  130. friend int BrojSekundiIzmedju(const Sat &sat1, const Sat &sat2);
  131. static int Razmak(const Sat &sat1, const Sat &sat2);
  132. };
  133. int main ()
  134. {
  135. Sat sat;
  136. sat.Postavi(23,59,59);
  137. sat.Sljedeci();
  138. sat.Ispisi();
  139. sat.Prethodni();
  140. sat.Ispisi();
  141. sat.PomjeriZa(-15);
  142. sat.Ispisi();
  143. std::cout<<sat.DajSate()<<"--"<<sat.DajMinute()<<"--"<<sat.DajSekunde();
  144. Sat sat2;
  145. sat2.PostaviNormalizirano(0,0,-15);
  146. std::cout<<BrojSekundiIzmedju(sat,sat2);
  147. return 0;
  148. }
  149.  
  150.  
  151. // Implementacija
  152. void Sat::PretvoriUNormalno(int brojsekundi)
  153. {
  154. if (brojsekundi<0) {
  155. do {
  156. brojsekundi+=86400;
  157. } while(brojsekundi<0);
  158. }
  159. brojsekundi=brojsekundi%86400;
  160. sati=brojsekundi/3600;
  161. brojsekundi=brojsekundi-sati*3600;
  162. minute=brojsekundi/60;
  163. brojsekundi=brojsekundi-minute*60;
  164. sekunde=brojsekundi;
  165. }
  166. Sat& Sat::Postavi(int h, int m, int s)
  167. {
  168. if (!DaLiJeIspravno(h,m,s)) throw std::domain_error("Neispravno vrijeme");
  169. sati=h;
  170. minute=m;
  171. sekunde=s;
  172. return *this;
  173. }
  174. Sat& Sat::PostaviNormalizirano(int h, int m, int s)
  175. {
  176. PretvoriUNormalno(PretvoriUSekunde(h,m,s));
  177. return *this;
  178. }
  179. Sat& Sat::Sljedeci()
  180. {
  181. PretvoriUNormalno(PretvoriUSekunde(sati,minute,sekunde)+1);
  182. return *this;
  183. }
  184. Sat& Sat::Prethodni()
  185. {
  186. PretvoriUNormalno(PretvoriUSekunde(sati,minute,sekunde)-1);
  187. return *this;
  188. }
  189. Sat& Sat::PomjeriZa(int brojsekundi)
  190. {
  191. PretvoriUNormalno(PretvoriUSekunde(sati,minute,sekunde)+brojsekundi);
  192. return *this;
  193. }
  194. void Sat::Ispisi() const
  195. {
  196. std::cout<<std::setw(2)<<std::setfill('0')<<sati<<":"<<std::setw(2)<<minute<<":"<<std::setw(2)<<sekunde;
  197. }
  198. int BrojSekundiIzmedju(const Sat &sat1, const Sat &sat2)
  199. {
  200. return Sat::PretvoriUSekunde(sat1.sati,sat1.minute,sat1.sekunde)-Sat::PretvoriUSekunde(sat2.sati,sat2.minute,sat2.sekunde);
  201. }
  202. int Sat::Razmak(const Sat &sat1, const Sat &sat2)
  203. {
  204. return PretvoriUSekunde(sat1.DajSate(),sat1.DajMinute(),sat1.DajSekunde())-PretvoriUSekunde(sat2.DajSate(),sat2.DajMinute(),sat2.DajSekunde());
  205. }
  206.  
  207. ----
  208. /*
  209. TP 16/17 (Tutorijal 9, Zadatak 5)
  210.  
  211. Testove pisao Kenan Ekinovic. Za sva pitanja, sugestije
  212. i zalbe obratiti se na mail: kekinovic1@etf.unsa.ba
  213.  
  214. Vrsit ce se provjera na prepisivanje tutorijala.
  215. */
  216. #include <iostream>
  217. #include <stdexcept>
  218. #include <iomanip>
  219. #include <vector>
  220.  
  221. class Sat
  222. {
  223. int brojsekundi;
  224. void KorektanBrojSekundi();
  225. public:
  226. static bool DaLiJeIspravno(int h, int m, int s) {
  227. return (h>=0 && h<24 && m<=59 && m>=0 && s<=59 && s>=0);
  228. }
  229. Sat& Postavi(int h, int m, int s);
  230. Sat& PostaviNormalizirano(int h, int m, int s);
  231. Sat& Sljedeci();
  232. Sat& Prethodni();
  233. Sat& PomjeriZa(int brojsekundi);
  234. void Ispisi() const;
  235. int DajSate() const {
  236. return brojsekundi/3600;
  237. }
  238. int DajMinute() const {
  239. return (brojsekundi-DajSate()*3600)/60;
  240. }
  241. int DajSekunde() const {
  242. return brojsekundi-DajSate()*3600-DajMinute()*60;
  243. }
  244. friend int BrojSekundiIzmedju(const Sat &sat1, const Sat &sat2);
  245. static int Razmak(const Sat &sat1, const Sat &sat2);
  246. };
  247. int main ()
  248. {
  249. Sat sat;
  250. sat.Postavi(23,59,59);
  251. sat.Sljedeci();
  252. sat.Ispisi();
  253. sat.Prethodni();
  254. sat.Ispisi();
  255. sat.PomjeriZa(-15);
  256. sat.Ispisi();
  257. std::cout<<sat.DajSate()<<"--"<<sat.DajMinute()<<"--"<<sat.DajSekunde();
  258. Sat sat2;
  259. sat2.PostaviNormalizirano(0,0,-15);
  260. std::cout<<BrojSekundiIzmedju(sat,sat2);
  261. return 0;
  262. }
  263.  
  264.  
  265. // Implementacija
  266. void Sat::KorektanBrojSekundi()
  267. {
  268. if (brojsekundi<0) {
  269. do {
  270. brojsekundi+=86400;
  271. } while(brojsekundi<0);
  272. }
  273. brojsekundi%=86400;
  274. }
  275. Sat& Sat::Postavi(int h, int m, int s)
  276. {
  277. if (!DaLiJeIspravno(h,m,s)) throw std::domain_error("Neispravno vrijeme");
  278. brojsekundi=3600*h+60*m+s;
  279. return *this;
  280. }
  281. Sat& Sat::PostaviNormalizirano(int h, int m, int s)
  282. {
  283. brojsekundi=3600*h+60*m+s;
  284. KorektanBrojSekundi();
  285. return *this;
  286. }
  287. Sat& Sat::Sljedeci()
  288. {
  289. brojsekundi+=1;
  290. KorektanBrojSekundi();
  291. return *this;
  292. }
  293. Sat& Sat::Prethodni()
  294. {
  295. brojsekundi-=1;
  296. KorektanBrojSekundi();
  297. return *this;
  298. }
  299. Sat& Sat::PomjeriZa(int brojsekundi)
  300. {
  301. Sat::brojsekundi+=brojsekundi;
  302. KorektanBrojSekundi();
  303. return *this;
  304. }
  305. void Sat::Ispisi() const
  306. {
  307. std::cout<<std::setw(2)<<std::setfill('0')<<DajSate()<<":"<<std::setw(2)<<DajMinute()<<":"<<std::setw(2)<<DajSekunde();
  308. }
  309. int BrojSekundiIzmedju(const Sat &sat1, const Sat &sat2)
  310. {
  311. return sat1.brojsekundi-sat2.brojsekundi;
  312. }
  313. int Sat::Razmak(const Sat &sat1, const Sat &sat2)
  314. {
  315. return sat1.brojsekundi-sat2.brojsekundi;
  316. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement