![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
-ZoLToN- |
![]()
Сообщение
#1
|
Гость ![]() |
Здравствуйте! Помогите пожалуйста решить следующую задачу:
Реализовать набор подпрограмм для выполнения следующих операций над векторами: а) сложение; б) вычитание; в) скалярное умножение векторов; г) умножение вектора на число; д) нахождение длины вектора. 1) Дан массив A – массив векторов. Отсортировать его в порядке убывания длин векторов. 2) С помощью датчика случайных чисел сгенерировать 2N целых чисел. N пар этих чисел задают N точек координатной плоскости. Вывести номера тройки точек, которые являются координатами вершин треугольника с наибольшим углом. |
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
в чем проблема? что пробовал делать?
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Гость |
![]()
Сообщение
#3
|
Гость ![]() |
Основная проблема состоит именно в алгоритме поиска максимального угла (понятно что проще всего через скалярное произведение).Не могу написать алгоритм поиска. Также не получается передать в подпрограммы данные векторов.
|
мисс_граффити |
![]()
Сообщение
#4
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
а какие данные и как ты пытаешься передать?
судя по заданию, речь именно про определение по скалярному произведению (то есть по косинусу)... -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
-ZoLToN- |
![]() ![]()
Сообщение
#5
|
Гость ![]() |
Наколбасил следующее:
#include <iostream.h> Вся проблема возникла в порядке обхода. Я придумал идею, в коде реализовать не могу =(. Например есть пять точек, по две координаты у каждой. Шаг 1:Мы берем первую точку (пусть i) Шаг 2:Берем i+1 точку. Шаг 3:Считаем координаты вектора из этих точек. Шаг 4: Берем одну точку из оставшихся (пусть j). (Нужно наверное выражение с if). Шаг 5: Считаем координаты вектора из точек i+1 и j. Шаг 6: Считаем угол. Шаг 7: Шаги 1-6 повторяем для всех точек, оставшихся после взятия точек i и i+1. Шаг 8: За i берем точку i+1 и повторяем сначала! Никак в коде этот алгоритм не могу сделать. Помогите кто чем может =) Заранее спасибо. |
-ZoLToN- |
![]()
Сообщение
#6
|
Гость ![]() |
Без аккаунта нельзя редактировать посты! Одну ошибку заметил:
t1=a[i+1][1]-a[i][1]; // Вычисляем координаты вектора 1 Здесь везде должно быть 0 и 1. t1=a[i+1][0]-a[i][0]; // Вычисляем координаты вектора 1 |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
У тебя в заголовке темы написан язык С++? Значит, можно сделать класс TVector, и для него перегрузить операции сложения/вычитания/умножения? Тогда этот твой алгоритм будет проще реализовать...
Или пойдем сложным путем? |
мисс_граффити |
![]()
Сообщение
#8
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Цитата Функция сложения векторов! Сделал через признак выдачи (Int pr), т.к. не знаю как вернуть массив из функции! как вариант: void sloj(int x1,int y1,int x2,int y2,int* c) -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
-ZoLToN- |
![]()
Сообщение
#9
|
Гость ![]() |
|
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Чем решение trminator-а не устраивает? (или ты решил, что в данном разделе правила НЕ действуют?)
Операции над векторами |
-ZoLToN- |
![]()
Сообщение
#11
|
Гость ![]() |
Спасибо за помощь!
|
-ZoLToN- |
![]()
Сообщение
#12
|
Гость ![]() |
Никак не могу выловить ошибку в программе.
Floating point error: Domain. Это, судя по хелпу, ошибка которая возникает, когда функция бесконечна (т.е. деление на 0 например). #include <iostream.h> |
-ZoLToN- |
![]()
Сообщение
#13
|
Гость ![]() |
Подскажите пожалуйста если кто видит ошибку.
|
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
Добавь строку:
if (dlin(t1,t2) == 0) { И увидишь, что dlin(t1, t2) = 0... Однако:
|
-ZoLToN- |
![]()
Сообщение
#15
|
Гость ![]() |
А есть какие-нибудь идеи как это исправить?
|
мисс_граффити |
![]()
Сообщение
#16
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
по смыслу: если вектор вырождается в точку, чем равен угол между ним и другим вектором?
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 6:15 |