Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/54: Рейтинг темы: голосов - 54, средняя оценка - 4.67
 Аватар для Lucky701
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 55

Класс вектор

08.06.2011, 02:33. Показов 11155. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте! Помогите организовать класс вектор на c#, в котором есть методы позволяющие инициализировать вектор, находить минимум и максимум, складывать, остальные операции я организую сама, дописав в этом классе методы, просто чтоб я могла ориентироваться как правильно писать и получать доступ ... Спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.06.2011, 02:33
Ответы с готовыми решениями:

Создать класс "Вектор" и класс "Стек" использующий "Вектор"
Создать класс ВЕКТОР целых чисел. Разработать класс СТЕК, содержащий объект класса ВЕКТОР. Определить необходимые конструкторы,...

Класс Вектор
Реализовать класс «Вектор» с именем “ArrayVector” со следующей структурой: • поле – массив элементов вещественного типа (координаты...

Класс вектор
мне надо сделать задачу в шарпах на форме, задача Клас вектор, - это динамический массив кто может помогите,киньте...

27
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
08.06.2011, 02:37
что-то типа этого?

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
public class Vector
    {
        public double x;
        public double y;
 
        public Vector(double x, double y)
        {
            this.x = x;
            this.y = y;
        }
 
        public Vector(double value, Vector direction)
        {
            double k = value / direction.Length;
            this.x = k * direction.x;
            this.y = k * direction.y;
        }
 
        public static Vector operator+  (Vector v1, Vector v2)
        {
            return new Vector(v1.x + v2.x, v1.y + v2.y);
        }
 
        public static Vector operator -(Vector v1, Vector v2)
        {
            return new Vector(v1.x - v2.x, v1.y - v2.y);
        }
 
        public static Vector operator /(Vector v, double k)
        {
            return new Vector(v.x / k, v.y / k);
        }
 
        public static Vector operator *(double k, Vector v)
        {
            return new Vector(v.x * k, v.y * k);
        }
 
        public static Vector operator +(double k, Vector v)
        {
            return new Vector(v.x + k, v.y + k);
        }
 
        public double Length
        {
            get
            {
                return Math.Sqrt(x*x+y*y);
            }
        }
 
        public static Vector Zero
        {
            get { return new Vector(0, 0); }
        }
 
        public override string ToString()
        {
            return string.Format("X={0}, Y={1}", x, y);
        }
 
    }

ну и так далее
1
 Аватар для Lucky701
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 55
08.06.2011, 02:44  [ТС]
Спасибо большое..

Добавлено через 1 минуту
Слушай этот же класс можно использовать только если вектор состоит из двух значений, так?
0
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
08.06.2011, 02:45
так допиши еще значений)))
1
 Аватар для Lucky701
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 55
08.06.2011, 02:48  [ТС]
Ну просто проблема в том что вектор n-мерный.. тоесть значений может быть как 2 так и 3, ...7, и тд

Добавлено через 1 минуту
А можно ли както сделать чтобы в метод можно было передавать переменное количество входных параметров?
0
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
08.06.2011, 02:49
можешь вообще масив значений втолкать.. и все методы сделать циклами..
1
 Аватар для Lucky701
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 55
08.06.2011, 02:49  [ТС]
Но не масивом, а просто их перечисляя, в с++ так можно объявляя функцию так func(int a, ...)
0
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
08.06.2011, 02:51
func(int a, ...)

а в класе
публик инт а,
дабл[] б = нев дабл[а]
чтот типа такого.. сори.. мозг не варит раскладку переключать)
1
 Аватар для Lucky701
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 55
08.06.2011, 02:58  [ТС]
А если я создаю библиотеку классов то я не могу просто ее одну скомпилировать?
0
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
08.06.2011, 03:01
ага.. там в длл можно хоть сотню классов лепить.. и туда этот класс толкаешь, потом библиотеку в юзах подключаешь и библиотека.класс.метод();
1
 Аватар для Lucky701
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 55
08.06.2011, 03:14  [ТС]
спасибо)

Добавлено через 7 минут
Еще вопрос, если можна...

а как же тогда обращаться к параметрам, переданным в метод func(int, ...)

Добавлено через 2 минуты
А еще вопрос, если можна...
А как же тогда получить доступ к параметрам переданным в func(int a, ...) ?
0
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
08.06.2011, 03:24
отходил) вопроса не совсем понял поєтому скажу все связаное с написанным.. координаты вектора можна затолкать сразу целым масивом.. и обращатся к параметрам соответственно..
в директе есть класс вектор2, вектор3, вектор4.. там обращение идет типа вектор2.Х, вектор2.У и тд
1
 Аватар для Lucky701
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 55
08.06.2011, 03:30  [ТС]
Вот есть
C#
1
2
3
4
5
public Vector(double x, double y)
            {
                this.x = x;
                this.y = y;
            }
