Advertisement
MSlomiany

iloczyn_skalarny_07_05_2018[FUN]

May 7th, 2018
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.11 KB | None | 0 0
  1. // iloczyn_skalarny_funkcje_07_05_2018.cpp: Określa punkt wejścia dla aplikacji konsoli.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream>
  6. #include <iomanip>
  7. #include <string>
  8. using namespace std;
  9. typedef long double ld;
  10. typedef double d;
  11.  
  12. void wczytaj(int n, double w1[], string nazwa)
  13. {
  14.     int i;
  15.     cout << "Podaj elementy wektora" << endl;
  16.     for (i = 0; i < n; i++)
  17.     {
  18.         cout << nazwa << "[" << i + 1 << "]: ";
  19.         cin >> w1[i];
  20.     }
  21. }
  22.  
  23. void wypisz(int n, double w1[], string nazwa)
  24. {
  25.     int i;
  26.     cout << "Wektor " << nazwa << ": " << endl;
  27.     for (i = 0; i < n; i++)
  28.     {
  29.         cout << nazwa << "[" << i + 1 << "]" << fixed << setw(10) << setprecision(3) << w1[i] << endl;
  30.     }
  31. }
  32.  
  33. ld war(int n, d a[], d b[])
  34. {
  35.     ld S = 0;
  36.     for (int i = 0; i < n; i++)
  37.     {
  38.         S += a[i] * b[i];
  39.     }
  40.     return S;
  41. }
  42.  
  43. void ref(int n, d a[], d b[], ld &ilo)
  44. {
  45.     ilo = 0;
  46.     for (int i = 0; i < n; i++)
  47.     {
  48.         ilo += a[i] * b[i];
  49.     }
  50. }
  51.  
  52. void wsk(int n, d a[], d b[], ld *ilo)
  53. {
  54.     *ilo = 0;
  55.     for (int i = 0; i < n; i++)
  56.     {
  57.         *ilo += a[i] * b[i];
  58.     }
  59. }
  60.  
  61. int _tmain(int argc, _TCHAR* argv[])
  62. {
  63.     setlocale(LC_ALL, "");
  64.     double A[20];
  65.     double B[20];
  66.     ld S;
  67.     string name1 = "A";
  68.     string name2 = "B";
  69.     int n;
  70.     cout << "Podaj rozmiar wektorów " << name1 << " (max. 20)" << endl;
  71.     do{
  72.         cin >> n;
  73.     } while (n <= 0 || n > 20);
  74.     //wprowadzanie
  75.     wczytaj(n, A, name1);
  76.     //wypisywanie
  77.     wypisz(n, A, name1);
  78.     //wprowadzanie
  79.     wczytaj(n, B, name2);
  80.     //wypisywanie
  81.     wypisz(n, B, name2);
  82.     //potężna suma ułamusa
  83.     S = (war(n, A, A) + war(n, B, B)) / war(n, A, B);
  84.     cout << "Suma ułamusa = " << fixed << setw(10) << setprecision(3) << S << endl;
  85.     //iloczyn skalarny przez wartość
  86.     cout << "Iloczyn skalarny przez wartość = " << fixed << setw(10) << setprecision(3) << war(n, A, B) << endl;
  87.     //iloczyn skalarny przez referencję
  88.     ref(n, A, B, S);
  89.     cout << "Iloczyn skalarny przez referencję = " << fixed << setw(10) << setprecision(3) << S << endl;
  90.     //iloczyn skalarny przez wskaźnik
  91.     wsk(n, A, B, &S);
  92.     cout << "Iloczyn skalarny przez wskaźnik = " << fixed << setw(10) << setprecision(3) << S << endl;
  93.  
  94.     system("PAUSE");
  95.     return 0;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement