Форум программистов, компьютерный форум CyberForum.ru

Массив векторов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать класс Равносторонний треугольник http://www.cyberforum.ru/cpp-beginners/thread1043604.html
Здравствуйте. Помогите написать программу. Заранее спасибо. Создать класс Равносторонний треугольник, член класса – длина стороны. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – периметр, площадь. Создать производный класс – правильная треугольная призма с высотой H, добавить в класс метод определения объема фигуры, перегрузить методы расчета площади и вывода сведений...
C++ Создать класс Time Здравствуйте. Помогите написать программу. Заранее спасибо. Создать класс Time для работы со временем в формате «час:минута:секунда». Класс должен включать в себя не менее четырех функций инициализации: числами, строкой (например, «23:59:59»), секундами и временем. Обязательными операциями являются: вычисление разницы между двумя моментами времени в секундах, сложение времени и заданного... http://www.cyberforum.ru/cpp-beginners/thread1043602.html
C++ Написать программу, работающую со структурами Автомобиль
Здравствуйте. Помогите написать программу. Заранее спасибо. Описать структуру с именем «Автомобиль», содержащую следующие поля: а) марка; б) год выпуска; в) цена; г) цвет. Написать программу, выполняющую следующие действия: а) ввод с клавиатуры данных в массив, состоящий из N элементов типа Автомобиль; б) упорядочить все элементы по году выпуска автомобиля; в) вывести информацию об...
C++ Перегрузка операторов
Разработайте программу, в которой реализована перегрузка оператора «-». Оператор «-» должен определять разность элементов, лежащих на побочной диагонали двухмерного массива я так понимаю разность будет искаться как-то так loat array; int otherdiag = 0; for(int i = 0;i < a;i++){ otherdiag -= array; } а вот как сделать перегрузку оператора, и собрать это все добро в кучу
C++ Разработать программу для определения попадает ли точка в область изображенную на рисунке http://www.cyberforum.ru/cpp-beginners/thread1043575.html
Разработать программу для определения – попадает ли точка с координатами x, y, в область изображенную на рисунке. Исходные данные (x, y, R1, R2) должны быть считаны с экрана. Осуществлять проверку исходных данных (x1, y1, R1, x2, y2, R2) на соответствие варианту (обязательное касание окружностей). Помогите пожалуйста! У меня с нижней частью запара. Вот те ограничения, что я использую:...
C++ Открытие файлов разных расширений в одной программе Здравствуйте, есть вопрос. Как задать условие для открытия файла? есть программа, в которой при нажатии на обзор как и всегда предлагается выбрать файл, так вот, как сделать так, что бы например если этот файл имеет расширение .doc или .docx то происходит одно, а если .txt то другое, и если какое нибудь другое расширение то выпрыгивает ошибка и пугает людей. Спасибо) Добавлено через 50 минут... подробнее

Показать сообщение отдельно
EdNaron
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 18
16.12.2013, 13:43     Массив векторов
Помогите разобраться , не знаю как создать массив из структур:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <iostream>
#include <cmath>
using namespace std;
class Vector 
{
public:
    struct VEC 
    {double X,Y;};
   VEC vec;
   VEC vecM[10];
  // Vector(){vec.X=vec.Y=0;} // конструктор по умолчанию
   Vector(double x,double y){vec.X=x; vec.Y=y;} // конструктор
   {vecM.X=x; vecM.Y=y;} 
  // Vector(const Vector &v){vec.X=v.vec.X;  vec.Y=v.vec.Y;} // копиконструктор
  
   Vector Sum (Vector v) //сложение
   { 
        Vector t(*this);
        t.vec.X+=v.vec.X;
        t.vec.Y+=v.vec.Y;
        return t;
    }
    
   Vector Sub (Vector v) //вычитание
   { 
        Vector t(*this);
        t.vec.X-=v.vec.X;
        t.vec.Y-=v.vec.Y;
        return t;
    } 
       
 
   
 /* double ScaleA (Vector v, int k) //умножение вектора на число
   {
        Vector t(*this);
        t.vec.X=t.vec.X*k;
        t.vec.Y=t.vec.Y*k;
        return t;
   } */
 
    double Scale (Vector v) //скалярное умножение
   {
           return vec.X*v.vec.X+vec.Y*v.vec.Y;
   }
   
    double Dlina (Vector v) //длина вектора
   {
           return sqrt(pow(/*vec.X * */v.vec.X,2) + pow(/*vec.Y**/v.vec.Y,2));
   }      
   
 };
int main()
{double x,kx,y,ky;
    int n; 
    system("chcp 1251");
    //cout<<"Введите количество элементов массива = ";
   //  cin>>n;
    
    cout<<"Введите x="; 
    cin>>x; //Вводим значение х для вектора
    cout<<"Введите y="; 
    cin>>y; //Вводим значение у для вектора
    Vector Vec_a(x,y); //определение структурной переменной Vec_a c Vec_a.X=x Vec_a.Y=y
    cout << "Vec a  = (" << Vec_a.vec.X<<";"<<Vec_a.vec.Y<<")" ;//вывод вектора 
    cout<<endl;
    cout<<"Введите x="; cin>>x; kx=x; //Вводим значение х для вектора
    cout<<"Введите y="; cin>>y; ky=y;//Вводим значение у для вектора
    Vector Vec_b(x,y); //определение структурной переменной Vec_b c Vec_b.X=x Vec_b.Y=y
    cout << "Vec b  = (" << Vec_b.vec.X<<";"<<Vec_b.vec.Y<<")"; //вывод вектора a в виде Vec a = 4 
    
 
    Vec_b=Vec_a.Sum(Vec_b); // сложение
    cout<<endl;
    cout << "Сумма векторов = (" << Vec_b.vec.X<<";"<<Vec_b.vec.Y<<")" ;//вывод вектора a в виде Vec a = 4 
    
    
    Vec_b.vec.X=kx; Vec_b.vec.Y=ky;
    Vec_b=Vec_a.Sub(Vec_b); // вычитание
    cout<<endl;
    cout << "Разность векторов = (" << Vec_b.vec.X<<";"<<Vec_b.vec.Y<<")" ;//вывод вектора a в виде Vec a = 4 
    cout<<endl;
    
    Vec_b.vec.X=kx; Vec_b.vec.Y=ky;
    x=Vec_a.Scale(Vec_b); // скалярное умножение
    cout<<"Скалярное произведение = "<<x<<endl;
    
    x=Vec_a.Dlina(Vec_a); // Длина вектора
    cout<<"Длинна вектора (a) ="<<x<<endl;
    cout<<endl;
    
  /*  int a;
    cout<<"Введите число="; cin>>a;
    x=Vec_a.ScaleA(Vec_b, a); //произведение вектора а и числа
    cout<<"Умножение на число="<<x<<endl; */
    cout<<endl;
    
    cout<<"Задача №1: Дан массив A - массив векторов. Отсортировать его в порядке убывания длин векторов. \n";
    cout<<"Введите количество элементов = "; cin>>n;
    vecM=new VEC[10];
    for (int i=0; i<n; i++)
        {cout<<"Введите x="; Vec_a.vecM[i].X=x;
         cout<<"Введите y="; Vec_a.vecM[i].Y=y;
         } 
         
         
    system("PAUSE");
    return 0;
}
Добавлено через 53 минуты
я создал массив, но не знаю как организовать сортировку в порядке убывания длин векторов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <iostream>
#include <cmath>
using namespace std;
class Vector 
{
public:
    struct VEC 
    {double X,Y;};
   VEC vec;
   VEC vecM[10];
  // Vector(){vec.X=vec.Y=0;} // конструктор по умолчанию
   Vector(double x,double y){vec.X=x; vec.Y=y;} // конструктор
  // {vecM[10].X=x; vecM[10].Y=y;} 
  // Vector(const Vector &v){vec.X=v.vec.X;  vec.Y=v.vec.Y;} // копиконструктор
  
   Vector Sum (Vector v) //сложение
   { 
        Vector t(*this);
        t.vec.X+=v.vec.X;
        t.vec.Y+=v.vec.Y;
        return t;
    }
    
   Vector Sub (Vector v) //вычитание
   { 
        Vector t(*this);
        t.vec.X-=v.vec.X;
        t.vec.Y-=v.vec.Y;
        return t;
    } 
       
 
   
 /* double ScaleA (Vector v, int k) //умножение вектора на число
   {
        Vector t(*this);
        t.vec.X=t.vec.X*k;
        t.vec.Y=t.vec.Y*k;
        return t;
   } */
 
    double Scale (Vector v) //скалярное умножение
   {
           return vec.X*v.vec.X+vec.Y*v.vec.Y;
   }
   
    double Dlina (Vector v) //длина вектора
   {
           return sqrt(pow(/*vec.X * */v.vec.X,2) + pow(/*vec.Y**/v.vec.Y,2));
   }      
   
 };
int main()
{double x,kx,y,ky;
    int n; 
    system("chcp 1251");
    cout<<"Введите x="; 
    cin>>x; //Вводим значение х для вектора
    cout<<"Введите y="; 
    cin>>y; //Вводим значение у для вектора
    Vector Vec_a(x,y); //определение структурной переменной Vec_a c Vec_a.X=x Vec_a.Y=y
    cout << "Vec a  = (" << Vec_a.vec.X<<";"<<Vec_a.vec.Y<<")" ;//вывод вектора 
    cout<<endl;
    cout<<"Введите x="; cin>>x; kx=x; //Вводим значение х для вектора
    cout<<"Введите y="; cin>>y; ky=y;//Вводим значение у для вектора
    Vector Vec_b(x,y); //определение структурной переменной Vec_b c Vec_b.X=x Vec_b.Y=y
    cout << "Vec b  = (" << Vec_b.vec.X<<";"<<Vec_b.vec.Y<<")"; //вывод вектора a в виде Vec a = 4 
    
 
    Vec_b=Vec_a.Sum(Vec_b); // сложение
    cout<<endl;
    cout << "Сумма векторов = (" << Vec_b.vec.X<<";"<<Vec_b.vec.Y<<")" ;//вывод вектора a в виде Vec a = 4 
    
    
    Vec_b.vec.X=kx; Vec_b.vec.Y=ky;
    Vec_b=Vec_a.Sub(Vec_b); // вычитание
    cout<<endl;
    cout << "Разность векторов = (" << Vec_b.vec.X<<";"<<Vec_b.vec.Y<<")" ;//вывод вектора a в виде Vec a = 4 
    cout<<endl;
    
    Vec_b.vec.X=kx; Vec_b.vec.Y=ky;
    x=Vec_a.Scale(Vec_b); // скалярное умножение векторов
    cout<<"Скалярное произведение = "<<x<<endl;
    
    x=Vec_a.Dlina(Vec_a); // Длина вектора
    cout<<"Длинна вектора (a) ="<<x<<endl;
    cout<<endl;
    
  /*  int a;
    cout<<"Введите число="; cin>>a;
    x=Vec_a.ScaleA(Vec_b, a); //произведение вектора а и числа
    cout<<"Умножение на число="<<x<<endl; */
    cout<<endl;
    
    cout<<"Задача №1: Дан массив A - массив векторов. Отсортировать его в порядке убывания длин векторов. \n";
    cout<<"Введите количество элементов = "; cin>>n;
    for (int i=0; i<n; i++) //Заполнение массива
        {cout<<"Введите x="; cin>>Vec_a.vecM[i].X;
         cout<<"Введите y="; cin>>Vec_a.vecM[i].Y;
         } 
    cout<<endl;
    for (int i=0; i<n; i++) //Вывод массива
        {cout << "(" << Vec_a.vecM[i].X<<";"<<Vec_a.vecM[i].Y<<")  " ;}
        endl;
    
    
         
    system("PAUSE");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru