Facebook
From MikMik, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 229
  1. // SEM3POPRAWAKOLOSA.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4.  
  5.  
  6. #pragma once
  7.  
  8. #include "targetver.h"
  9.  
  10. #include <stdio.h>
  11. #include <tchar.h>
  12. #include <vector>
  13.  
  14. using namespace std;
  15.  
  16. class Wielomian
  17. {
  18. public:
  19.         Wielomian(int poz, vector<double> &vect);
  20.         double value(double x);
  21.         Wielomian operator+(const Wielomian &W2);
  22. private:
  23.         int n;
  24.         vector <double> wsp;
  25. };
  26.  
  27.  
  28.  
  29. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  30. CPP
  31.  
  32.  
  33. #include "stdafx.h"
  34. #include <iostream>
  35. #include <vector>
  36.  
  37. using namespace std;
  38.  
  39. Wielomian WielomianInit();
  40. void wypisz(Wielomian w);
  41.  
  42. Wielomian::Wielomian(int poz, vector<double> &vect)
  43. {
  44.         this->n = poz;
  45.         for (int i = 0; i < vect.size(); i++)
  46.         {
  47.                 this->wsp.push_back(vect[i]);
  48.         }
  49. }
  50.  
  51. double Wielomian:: value(double x)
  52. {
  53.         double result = wsp[0];
  54.         for (int i = 1; i < this->wsp.size() ; i++)
  55.         {
  56.                 result = result * x + wsp[i];
  57.         }
  58.         return result;
  59. }
  60.  
  61. int main()
  62. {
  63.         Wielomian w1 = WielomianInit();
  64.         wypisz(w1);
  65.  
  66.         Wielomian w2 = WielomianInit();
  67.         wypisz(w2);
  68.         w1 = w1 + w2;
  69.         wypisz(w1);
  70.  
  71.     return 0;
  72. }
  73.  
  74. void wypisz(Wielomian w)
  75. {
  76.         for (double i = -3.0; i <= 3.0; i += 0.5)
  77.         {
  78.                 cout << "---  wartosc wielomianu dla argumentu = " << i << " wynosi " << w.value(i) << endl;
  79.         }
  80.  
  81. }
  82.  
  83. Wielomian WielomianInit()
  84. {
  85.         vector <double> tempWSP;
  86.         int n;
  87.         double tmp;
  88.         cout << "podaj stopien wielomianu" << endl;
  89.         cin >> n;
  90.         for (int i = 0; i < (n+1); i++)
  91.         {
  92.                 cout << "podaj wspolczynnik dla " << i << " potegi" << endl;
  93.                 cin >> tmp;
  94.                 tempWSP.push_back(tmp);
  95.         }
  96.         Wielomian w1(n, tempWSP);
  97.         return w1;
  98. }
  99.  
  100. Wielomian Wielomian:: operator+(const Wielomian &W2)
  101. {
  102.         int roznica = W2.wsp.size() - this->wsp.size();
  103.         if (roznica > 0)
  104.         {
  105.                 for (int i = 0; i < roznica; i++)
  106.                 {
  107.                         this->wsp.push_back(0);
  108.                 }
  109.                 for (int i = 0; i < this->wsp.size(); i++)
  110.                 {
  111.                         this->wsp[i] += W2.wsp[i];
  112.                 }
  113.         }
  114.         else
  115.         {
  116.                 for (int i = 0; i < W2.wsp.size(); i++)
  117.                 {
  118.                         this->wsp[i] += W2.wsp[i];
  119.                 }
  120.         }
  121.         return *this;
  122. }
  123.  
  124.