Advertisement
Guest User

Untitled

a guest
May 24th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.10 KB | None | 0 0
  1. #include<iostream>
  2. #include<ctime>
  3. #include<string>
  4. using namespace std;
  5. void showVector(double *vectorExample, int n,string vectorName)
  6. {
  7.     cout << "Wektor" <<" "<< vectorName << endl;
  8.     for (int i = 0; i < n; i++)
  9.     {
  10.         cout << vectorExample[i] << endl;
  11.     }
  12.  
  13.  
  14. }
  15.  
  16. void setVectorValue(double*vectorExample, int n,string vectorName)
  17. {
  18.    
  19.     cout << "Wpisz wartosci wektora" <<" "<< vectorName << endl;
  20.     for (int i = 0; i < n; i++)
  21.     {
  22.         cin >> vectorExample[i];
  23.  
  24.  
  25.     }
  26.  
  27. }
  28.  
  29. double scalarValue(double*VectorExampleA, double*VectorExampleB, int n, long double&resultByReference)
  30. {
  31.     for (int i = 0; i < n; i++)
  32.     {
  33.         resultByReference += (VectorExampleA[i] * VectorExampleB[i]);
  34.  
  35.  
  36.  
  37.     }
  38.  
  39.     return resultByReference;
  40.  
  41.  
  42.  
  43. }
  44. double scalarValue(double*VectorExampleA, double*VectorExampleB, int n, double*resultByPointer)
  45. {
  46.     for (int i = 0; i < n; i++)
  47.     {
  48.         (*resultByPointer) += (VectorExampleA[i] * VectorExampleB[i]);
  49.  
  50.  
  51.  
  52.  
  53.     }
  54.  
  55.  
  56.     return *resultByPointer;
  57.  
  58. }
  59. double scalarValue(double*VectorExampleA, double*VectorExampleB, int n, double resultByValue) {
  60.  
  61.    
  62.  
  63.     for (int i = 0; i < n; i++)
  64.     {
  65.         resultByValue += (VectorExampleA[i] * VectorExampleB[i]);
  66.  
  67.  
  68.  
  69.     }
  70.  
  71.  
  72.     return resultByValue;
  73.  
  74. }
  75.  
  76. double mathExpression(double*VectorExampleA, double*VectorExampleB, int n,double*resultByPointer)
  77.  
  78. {
  79.     double valA=0, valB=0;
  80.     for (int i = 0; i < n; i++)
  81.     {
  82.  
  83.         valA += pow(VectorExampleA[i], 2);
  84.         valB+= pow(VectorExampleB[i], 2);
  85.  
  86.  
  87.     }
  88.  
  89.     return ((valA + valB) / (scalarValue(VectorExampleA, VectorExampleB, n,resultByPointer)));
  90.  
  91.  
  92.  
  93. }
  94.  
  95.  
  96.  
  97.  
  98. int main() {
  99.     double *vectorA,*vectorB,resultByPointer=0,resultByValue=0;
  100.     long double resultByReference = 0;
  101.     int n;
  102.     cout << "Podaj liczbe elementow wektora\n";
  103.     cin >> n;
  104.     vectorA = new double[n];
  105.     vectorB = new double[n];
  106.     setVectorValue(vectorA,  n,"A");
  107.     cout << endl;
  108.     setVectorValue(vectorB, n,"B");
  109.     cout << endl;
  110.    
  111.     showVector(vectorA,n,"A");
  112.    
  113.     showVector(vectorB,n,"B");
  114.     cout << endl;
  115.    
  116.     cout << "Iloczyn skalarny(przez wartosc ) wynosi\n";
  117.    
  118.    
  119.     cout << scalarValue(vectorA, vectorB, n, resultByValue) << endl;
  120.      //cout << resultByValue << endl;    //mozesz sobie ja wyswietlic zeby pokazac ze przekazywanie przez wartosc nie modyfikuje przekazywanej
  121.     //zmiennej, funkcja pracuje na kopi obiektu
  122.  
  123.         cout << "Iloczyn skalarny(przez wskaznik) wynosi\n";
  124.    
  125.         scalarValue(vectorA, vectorB, n, &resultByPointer); //dzialanie podobne jak z referencja ponizej z tym, ze referencja to
  126.         //nie to samo co wskaznik, roznica jest taka ze wskaznika mozna przestawic zeby wskazywal na inny obiekt a referencji nie mozna
  127.        
  128.        
  129.         cout << resultByPointer << endl;
  130.  
  131.  
  132.         cout << "Iloczyn skalarny(przez referencje) wynosi\n";
  133.         scalarValue(vectorA, vectorB, n, resultByReference);
  134.        
  135.         cout << resultByReference << endl; //wyswietalmy zmienna ktora przekazywalismy do funkcji przez referencje, ma ona zmieniona
  136.         //wartosc gdyz nie pracowalismy na kopi obiektu a "oryginalnej" zmiennej
  137.      
  138.         cout << "Wartosc wyrazenia\n";
  139.        
  140.         cout << mathExpression(vectorA, vectorB, n,&resultByPointer)<<endl;
  141.    
  142.    
  143.    
  144.    
  145.    
  146.     system("pause");
  147.     return 0;
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement