sing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static double[] X = new double[] {0, 2, 2, 0};
static double[] Y = new double[] {0, 0, 2, 2};
static int count;
static double Qx, Qy, Zx, Zy;
static double Snative = 0;
static double Spieces = 0;
static double e = 0.0001;
static double Area3(double X1, double Y1, double X2, double Y2, double X3, double Y3) {
double area = 0;
double a, b, c, p;
c = Math.Sqrt(Math.Pow(Y1 - Y2, 2) + Math.Pow(X1 - X2, 2));
b = Math.Sqrt(Math.Pow(Y2 - Y3, 2) + Math.Pow(X2 - X3, 2));
a = Math.Sqrt(Math.Pow(Y1 - Y3, 2) + Math.Pow(X1 - X3, 2));
p = (a + b + c) / 2;
area = Math.Sqrt(p * (p - a) * (p - b) * (p - c));
return area;
}
static double ReadCoor(string str) {
double result;
Console.Write(str);
result = double.Parse(Console.ReadLine());
return result;
}
static void Sarea(double Ax, double Ay, string pname) {
Spieces = Area3(Ax, Ay, X[0], Y[0], X[count - 1], Y[count - 1]);
for (int i = 0; i < count - 1; i++) {
Spieces += Area3(Ax, Ay, X[i], Y[i], X[i + 1], Y[i + 1]);
}
Console.WriteLine("Point {0} is {1}side", pname, ((Math.Abs(Snative - Spieces) < e) ? "in" : "out"));
}
static void Main(string[] args)
{
Console.WriteLine ("Enter coordinates of Q-point.");
Qx = ReadCoor("X = ");
Qy = ReadCoor("Y = ");
Console.WriteLine("Enter coordinates of Z-point.");
Zx = ReadCoor("X = ");
Zy = ReadCoor("Y = ");
count = X.Length;
for (int i = 1; i < count-1; i++) {
Snative += Area3(X[0], Y[0], X[i], Y[i], X[i + 1], Y[i + 1]);
}
Sarea(Qx, Qy, "Q");
Sarea(Zx, Zy, "Z");
Console.WriteLine("Done. Press any key...");
Console.ReadKey(true);
}
}
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.