Advertisement
ithoran

Struk Lab 1 Zad 1

Mar 17th, 2016
347
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.81 KB | None | 0 0
  1. // h
  2. #include "Polinom.h"
  3.  
  4. void main() {
  5.     Polinom x(3);
  6.     Polinom y(4);
  7.     x.Coef(1, 2.34);
  8.     x.Coef(2, 3.35);
  9.     x.Coef(3, 15.89);
  10.     y.Coef(1, 100);
  11.     y.Coef(0, 52.11);
  12.     y.Coef(4, 67.22);
  13.     x.stampaj();
  14.     y.stampaj();
  15.     Polinom z = saberi(x, y);
  16.     z.stampaj();
  17. }
  18.  
  19. // main
  20. #pragma once
  21. #include <iostream>
  22. using namespace std;
  23.  
  24. class Polinom{
  25.     int stepen;
  26.     double *a;
  27. public:
  28.     Polinom();
  29.     Polinom(int s);
  30.     ~Polinom();
  31.     Polinom(const Polinom &p);
  32.     void Coef(int exp, double coef);
  33.     friend Polinom saberi(Polinom &a, Polinom &b);
  34.     void stampaj();
  35.     void operator=(const Polinom &p);
  36. };
  37.  
  38. // cpp
  39. #include "Polinom.h"
  40.  
  41. Polinom::Polinom(int s) {
  42.     stepen = s;
  43.     a = new double[stepen + 1]();
  44. }
  45.  
  46. Polinom::Polinom() {
  47.     stepen = 0;
  48.     a = 0;
  49. }
  50.  
  51. Polinom::~Polinom() {
  52.     if (a)
  53.         delete[] a;
  54. }
  55.  
  56. Polinom::Polinom(const Polinom &p) {
  57.     stepen = p.stepen;
  58.     a = new double[stepen + 1]();
  59.     for (int i = 0; i < stepen + 1; i++)
  60.         a[i] = p.a[i];
  61. }
  62.  
  63. void Polinom::Coef(int exp, double coef) {
  64.     if (exp > stepen || exp < 0) {
  65.         cout << "Eksponent mora biti veci od 0 i manji li jednak " << endl;
  66.         return;
  67.     }
  68.     a[exp] = coef;
  69. }
  70.  
  71. Polinom saberi(Polinom &a, Polinom &b) {
  72.     int s;
  73.     a.stepen < b.stepen ? s = b.stepen : s = a.stepen;
  74.     Polinom vrati(s);
  75.     for (int i = 0; i < a.stepen + 1; i++) {
  76.         vrati.a[i] = a.a[i];
  77.     }
  78.     for (int i = 0; i < b.stepen + 1; i++) {
  79.         vrati.a[i] = vrati.a[i] + b.a[i];
  80.     }
  81.     return vrati;
  82. }
  83.  
  84. void Polinom::stampaj() {
  85.     for (int i = stepen; i > 0; i--) {
  86.         if (a[i] != 0)
  87.             cout << showpos << a[i] << "*x^" << noshowpos << i << " ";
  88.     }
  89.     if (a[0] != 0)
  90.         cout << showpos << a[0];
  91.     cout << endl;
  92. }
  93.  
  94. void Polinom::operator=(const Polinom &p) {
  95.     this->~Polinom();
  96.     stepen = p.stepen;
  97.     a = new double[stepen + 1]();
  98.     for (int i = 0; i < stepen + 1; i++)
  99.         a[i] = p.a[i];
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement