Advertisement
Guest User

Untitled

a guest
May 19th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.33 KB | None | 0 0
  1. //zadatak 3
  2. //TP 2018/2019: Tutorijal 8, Zadatak 1
  3. #include <iostream>
  4. #include <cmath>
  5. using namespace std;
  6.  
  7.  
  8. class Vektor3d
  9. {
  10. double koordinate[3];
  11. mutable int broj_ispisa=0;
  12. public:
  13. Vektor3d() {for (int i=0;i<3;i++) koordinate[i]=0;}
  14. Vektor3d(double x, double y, double z){ koordinate[0]=x; koordinate[1]=y; koordinate[2]=z;}
  15. Vektor3d(const Vektor3d &v){ koordinate[0]=v.koordinate[0]; koordinate[1]=v.koordinate[1]; koordinate[2]=v.koordinate[2]; }
  16. void Postavi(double x, double y, double z)
  17. {
  18. koordinate[0] = x;
  19. koordinate[1] = y;
  20. koordinate[2] = z;
  21. }
  22.  
  23. void PostaviX (double a){
  24. koordinate[0]=a;
  25. }
  26.  
  27. void PostaviY (double a){
  28. koordinate[1]=a;
  29. }
  30.  
  31. void PostaviZ (double a){
  32. koordinate[2]=a;
  33. }
  34.  
  35. void Ocitaj(double &x, double &y, double &z) const
  36. {
  37. x = koordinate[0];
  38. y = koordinate[1];
  39. z = koordinate[2];
  40. }
  41. void Ispisi() const
  42. {
  43. broj_ispisa++;
  44. std::cout << "{" << koordinate[0] << "," << koordinate[1] << "," << koordinate[2] << "}";
  45. }
  46. double DajX() const
  47. {
  48. return koordinate[0];
  49. }
  50. double DajY() const
  51. {
  52. return koordinate[1];
  53. }
  54. double DajZ() const
  55. {
  56. return koordinate[2];
  57. }
  58. double DajDuzinu() const
  59. {
  60. return sqrt(koordinate[0] * koordinate[0] + koordinate[1] * koordinate[1] + koordinate[2] * koordinate[2]);
  61. }
  62. int DajBrojIspisa() const {
  63. return broj_ispisa;
  64. }
  65. Vektor3d &PomnoziSaSkalarom(double s)
  66. {
  67. koordinate[0] *= s;
  68. koordinate[1] *= s;
  69. koordinate[2] *= s;
  70. return *this;
  71. }
  72. Vektor3d &SaberiSa(const Vektor3d &v)
  73. {
  74. koordinate[0] += v.koordinate[0];
  75. koordinate[1] += v.koordinate[1];
  76. koordinate[2] += v.koordinate[2];
  77. return *this;
  78. }
  79. friend Vektor3d ZbirVektora(const Vektor3d &v1, const Vektor3d &v2);
  80. };
  81.  
  82. Vektor3d ZbirVektora(const Vektor3d &v1, const Vektor3d &v2)
  83. {
  84. Vektor3d v3;
  85. v3.koordinate[0] = v1.koordinate[0] + v2.koordinate[0];
  86. v3.koordinate[1] = v1.koordinate[1] + v2.koordinate[1];
  87. v3.koordinate[2] = v1.koordinate[2] + v2.koordinate[2];
  88. return v3;
  89. }
  90.  
  91.  
  92. int main ()
  93. {
  94. Vektor3d v;
  95. v.Postavi(0, 0, 0);
  96. v.Ispisi();
  97. cout<<endl;
  98. v.PostaviX(1);
  99. v.PostaviY(2);
  100. v.PostaviZ(3);
  101. v.Ispisi();
  102. cout<<endl;
  103. double x, y, z;
  104. v.Ocitaj(x, y, z);
  105. cout<<x<<","<<y<<","<<z;
  106. cout<<endl;
  107. cout<<v.DajX()<<","<<v.DajY()<<","<<v.DajZ()<<endl;
  108. cout<<v.DajDuzinu()<<endl;
  109. v.PomnoziSaSkalarom(2).Ispisi();
  110. cout<<endl;
  111. Vektor3d v2;
  112. v2.Postavi(1, 2, 3);
  113. v.SaberiSa(v2).Ispisi();
  114. cout<<endl;
  115. Vektor3d v3;
  116. v3=ZbirVektora(v, v2);
  117. v3.Ispisi();
  118. cout<<endl<<v.DajBrojIspisa();
  119. return 0;
  120. }
  121.  
  122.  
  123. //zadatak 2
  124.  
  125. /*
  126. TP 16/17 (Tutorijal 10, Zadatak 2)
  127. Autotestove pisala Nina Slamnik. Za sva pitanja,
  128. sugestije i primjedbe poslati mail na:
  129. nslamnik1@etf.unsa.ba
  130.  
  131. Vrsit ce se provjera na prepisivanje tutorijala (na kraju semestra)
  132. */
  133. #include <iostream>
  134. #include <stdexcept>
  135. #include <cmath>
  136. #include <iomanip>
  137. using namespace std;
  138.  
  139. class Krug {
  140. double r;
  141. public:
  142. explicit Krug (double poluprecnik) { Postavi(poluprecnik);}
  143. void Postavi (double poluprecnik) ;
  144. double DajPoluprecnik() const {return r;}
  145. double DajObim() const {return 2*r*4*atan(1);}
  146. double DajPovrsinu() const {return r*r*4*atan(1);}
  147. Krug& Skaliraj(double broj) ;
  148. void Ispisi() const {cout<<"R="<<fixed<<setprecision(5)<<DajPoluprecnik()<<" "<<"O="<<fixed<<setprecision(5)<<DajObim()<<" "<<"P="<<fixed<<setprecision(5)<<DajPovrsinu();}
  149. } ;
  150.  
  151. class Valjak{
  152. Krug baza;
  153. double h;
  154. public:
  155. Valjak (double r, double h) : baza(r) {if (h<=0) throw domain_error("Neispravna visina"); Valjak::h=h;};
  156. void Postavi (double poluprecnik, double visina) ;
  157. Krug& DajBazu() {return baza;}
  158. double DajPoluprecnikBaze() const {return baza.DajPoluprecnik();}
  159. double DajVisinu() const {return h;}
  160. double DajPovrsinu() const {return 2*baza.DajPovrsinu()+2*4*atan(1)*baza.DajPoluprecnik()*h;}
  161. double DajZapreminu() const {return baza.DajPovrsinu()*h;}
  162. void Skaliraj(double broj) ;
  163. void Ispisi() const { cout<<"R="<<fixed<<setprecision(5)<<DajPoluprecnikBaze()<<" "<<"H="<<fixed<<setprecision(5)<<DajVisinu()<<" P="<<fixed<<setprecision(5)<<DajPovrsinu()<<" V="<<fixed<<setprecision(5)<<DajZapreminu(); }
  164. };
  165.  
  166. void Krug::Postavi (double poluprecnik){
  167. if (poluprecnik<=0) throw domain_error("Neispravan poluprecnik");
  168. r=poluprecnik;
  169. }
  170.  
  171. Krug& Krug::Skaliraj(double broj){
  172. if (broj<=0) throw domain_error("Neispravan faktor skaliranja");
  173. r*=broj;
  174. return *this;
  175. }
  176.  
  177. void Valjak::Postavi (double poluprecnik, double visina){
  178. baza.Postavi(poluprecnik);
  179. if (visina<=0) throw domain_error("Neispravna visina");
  180. h=visina;
  181. }
  182. void Valjak::Skaliraj(double broj){
  183. if (broj<=0) throw domain_error("Neispravan faktor skaliranja");
  184. baza.Skaliraj(broj);
  185. h*=broj;
  186. }
  187.  
  188. int main ()
  189. {
  190. Valjak v(5, 5);
  191. v.Postavi(6, 6);
  192. v.Ispisi();
  193. return 0;
  194. }
  195.  
  196. //zadatak 1
  197.  
  198. /*
  199. TP 16/17 (Tutorijal 10, Zadatak 1)
  200. Autotestove pisala Nina Slamnik. Za sva pitanja,
  201. sugestije i primjedbe poslati mail na:
  202. nslamnik1@etf.unsa.ba
  203.  
  204. Vrsit ce se provjera na prepisivanje tutorijala (na kraju semestra)
  205. */
  206. #include <iostream>
  207. #include <stdexcept>
  208. using namespace std;
  209.  
  210. class StedniRacun{
  211. double novac;
  212. public:
  213. StedniRacun () : novac(0) {};
  214. StedniRacun (double broj) ;
  215. StedniRacun &Ulozi (double broj) ;
  216. StedniRacun &Podigni (double broj) ;
  217. double DajStanje() const {return novac;}
  218. StedniRacun &ObracunajKamatu (double broj) ;
  219.  
  220. };
  221.  
  222. StedniRacun::StedniRacun (double broj){
  223. if (broj<0) throw logic_error ("Nedozvoljeno pocetno stanje");
  224. novac=broj;
  225. }
  226.  
  227. StedniRacun& StedniRacun::Podigni (double broj){
  228. if (broj>novac) throw logic_error ("Transakcija odbijena");
  229. novac-=broj;
  230. return *this;
  231. }
  232.  
  233. StedniRacun& StedniRacun::Ulozi(double broj){
  234. if ((novac+broj)<0) throw logic_error ("Transakcija odbijena");
  235. novac+=broj;
  236. return *this;
  237. }
  238.  
  239. StedniRacun& StedniRacun::ObracunajKamatu (double broj){
  240. if (broj<0) throw logic_error ("Nedozvoljena kamatna stopa");
  241. novac+=novac*(broj/100.);
  242. return *this;
  243. }
  244.  
  245. int main ()
  246. {
  247. return 0;
  248. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement