iloczyn skalarny wektora

0

Potrzebuje Waszej dodatkowej opinii o programie liczącym iloczyn skalarny dwóch wektorów. Oraz schematu blokowego.

#include <iostream>
using namespace std;

int main()
{
float vectorA[2], vectorB[2], scalar=0.0;

// Get input vectors from user.
cout << "Wprowadz wspolrzedne pierwszego wektora: " << endl;
for(int i=0;i<2;i++)
{
cin >> vectorA[i];

}
cout << "Wprowadz wspolrzedne drugiego wektora: : " << endl;
for(int i=0;i<2;i++)
{
cin >> vectorB[i];
}

// Calculate scalar product.
for(int i=0;i<2;i++)
{
scalar = scalar + (vectorA[i] * vectorB[i]);
}

// Output result.
cout << "Iloczyn skalarny " << scalar << endl;
return 0;
}

1

zamiast pisać komentarze każdy element zamknij w osobnej funkcji. Np:

void wczytajWektor(float vectorA[2]) {
   cout << "Wprowadź dane wektora: " << endl;
   for(int i=0;i<2;i++) {
      cin >> vectorA[i];
   }
}

W tym przypadku może się to wydawać głupie, ale im większe kod będziesz pisał tym bardziej będziesz doceniał takie podejście.

0

wersja ostatniej pętli w oparciu o STL:

#include <numeric>
...
size_t n = sizeof(vectorA) / sizeof(vectorA[0]);
scalar = std::inner_product(vectorA,  vectorA + n, vectorB, 0);

1 użytkowników online, w tym zalogowanych: 0, gości: 1