C# задача с использованием процедуры. заданы два ветора x и y......
Формулировка задачи:
Заданы два вектора х = (x1, x2, x3, x4), y = (y1, y2, y3, y4). Определить угол a между векторами x и y по формуле:
Вычисление скалярного произведения оформить в виде процедуры.
(в моем коде мало чего верного)
static void enter(out int[] x,out int[] y)
{
x = new int[4];
for (int i = 0; i <= 3; i++)
{
Console.Write("x [{0}]=", i);
x[i] = Convert.ToInt32(Console.ReadLine());
Console.Write("{0,3}", x[i]);
Console.Write(x[i]);
}
y = new int[4];
for (int j = 0; j <= 3; j++)
{
Console.Write("y [{0}]=", j);
x[j] = Convert.ToInt32(Console.ReadLine());
Console.Write("{0,3}", y[j]);
Console.Write(x[j]);
}
}
static void process(ref int[]x,ref int[] y)
{
double a,b,c,d;
b=x[0]*y[0]+x[1]*y[1]+x[2]*y[2]+x[3]*y[3]; //x*y
c=x[0]*x[0]+x[1]*x[1]+x[2]*x[2]+x[3]*x[3];//x*x
d=y[0]*y[0]+y[1]*y[1]+y[2]*y[2]+y[3]*y[3];//y*y
a = Math.Acos(b/(Math.Sqrt(c*d)));
Console.Write("{0}", a);
}
static void Main(string[] args)
{
int[] x;
int[] y ;
enter(out x, out y);
process(ref x, ref y);
Console.ReadKey();Решение задачи: «C# задача с использованием процедуры. заданы два ветора x и y......»
textual
Листинг программы
static double DotProduct(double[] v1, double v2){
double result = 0;
for(int i = 0; i<v1.Length; i++){
result+=v1[i]*v2[i];
}
return result;
}