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

与えられた3点のセットが1本の線上にあるかどうかをチェックするC++プログラム


これは、特定の3つのポイントのセットが1行にあるかどうかをチェックするC++プログラムです。この点によって形成される三角形の面積がゼロに等しい場合、3つの点が1本の線上にあります。

三角形の面積は-

です
0.5 * (x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)).

アルゴリズム

Begin
   Generate the points randomly.
   Calculate the area by using above formula.
   If area > 0
      Then the points don't lie on the straight line.
   else if area < 0
      Then the points don't lie on the straight line.
   else
      The points lie on the straight line.
End

#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
static int L = 1;
static int U= 20;
int main(int argc, char **argv) {
   int x3, y3, x1, x2, y1, y2;
   time_t seconds;
   time(&seconds);
   srand((unsigned int) seconds);
   //Generate the points randomly using rand().
   x1 = rand() % ( U- L+ 1) + L;
   y1 = rand() % (U - L+ 1) + L;
   x2 = rand() % (U - L + 1) + L;
   y2 = rand() % (U - L+ 1) + L;
   x3 = rand() % (U - L+ 1) + L;
   y3 = rand() % (U - L+ 1) + L;
   cout << "The points are: (" << x1 << ", " << y1 << "), (" << x2 << ", " << y2 << "), & (" << x3 << ", " << y3 << ")\n";
   //calculate area
   float a = 0.5 *(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2));
   if (a < 0)
      cout << "The points don't lie on the straight line";
   else if (a > 0)
      cout << "The points don't lie on the straight line ";
   else
      cout << "The points lie on the straight line";
}

出力

The points are: (20, 9), (6, 13), & (13, 11)
The points lie on the straight line

The points are: (9, 15), (4, 15), & (11, 16)
The points don't lie on the straight line

  1. C++で3つのポイントが同一線上にあるかどうかをチェックするプログラム

    3つの異なる値のポイントが与えられ、タスクはポイントが同一線上にあるかどうかを確認することです。 ポイントが同じ線上にある場合は同一線上にあると言われ、異なる線上にある場合は同一線上にありません。以下に、同一線上および非同一線上の点の図を示します。 入力 x1 = 1, x2 = 2, x3 = 3, y1 = 1, y2 = 4, y3 = 5 出力 no points are not collinear 入力 x1 = 1, y1 = 1, x2 = 1, y2 = 4, x3 = 1, y3 = 5 出力 points are collinear 以下のプログラム

  2. 特定のツリーグラフが線形であるかどうかをC++で確認します

    ここでは、ツリーグラフが線形であるかどうかを確認する方法を説明します。線形ツリーグラフは1行で表すことができます。これが線形ツリーグラフの例であると仮定します。 しかし、これは線形ではありません- グラフが線形であるかどうかを確認するには、2つの条件に従うことができます ノードの数が1の場合、ツリーグラフは線形です ノードの(n – 2)が次数2の場合 例 #include <iostream> #include <vector> #define N 4 using namespace std; class Graph{    p