Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2012, 11:39   #1
JohnSoap
Новичок
Джуниор
 
Регистрация: 25.05.2012
Сообщений: 1
По умолчанию Вектора, Вектора, вектора

Ребята, есть пару вопросов)) Я не могу понять следуешее как реализовать, может кто поможет) Так вот задача... "Описать тип Struct Vector, задающий вектор в трёхмерном пространстве с координатами (x,y,z) Реализовать в виде отдельных функций
а) вычесление суммы двух векторов
б) вычесление разности двух веторов
в) вычесление скалярного произведения 2 векторов
г) вычесление векторного произведения 2 векторов
д) проверка компланарности 2 векторов е) нормирование заданного вектора
ж) умножение вектора на действительное число
з) проверки равенства 2 векторов
и) проекции вектора на плоскость, определённую другой парой векторов
к) Вычесления угла между векторами.

С использованием описанных типа и функций разработать программу, которая для заданного набора из N векторов находит
1)Сумму всех векторов нормалей к плоскостям, определённых подборами комплексных векторов
2) Количество векторов с ненулевыми проекциями на плоскость, определяемую парой векторов, образующих угол, наиболее близкий к заданному углу"

Так вот... Меня интересует как сделать подпрограмму "и)" и как реализовать основную программу???
могу скинуть наработку из предыдущих подпрогамм, если надо то вот
Код:
#include <Windows.h>
 #include <stdio.h>
 #include <math.h>
 #include <stdlib.h>
 #define PI 3.141592653589793238462643383279502884197169399375105820
 struct vector{
 double x;
 double y;
 double z;
 };
 struct vector S(struct vector x,struct vector y){
 struct vector z;
 z.x=x.x+y.x;
 z.y=x.y+y.y;
 z.z=x.z+y.z;
 return z;
 }
 struct vector R(struct vector x,struct vector y){
 struct vector z;
 z.x=x.x-y.x;
 z.y=x.y-y.y;
 z.z=x.z-y.z;
 return z;
 }
 double Scal(struct vector x,struct vector y){
 double z;
 z=x.x*y.x+x.y*y.y+x.z*y.z;
 return z;
 }
 struct vector VecProiz(struct vector x,struct vector y){
 struct vector z;
 z.x=x.y*y.z-x.z*y.y;
 z.y=x.z*y.x-x.x*y.z;
 z.z=x.x*y.y-x.y*y.x;
 return z;
 }
 int Compl(struct vector x,struct vector y,struct vector z){
 int i;
 if((x.x*y.y*z.z+y.x*z.y*x.z+x.y*y.z*z.x-x.z*y.y*z.x-z.y*y.z*x.x-x.y*y.x*z.z)==0)
 i=1;
 else
 i=0;
 return i;
 }
 struct vector Norm(struct vector x){/*Вектор единичной длины (||x|| = 1) называется нормированным.
 Ненулевой вектор (x ≠ 0) можно нормировать, разделив его на длину, т.е. x = ||x|| (x/||x||) = ||x|| e. 
 Здесь e = x/||x|| — нормированный вектор.*/
 struct vector z;
 double c;
 c=sqrt(pow(x.x,2)+pow(x.y,2)+pow(x.z,2));
 z.x=x.x/c;
 z.y=x.y/c;
 z.z=x.z/c;
 return z;
 }
 struct vector DVec(struct vector x,double z){
 struct vector y;
 y.x=x.x*z;
 y.y=x.y*z;
 y.z=x.z*z;
 return y;
 }
 int RavenVec(struct vector x,struct vector y){
 int i;
 if((x.x/y.x)==(x.y/y.y)==(x.z/y.z))
 if((sqrt(x.x*x.x+x.y*x.y+x.z*x.z))==(sqrt(y.x*y.x+y.y*y.y+y.z*y.z)))
 i=1;
 else
 i=0;

 else
 i=0;
 return i;
 }

Последний раз редактировалось ACE Valery; 25.05.2012 в 17:14.
JohnSoap вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка вектора DarkEN_ANGEL Общие вопросы C/C++ 11 24.05.2012 18:51
на вектора Рузанна Помощь студентам 3 13.10.2011 17:44
Сортировка вектора G-58 Visual C++ 2 18.05.2011 21:26
Вектора C++ DimaSoldier Помощь студентам 4 15.10.2010 00:08
Получение вектора PastoriXx Общие вопросы .NET 0 14.05.2010 19:52