1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
| -ZoLToN- |
15.12.2006 17:11
Сообщение
#1
|
|
Гость |
Здравствуйте! Помогите пожалуйста решить следующую задачу:
Реализовать набор подпрограмм для выполнения следующих операций над векторами: а) сложение; б) вычитание; в) скалярное умножение векторов; г) умножение вектора на число; д) нахождение длины вектора. 1) Дан массив A – массив векторов. Отсортировать его в порядке убывания длин векторов. 2) С помощью датчика случайных чисел сгенерировать 2N целых чисел. N пар этих чисел задают N точек координатной плоскости. Вывести номера тройки точек, которые являются координатами вершин треугольника с наибольшим углом. |
![]() ![]() |
| мисс_граффити |
18.12.2006 22:24
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
в чем проблема? что пробовал делать?
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
| Гость |
20.12.2006 16:57
Сообщение
#3
|
|
Гость |
Основная проблема состоит именно в алгоритме поиска максимального угла (понятно что проще всего через скалярное произведение).Не могу написать алгоритм поиска. Также не получается передать в подпрограммы данные векторов.
|
| мисс_граффити |
20.12.2006 20:58
Сообщение
#4
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
а какие данные и как ты пытаешься передать?
судя по заданию, речь именно про определение по скалярному произведению (то есть по косинусу)... -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
| -ZoLToN- |
22.12.2006 19:34
Сообщение
#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- |
22.12.2006 19:38
Сообщение
#6
|
|
Гость |
Без аккаунта нельзя редактировать посты! Одну ошибку заметил:
t1=a[i+1][1]-a[i][1]; // Вычисляем координаты вектора 1 Здесь везде должно быть 0 и 1. t1=a[i+1][0]-a[i][0]; // Вычисляем координаты вектора 1 |
| volvo |
22.12.2006 19:47
Сообщение
#7
|
|
Гость |
У тебя в заголовке темы написан язык С++? Значит, можно сделать класс TVector, и для него перегрузить операции сложения/вычитания/умножения? Тогда этот твой алгоритм будет проще реализовать...
Или пойдем сложным путем? |
| мисс_граффити |
22.12.2006 20:12
Сообщение
#8
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
Цитата Функция сложения векторов! Сделал через признак выдачи (Int pr), т.к. не знаю как вернуть массив из функции! как вариант: void sloj(int x1,int y1,int x2,int y2,int* c) -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
| -ZoLToN- |
22.12.2006 20:27
Сообщение
#9
|
|
Гость |
|
| volvo |
22.12.2006 20:38
Сообщение
#10
|
|
Гость |
Чем решение trminator-а не устраивает? (или ты решил, что в данном разделе правила НЕ действуют?)
Операции над векторами |
| -ZoLToN- |
22.12.2006 21:20
Сообщение
#11
|
|
Гость |
Спасибо за помощь!
|
| -ZoLToN- |
24.12.2006 10:01
Сообщение
#12
|
|
Гость |
Никак не могу выловить ошибку в программе.
Floating point error: Domain. Это, судя по хелпу, ошибка которая возникает, когда функция бесконечна (т.е. деление на 0 например). #include <iostream.h> |
| -ZoLToN- |
24.12.2006 10:02
Сообщение
#13
|
|
Гость |
Подскажите пожалуйста если кто видит ошибку.
|
| volvo |
24.12.2006 10:14
Сообщение
#14
|
|
Гость |
Добавь строку:
if (dlin(t1,t2) == 0) {
И увидишь, что dlin(t1, t2) = 0... Однако:
|
| -ZoLToN- |
24.12.2006 10:45
Сообщение
#15
|
|
Гость |
А есть какие-нибудь идеи как это исправить?
|
| мисс_граффити |
24.12.2006 14:34
Сообщение
#16
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
по смыслу: если вектор вырождается в точку, чем равен угол между ним и другим вектором?
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
![]() ![]() |
|
Текстовая версия | 15.11.2025 11:36 |