Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ เพื่อคำนวณผลคูณของสองเวกเตอร์


นี่คือโปรแกรม C++ สำหรับคำนวณ Cross Product ของ Two Vectors

สมมุติว่า

M =m1 * i + m2 * j + m3 * k

N =n1 * i + n2 * j + n3 * k.

ผลคูณไขว้ =(m2 * n3 – m3 * n2) * i + (m1 * n3 – m3 * n1) * j + (m1 * n1 – m2 * n1) * k

โดยที่ m2 * n3 – m3 * n2, m1 * n3 – m3 * n1 และ m1 * n1 – m2 * n1 คือสัมประสิทธิ์ของเวกเตอร์หน่วยตามทิศทาง i, j และ k

อัลกอริทึม

Begin
   Declare a function cProduct().
      Declare three vectors v_A[], v_B[], c_P[] of the integer
      datatype.
      c_P[0] = v_A[1] * v_B[2] - v_A[2] * v_B[1].
      c_P[1] = -(v_A[0] * v_B[2] - v_A[2] * v_B[0]).
      c_P[2] = v_A[0] * v_B[1] - v_A[1] * v_B[0].
   Initialize values in v_A[] vector.
   Initialize values in v_B[] vector.
   Initialize c_P[] vector with an integer variable n.
   Print “Cross product:”.
   Call the function cProduct() to perform cross product within v_A[] and
v_B[].
   for (int i = 0; i < n; i++)
      print the value of c_P[] vector.
End.

โค้ดตัวอย่าง

#include
#define n 3
using namespace std;
void crossProduct(int v_A[], int v_B[], int c_P[]) {
   c_P[0] = v_A[1] * v_B[2] - v_A[2] * v_B[1];
   c_P[1] = -(v_A[0] * v_B[2] - v_A[2] * v_B[0]);
   c_P[2] = v_A[0] * v_B[1] - v_A[1] * v_B[0];
}
int main() {
   int v_A[] = { 7, 6, 4 };
   int v_B[] = { 2, 1, 3 };
   int c_P[n];
   cout << "Cross product:";
   crossProduct(v_A, v_B, c_P);
   for (int i = 0; i < n; i++)
      cout << c_P[i] << " ";
   return 0;
}

ผลลัพธ์

Cross product: 14 13 -5