Вызов будет такой: класc.vector(1,2)
мне нужно, так что бы при инициализации вектора, можно было передать любое кол-во параметров, тоесть
класc.vector(1,2,3) или
класc.vector(1,2,3,4) и тд
но не массивом, а потом уже внутри я запишу их в массив, так вообще можно?
0
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
08.06.2011, 03:35
дык говорюже толкай туда масив сразу..
1
 Аватар для Lucky701
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 55
08.06.2011, 03:40  [ТС]
Мне нужно что бы привызове передавлись значения а потом уже метод их в массив запихивал... я просто может тебя не так поняла или ты меня
как я к ним обращусь чтоб в массив их записать?
0
 Аватар для Lucky701
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 55
08.06.2011, 03:40  [ТС]
Мне нужно что бы привызове передавлись значения а потом уже метод их в массив запихивал... я просто может тебя не так поняла или ты меня
как я к ним обращусь чтоб в массив их записать?
0
 Аватар для Lucky701
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 55
08.06.2011, 03:41  [ТС]
Мне нужно что бы привызове передавлись значения а потом уже метод их в массив запихивал... я просто может тебя не так поняла или ты меня
как я к ним обращусь чтоб в массив их записать?

Добавлено через 1 минуту
вот блин с инетом чето...
0
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
08.06.2011, 03:50
инет тут не причем.. эт сервак глючит..
не факт что сработает потому как за отсутсвия нужды я так не делал.. но можно попробовать в самом класе вместо этого х и у лепить сразу масив значений.. типа вектор(инт размер, дабл[] масив) ну там поигратся..

и я спать, до завтра)
1
 Аватар для Lucky701
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 55
08.06.2011, 13:35  [ТС]
Спокойной ночи...до завтра

Добавлено через 8 часов 6 минут
Вот нашла в инете, что если нужно передавать перем-е в метод, то можно передавать произвольное количество вещественных чисел, используя ключевое слово params, и компилятор сформирует из них массив, который и передаст в метод. Внутри метода все параметры будут видны как массив. Тогда:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public double[] x;
           // public double x;
           // public double y;
 
            public Vector(params int[] obj)
            {
                if (obj.Length == 0)
                    throw new Exception("Недостаточно аргументов в методе");
 
                for (int i = 0; i < obj.Length; i++)
                    this.x[i] = obj[i];
             //   this.y = y;
            }
Я так правильно делаю?

Добавлено через 22 минуты
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
 public int a;
            public double[] x;
            public double[] mas;
           // public double x;
           // public double y;
 
            public Vector(params double[] obj)
            {
                a = obj.Length;
                if (a == 0)
                    throw new Exception("Недостаточно аргументов в методе");
 
                for (int i = 0; i < a; i++)
                    this.x[i] = obj[i];
             //   this.y = y;
            }
 
            public Vector(double value, Vector direction)
            {
                double k = value / direction.Length;
                for (int i = 0; i < k; i++)
                this.x[i] = k * direction.x[i];
                //this.y = k * direction.y;
            }
 
            public static Vector operator +(Vector v1, Vector v2)
            {
                for (int i = 0; i < v1.Length; i++)
                    mas[i] = v1.x[i] + v2.x[i];
                    
                return new Vector(mas);
            }
Ошибка: Для нестатического поля, метода или свойства "OptLibrary.OptLibrary.Vector.mas" требуется ссылка на объект
Как правильно?

Добавлено через 1 час 6 минут
Спасибо всем, я справилась!
0
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
08.06.2011, 16:40
этот мас огласи внутри оператора.. ибо он больше негде не юзается.. и если работает - значит правильно ^^
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.06.2011, 16:40
Помогаю со студенческими работами здесь

Описать класс «Вектор»
1. Описать класс в языке программирования С # Данные- Вектор:Цвет линии, полярные координаты(длина и угол) Методы и свойства- ...

Спроектировать и создать класс вектор
Спроектировать и создать класс вектор(вектор матрицы имеется ввиду). не могу сделать. есть пример но он ошибку выдаёт using System; ...

Описать класс вектор(математ. операции)
Доброго времени суток! :) Задание: 1. Реализовать работу желательно с векторами переменной длины. 2. Реализовать определение модуля...

Создать класс Матрица — массивы массивов из класса Вектор
Добрый вечер, помогите с программой: есть класс Вектор: class Vector { private int hIndex; public int...

Описать класс вектор в пространстве, содержащий координаты его начала и конца
Описать класс вектор в пространстве, содержащий координаты его начала и конца, а также методы: нахождения длины, нахождения координат...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru