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

Векторы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Передача функции заранее неизвестного объекта http://www.cyberforum.ru/cpp-beginners/thread1040495.html
Здравствуйте. Можно ли не используя шаблонов передать функции объект заранее неизвестного класса и применить к нему функцию-член? #include <iostream> #include "Cat.h" #include "Dog.h" using namespace std; void makeItVoice( /* указатель на экземпляр заранее неизвестного класса */) { /* указатель на экземпляр заранее неизвестного класса */.voice();
C++ Вставка нового столбца в двумерном массиве Вставить новый столбец после столбца, в котором нет ни одного отрицательного элемента. http://www.cyberforum.ru/cpp-beginners/thread1040488.html
Умножение целочисленных прямоугольных матриц C++
#include <iostream> #include <stdlib.h> #include <time.h> #include <cmath> #include <math.h> using namespace std; void tselyi1(int **mas, int const n,int const m); void tselyi2(int **mas, int const n,int const m);
C++ подскажите новичку добрые друзья(
всем ПРИВЕТ =) ребята хотел у вас спросить, с чего надо начинать, что бы понимать программировании, проста с задачам который мне надо было решать )здесь помогли, но хочу понять ) как надо правильно научиться вообщем хочу чтоб смог я сам решать или создать какой нибудь Составить главную программу и функциюи именно с чего надо начинать ???? я почти нечего не понимаю в программировании (((( вот и...
C++ Linux Реализация функции wait http://www.cyberforum.ru/cpp-beginners/thread1040471.html
Где можно найти реализацию ф-ии wait в исходных текстах ядра? У меня стоит задание найти реализацию функции wait, которая ожидает завершение дочернего процесса и объяснить как она релизована, но я слышал что её реализации может и не оказаться, тогда будет необходимо пояснить почему её нет. Простым поиском по ядру удалось найти файлы wait.c и несколько с таким же именем, но нигде нет реализации...
C++ Двумерный массив прошу растолковать, впереди сессия, очень нужно!! подробнее

Показать сообщение отдельно
EdNaron
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 18
17.12.2013, 11:50  [ТС]     Векторы
я опечатался, простите, сразу же исправил. по циклу все так же не сортирует
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int i, j; 
 
    for( j=0; j<n; j++) //ïåðåìåùГ*ГҐГІ òîëüêî ïåðâûé ýëåìåГ*ГІ
     { 
         for (i=j; i<n-1; i++)
            {
                   min=Vec_a.DlinaM(Vec_a.vecM[i]);
                   max=Vec_a.DlinaM(Vec_a.vecM[i+1]);
                   {  
                   if(min<max)  
                        {  
                         k1=Vec_a.vecM[i].X; 
                         k2=Vec_a.vecM[i].Y;
                         Vec_a.vecM[i].X = Vec_a.vecM[i+1].X;
                         Vec_a.vecM[i].Y = Vec_a.vecM[i+1].Y;
                         Vec_a.vecM[i+1].X=k1;
                         Vec_a.vecM[i+1].Y=k2;
                        } 
                   }
                   
            }     
     }
Добавлено через 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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include <iostream>
#include <cmath>
using namespace std;
class Vector 
{
public:
    struct VEC 
    {double X,Y;};
   VEC vec;
   VEC vecM[30];
   Vector(double x,double y){vec.X=x; vec.Y=y;} // конструктор имеет такое же имя что и класс
    
  /*void Sort (VEC vecM)
  {    struct VEC t;
       struct VEC end;
       int i;
       t=vecM[i];
        if(Dlina(vecM[i])< Dlina(vecM[i+1])
        vecM[i]=vecM[i+1];
        vecM[i+1]=t;
} */
  
   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 Scale (Vector v) //скалярное умножение
   {
           return vec.X*v.vec.X+vec.Y*v.vec.Y;
   }
   
  double ScaleA (Vector v, int k) //умножение вектора на число
   {
        return (vec.X*=k),(vec.Y*=k);
   } 
 
  
   
    double Dlina (Vector v) //длина вектора
   {
           return sqrt(pow(v.vec.X,2) + pow(v.vec.Y,2));
   }      
   
   double DlinaM (VEC VecM) //длина вектора
   {int i;
           return sqrt(pow(vecM[i].X,2) + pow(vecM[i].Y,2));
   }      
   
   void Sort(VEC VecM, int n)
{
 VEC tmp;
 
    for(int i = 0; i < n - 1; ++i) // i - номер прохода
    {            
        for(int j = i; j < n - 1; ++j) // внутренний цикл прохода
        {     
            if (DlinaM(vecM[j+1]) < DlinaM(vecM[j])) 
            {
                tmp = vecM[j+1]; 
                vecM[j+1] = vecM[j]; 
                vecM[j] = tmp;
            }
        }
    }
}
 };
int main()
{double x,kx,y,ky;
    int n,a;
    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<<"Введите число для умножения = "; cin>>a;
    Vec_a.ScaleA(Vec_a, a); //произведение вектора а и числа
    cout << "Умножение на число (a) = (" << Vec_a.vec.X<<";"<<Vec_a.vec.Y<<")" ;
    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;
    cout<<"Исходный массив: ";
    for (int i=0; i<n; i++) //Вывод массива
        {cout << "(" << Vec_a.vecM[i].X<<";"<<Vec_a.vecM[i].Y<<")  " ;}
    cout<<endl;    
    
double k1, k2, d1, d2, min, max;
int i, j; 
 
Vec_a.Sort(Vec_a.vecM[i],n);
 
for ( i=0; i<n; i++) //Вывод массива
        {cout << "(" << Vec_a.vecM[i].X<<";"<<Vec_a.vecM[i].Y<<")  " ;}
    cout<<endl;       
 
         
    system("PAUSE");
    return 0;
}
 
Текущее время: 15:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru