Advertisement
Guest User

Untitled

a guest
May 21st, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.52 KB | None | 0 0
  1. /*
  2. TP 16/17 (Tutorijal 10, Zadatak 1)
  3. Autotestove pisala Nina Slamnik. Za sva pitanja,
  4. sugestije i primjedbe poslati mail na:
  5. nslamnik1@etf.unsa.ba
  6.  
  7. Vrsit ce se provjera na prepisivanje tutorijala (na kraju semestra)
  8. */
  9. #include <iostream>
  10. #include <stdexcept>
  11.  
  12. using namespace std;
  13.  
  14. class StedniRacun {
  15. double stanje_racuna;
  16.  
  17. public:
  18. StedniRacun(double stanje_racuna=0)
  19. {
  20. if(stanje_racuna < 0)
  21. throw logic_error("Nedozvoljeno pocetno stanje");
  22. StedniRacun::stanje_racuna = stanje_racuna;
  23. }
  24.  
  25. void Ulozi(double ulog)
  26. {
  27. if(stanje_racuna+ulog < 0)
  28. throw logic_error("Transakcija odbijena");
  29. stanje_racuna += ulog;
  30. }
  31.  
  32. void Podigni(double podig)
  33. {
  34. if(podig <= stanje_racuna)
  35. stanje_racuna -= podig;
  36.  
  37. else
  38. throw logic_error("Transakcija odbijena");
  39. }
  40.  
  41. double DajStanje() const {return stanje_racuna;}
  42.  
  43. void ObracunajKamatu(double kamata)
  44. {
  45. if(kamata < 0)
  46. throw logic_error("Nedozvoljena kamatna stopa");
  47. stanje_racuna += stanje_racuna * ((int)kamata/100 + (int)kamata%100)/100;
  48. }
  49. };
  50. int main ()
  51. {
  52. return 0;
  53. }
  54.  
  55. /*
  56. TP 16/17 (Tutorijal 10, Zadatak 2)
  57. Autotestove pisala Nina Slamnik. Za sva pitanja,
  58. sugestije i primjedbe poslati mail na:
  59. nslamnik1@etf.unsa.ba
  60.  
  61. Vrsit ce se provjera na prepisivanje tutorijala (na kraju semestra)
  62. */
  63. #include <iostream>
  64. #include <stdexcept>
  65. #include <cmath>
  66. #include <iomanip>
  67.  
  68. using namespace std;
  69.  
  70. class Krug {
  71. double poluprecnik;
  72. public:
  73. explicit Krug(double poluprecnik)
  74. {
  75. if(poluprecnik <= 0)
  76. throw domain_error("Neispravan poluprecnik");
  77. Krug::poluprecnik = poluprecnik;
  78. }
  79.  
  80. void Postavi(double broj)
  81. {
  82. if(broj <= 0)
  83. throw domain_error("Neispravan poluprecnik");
  84. poluprecnik = broj;
  85. }
  86.  
  87. double DajPoluprecnik() const {return poluprecnik;}
  88. double DajObim() const {return 2 * 4 * poluprecnik * atan(1);}
  89. double DajPovrsinu() const {return poluprecnik * poluprecnik * 4 * atan(1);}
  90.  
  91. void Skaliraj(double skalar)
  92. {
  93. if(skalar <=0)
  94. throw domain_error("Neispravan faktor skaliranja");
  95. poluprecnik *= skalar;
  96. }
  97.  
  98. void Ispisi() const
  99. {
  100. cout << fixed << setprecision(5) << "R=" << DajPoluprecnik() << setprecision(5) << " O=" << DajObim() << setprecision(5) << " P=" << DajPovrsinu();
  101. }
  102. };
  103.  
  104. class Valjak {
  105. Krug baza{1};
  106. double visina;
  107.  
  108. public:
  109. explicit Valjak(double broj, double visina)
  110. {
  111. if(broj <= 0)
  112. throw domain_error("Neispravan poluprecnik");
  113.  
  114. if(visina <= 0)
  115. throw domain_error("Neispravna visina");
  116. baza.Postavi(broj);
  117. Valjak::visina = visina;
  118. }
  119.  
  120. void Postavi(double poluprecnik, double broj)
  121. {
  122. if(poluprecnik <= 0)
  123. throw domain_error("Neispravan poluprecnik");
  124.  
  125. if(broj <= 0)
  126. throw domain_error("Neispravna visina");
  127. baza.Postavi(poluprecnik);
  128. visina = broj;
  129. }
  130.  
  131. Krug DajBazu() const {return baza;}
  132. double DajPoluprecnikBaze() const {return baza.DajPoluprecnik();}
  133. double DajVisinu() const {return visina;}
  134. double DajPovrsinu() const {return 2*baza.DajPovrsinu() + 2*4*atan(1)*baza.DajPoluprecnik()*visina;}
  135. double DajZapreminu() const {return baza.DajPoluprecnik() * baza.DajPoluprecnik()*4*atan(1)*visina;}
  136.  
  137. void Skaliraj(double skalar)
  138. {
  139. if(skalar <=0)
  140. throw domain_error("Neispravan faktor skaliranja");
  141. baza.Skaliraj(skalar);
  142. visina *= skalar;
  143. }
  144.  
  145. void Ispisi() const
  146. {
  147. cout << fixed << setprecision(5) << "R=" << DajPoluprecnikBaze() << setprecision(5) << " H=" << DajVisinu() << setprecision(5) << " P=" << DajPovrsinu() << setprecision(5) << " V=" << DajZapreminu();
  148. }
  149.  
  150. };
  151. int main ()
  152. {
  153. return 0;
  154. }
  155.  
  156. /*
  157. TP 16/17 (Tutorijal 10, Zadatak 3)
  158. Autotestove pisala Nina Slamnik. Za sva pitanja,
  159. sugestije i primjedbe poslati mail na:
  160. nslamnik1@etf.unsa.ba
  161.  
  162. Vrsit ce se provjera na prepisivanje tutorijala (na kraju semestra)
  163. */
  164. #include <iostream>
  165. #include <cmath>
  166.  
  167. using namespace std;
  168.  
  169. class Vektor3d
  170. {
  171. double x, y, z;
  172. mutable int brojac{0};
  173. public:
  174. void Postavi(double x=0, double y=0, double z=0)
  175. {
  176. Vektor3d::x = x; Vektor3d::y = y; Vektor3d::z = z;
  177. }
  178.  
  179. Vektor3d(double x=0, double y=0, double z=0)
  180. {
  181. Vektor3d::x = x;
  182. Vektor3d::y = y;
  183. Vektor3d::z = z;
  184. }
  185. void PostaviX(double x)
  186. {
  187. Vektor3d::x = x;
  188. }
  189.  
  190. void PostaviY(double y)
  191. {
  192. Vektor3d::y = y;
  193. }
  194.  
  195. void PostaviZ(double z)
  196. {
  197. Vektor3d::z = z;
  198. }
  199. void Ocitaj(double &x, double &y, double &z) const
  200. {
  201. x = Vektor3d::x; y = Vektor3d::y; z = Vektor3d::z;
  202. }
  203. void Ispisi() const
  204. {
  205. cout << "{" << x << "," << y << "," << z << "}";
  206. brojac++;
  207. }
  208. int DajBrojIspisa() const
  209. {
  210. return brojac;
  211. }
  212. double DajX() const { return x; }
  213. double DajY() const { return y; }
  214. double DajZ() const { return z; }
  215. double DajDuzinu() const { return sqrt(x * x + y * y + z * z); }
  216. Vektor3d &PomnoziSaSkalarom(double s)
  217. {
  218. x *= s; y *= s; z *= s;
  219. return *this;
  220. }
  221. Vektor3d &SaberiSa(const Vektor3d &v)
  222. {
  223. x += v.x; y += v.y; z += v.z;
  224. return *this;
  225. }
  226. friend Vektor3d ZbirVektora(const Vektor3d &v1, const Vektor3d &v2);
  227. };
  228.  
  229. Vektor3d ZbirVektora(const Vektor3d &v1, const Vektor3d &v2)
  230. {
  231. Vektor3d v3;
  232. v3.x = v1.x + v2.x;
  233. v3.y = v1.y + v2.y;
  234. v3.z = v1.z + v2.z;
  235.  
  236. return v3;
  237. }
  238.  
  239. int main ()
  240. {
  241.  
  242. double x, y, z;
  243. Vektor3d v1(3, 1, 4), v2, v3{-2,0,-10};
  244. v1.Ispisi(); std::cout<<" "; v1.Ispisi();
  245. Ocitaj(x, y, z);
  246. std::cout<<" "; v2.Ispisi(); std::cout<<" ";
  247. v2.Ispisi(); std::cout<<" "; v3.Ispisi();
  248. std::cout<<" "; v3.Ispisi(); std::cout<<" ";
  249. v3.Ispisi();
  250.  
  251. return 0;
  252. }
  253.  
  254. /*
  255. TP 16/17 (Tutorijal 10, Zadatak 4)
  256. Autotestove pisala Nina Slamnik. Za sva pitanja,
  257. sugestije i primjedbe poslati mail na:
  258. nslamnik1@etf.unsa.ba
  259.  
  260. Vrsit ce se provjera na prepisivanje tutorijala (na kraju semestra)
  261. */
  262. #include <iostream>
  263. #include <cmath>
  264. #include <iomanip>
  265.  
  266. using namespace std;
  267.  
  268. class Ugao
  269. {
  270. double radijani;
  271. public:
  272.  
  273. Ugao(double radijani = 0)
  274. {
  275. if(radijani < 0)
  276. while(radijani < 0)
  277. radijani += 8*atan(1);
  278.  
  279. else if(radijani > 8*atan(1))
  280. while(radijani > 8*atan(1))
  281. radijani -= 8*atan(1);
  282. Ugao::radijani = radijani;
  283. }
  284. Ugao(int stepeni, int minute, int sekunde)
  285. {
  286. const double PI(4*atan(1));
  287.  
  288.  
  289. radijani=(stepeni/180)*PI;
  290. radijani += minute/60;
  291. radijani += sekunde/3600;
  292.  
  293. if(radijani < 0)
  294. while(radijani < 0)
  295. radijani += 8*atan(1);
  296.  
  297. else if(radijani > 8*atan(1))
  298. while(radijani > 8*atan(1))
  299. radijani -= 8*atan(1);
  300. }
  301. void Postavi(double radijani)
  302. {
  303. if(radijani < 0)
  304. while(radijani < 0)
  305. radijani += 8*atan(1);
  306.  
  307. else if(radijani > 8*atan(1))
  308. while(radijani > 8*atan(1))
  309. radijani -= 8*atan(1);
  310. Ugao::radijani = radijani;
  311.  
  312. }
  313. void Postavi(int stepeni, int minute, int sekunde)
  314. {
  315. const double PI(4*atan(1));
  316.  
  317.  
  318. radijani=(stepeni/180)*PI;
  319. radijani += minute/60;
  320. radijani += sekunde/3600;
  321. if(radijani < 0)
  322. while(radijani < 0)
  323. radijani += 8*atan(1);
  324.  
  325. else if(radijani > 8*atan(1))
  326. while(radijani > 8*atan(1))
  327. radijani -= 8*atan(1);
  328. }
  329. double DajRadijane() const
  330. {
  331. return radijani;
  332. }
  333. void OcitajKlasicneJedinice(int &stepeni, int &minute, int &sekunde)
  334. {
  335. const double PI(4*atan(1));
  336. double x=radijani*180/PI;
  337. stepeni=int(x);
  338. minute=int((x-stepeni)*3600)/60;
  339. sekunde=int((x-stepeni)*3600)%60;
  340. }
  341. int DajStepene() const
  342. {
  343. return (DajRadijane()*180)/(4*atan(1));
  344. }
  345. int DajMinute() const
  346. {
  347. //int stepeni=int(x);
  348. return (((DajRadijane()*180/(4*atan(1)))-(int)((DajRadijane()*180/(4*atan(1)))))*3600)/60;
  349. }
  350. int DajSekunde() const
  351. {
  352. //const double PI(4*atan(1));
  353. //double x=DajRadijani()*180/PI;
  354. //int stepeni=int(x);
  355. return (int)((DajRadijane()*180/(4*atan(1))-(int)(DajRadijane()*180/(4*atan(1))))*3600)%60;
  356. }
  357. void Ispisi() const
  358. {
  359. cout << fixed << setprecision(5) << DajRadijane();
  360. }
  361. void IspisiKlasicno() const
  362. {
  363. cout << fixed << setprecision(5) << DajStepene() << "deg " << setprecision(5) << DajMinute() << "min " << setprecision(5) << DajSekunde() << "sec";
  364. }
  365. Ugao &SaberiSa(const Ugao &u)
  366. {
  367.  
  368. this->Postavi(this->DajRadijane() + u.DajRadijane());
  369.  
  370. return *this;
  371. }
  372. Ugao &PomnoziSa(double x)
  373. {
  374. this->Postavi(this->DajRadijane() * x);
  375.  
  376. return *this;
  377. }
  378. friend Ugao ZbirUglova(const Ugao &u1, const Ugao &u2)
  379. {
  380. Ugao u3(u1.DajRadijane() + u2.DajRadijane());
  381.  
  382. return u3;
  383. }
  384. friend Ugao ProduktUglaSaBrojem(const Ugao &u, double x)
  385. {
  386. Ugao u1(u.DajRadijane()*x);
  387.  
  388. return u1;
  389. }
  390.  
  391. };
  392. int main ()
  393. {
  394.  
  395. return 0;
  396. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement