C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

2つのベクトルの外積を計算するC++プログラム


これは、2つのベクトルの外積を計算するためのC++プログラムです。

仮定しましょう

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

  1. C++で2つのバイナリ文字列を追加するプログラム

    2進数の文字列が2つある場合、それら2つの2進数文字列を加算して得られた結果を見つけ、その結果を2進数文字列として返す必要があります。 2進数は、0または1のいずれかで表される数値です。2つの2進数を加算する際には、2進数の加算規則があります。 0+0 → 0 0+1 → 1 1+0 → 1 1+1 → 0, carry 1 入力 str1 = {“11”}, str2 = {“1”} 出力 “100” 入力 str1 = {“110”},

  2. C++での2本の線の交点のプログラム

    線ABに対応する点AとB、および線PQに対応する点PとQが与えられます。タスクは、これら2つの線の交点を見つけることです。 注 −点はX座標とY座標の2D平面で与えられます。 ここで、A(a1、a2)、B(b1、b2)およびC(c1、c2)、D(d1、d2)は、2つの異なる線を形成している座標であり、P(p1、p2)は交点です。 (交点の図解のためだけに) 交点を見つける方法 − 上の図を-としましょう 例 したがって、(a1、a2)、(b1、b2)、(c1、c2)、(d1、d2)を使用して、:A1 =b2 --a2B1 =a1 --b1C1 =(A1 * a1)+( B1 *