Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 16.05.2012
Сообщений: 32

Среди треугольников с вершинами в заданном множестве точек на плоскости

25.03.2013, 14:53. Показов 5585. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Среди треугольников с вершинами в заданном множестве точек на плоскости указать такой, стороны которого содержат максимально число точек заданного множества.

Как я поняла сначала создать два массива координаты X и Y
Потом перебираем точки
Первый цикл: что бы тч не лежали на одной прямой...
А дальше... что??(
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.03.2013, 14:53
Ответы с готовыми решениями:

Построить такой многоугольник с вершинами в заданном на плоскости множестве точек периметр которого максимален
Саламалейкум, парни. Такая задача: Построить такой многоугольник(не обязательно выпуклый) с вершинами в заданном на плоскости множестве...

Подсчитать количество равносторонних треугольников с вершинами в заданном множестве точек на плоскости
MathCAD 14 IV Написать программный модуль для решения следующей задачи. Подсчитать количество равносторонних треугольников с...

Подсчитать количество равносторонних треугольников с вершинами в заданном множестве точек на плоскости
ребят помогите пожалуйста решить задания по маткаду, буду очень всем благодарна Написать программный модуль для решения следующей задач....

7
 Аватар для VaJI
7 / 5 / 5
Регистрация: 24.03.2013
Сообщений: 40
25.03.2013, 15:59
Kuzichka, можно один двумерный) или же массив структур.
1. определяем и заполняем массив точек.
2. начинаем цикл по 3 точкам.
2.1 начинаем цикл по первой точки
2.2 начинаем цикл по второй точке в тоже время параметр цикла не должен брать первую выбранную точку.
2.3 тоже 2.2 только для третьей( в общем нужно добиться чтобы точки были разными)
3. проверка на "треугольность" точек(чтоб не лежали на одной прямой)
4. далее задаем по точкам некую фигуру ограниченная 3мя функциями(прямыми y = ax + b)
5. далее еще один цикл который перебирает все точки и ищет те, при которых выполняется неравенство (y <> ax + b)
6. если такое кол-во точек больше прежнего, то соответственно у нас новый максимум вхождений.

вот еще про треугольник:
Цитата Сообщение от Somebody Посмотреть сообщение
5. Про треугольник.
Математическая часть - векторное и псевдоскалярное произведение.
Реализация - считаются произведения (1,2,3 - вершины треугольника, 0 - точка):
(x1-x0)*(y2-y1)-(x2-x1)*(y1-y0)
(x2-x0)*(y3-y2)-(x3-x2)*(y2-y0)
(x3-x0)*(y1-y3)-(x1-x3)*(y3-y0)
Если они одинакового знака, то точка внутри треугольника, если что-то из этого - ноль, то точка лежит на стороне, иначе точка вне треугольника.
0
0 / 0 / 0
Регистрация: 16.05.2012
Сообщений: 32
25.03.2013, 16:10  [ТС]
Спасибо)) Лучше остаться с двумя массивами, так проще как то...) Осталось реализовать)

Добавлено через 5 минут
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
#include <iostream>
#include <ctime>
#include <cmath>
 
using namespace std;
 
void create(double *a,double *b,int N) //создание массива
{
for (int i=0;i<N;i++)
{
     a[i]=i;
     b[i]=i+N;
}
}
 
 
void get(double *a,double *b,int N) //Поиск трех злостных точек
{
    tpoint T1,T2,T3; //три точки
 
 
    for (int i=0;i<N;i++)  //Анализ всех комбинаций для построения треугольиков
        for (int j=i+1;j<N;j++)
            for (int k=j+1;k<N;k++)
    {

Начало правильное?? )) Я первый раз пишу на на С++ будьте снисходительны))
0
 Аватар для VaJI
7 / 5 / 5
Регистрация: 24.03.2013
Сообщений: 40
25.03.2013, 16:53
Цитата Сообщение от Kuzichka Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
void create(double *a,double *b,int N) //создание массива
{
for (int i=0;i<N;i++)
{
a[i]=i;
b[i]=i+N;
}
}
вы создаете указатели на переменную а не массив. Если хотите создать динамический массив познакомьтесь с функцией operator new(). А лучше хотя бы какой нибудь курс прочтите, что то типа C++ за 21 день.
Слишком сложно для первой задачи

Добавлено через 2 минуты
и еще что вы хотите с помощью функции get()? поиск 3 точек? а зачем их искать? и начните с главной функции main опишите какие функции хотите видеть в своей программе.
0
0 / 0 / 0
Регистрация: 16.05.2012
Сообщений: 32
25.03.2013, 16:56  [ТС]
я думала основную часть так сделать..

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void main()
{
system("CLS");
double *Arr1,*Arr2;
int N=9;
Arr1=new double[N];
Arr2=new double[N];
 
create(Arr1,Arr2,N); //Создание массива из N элементов
show(Arr1,Arr2,N); //отображение массива на экране
get(Arr1,Arr2,N); //Поис злых точек
 
}
Добавлено через 1 минуту
но я уже запуталась(
0
 Аватар для VaJI
7 / 5 / 5
Регистрация: 24.03.2013
Сообщений: 40
25.03.2013, 17:14
Цитата Сообщение от Kuzichka Посмотреть сообщение
create(Arr1,Arr2,N); //Создание массива из N элементов
вы его уже создали вот этими строками:

Цитата Сообщение от Kuzichka Посмотреть сообщение
int N=9;
Arr1=new double[N];
Arr2=new double[N];
а здесь вы его инициализируете:

Цитата Сообщение от Kuzichka Посмотреть сообщение
void create(double *a,double *b,int N)
{
for (int i=0;i<N;i++)
{
a[i]=i;
b[i]=i+N;
}
}
Добавлено через 44 секунды
но это придирки) пока что все хорошо)
0
0 / 0 / 0
Регистрация: 16.05.2012
Сообщений: 32
25.03.2013, 17:18  [ТС]
Дальше я планировала сделать поиск точек с помощью get, но вы сказали
" поиск 3 точек? а зачем их искать?" ... и я не знаю, что делать дальше(
0
 Аватар для VaJI
7 / 5 / 5
Регистрация: 24.03.2013
Сообщений: 40
25.03.2013, 17:29
ну смотрите, функцию get() тоже желательно разбить на подзадачи:
1. проверка точек на "треугольность"
2. подсчет точек, а точнее сколько вхождений в данную фигуру при нынешних точках.. кстати проверить точка входит в треугольник из трех точек можно вынести тоже в отдельную функцию.
на подсчет точек тоже необходим массив.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.03.2013, 17:29
Помогаю со студенческими работами здесь

Подсчитать количество равносторонних треугольников с различными длинами оснований и вершинами в заданном множестве точек на плоскости.
народ, помогите написать программу: &quot;Подсчитать количество равносторонних треугольников с различными длинами оснований и вершинами в...

Из заданного множества точек на плоскости построить все возможные пары треугольников с вершинами в заданном множестве
Здравствуйте, помогите, пожалуйста, решить: Из заданного множества точек на плоскости построить все возможные пары треугольников с...

Найти ромб наибольшей площади с вершинами в заданном множестве точек на плоскости.
Доброго времени суток! НАйти ромб наибольшей площади с вершинами в заданном множестве точек на плоскости. Прошу помочь с задачей!

Построить множество всех различных выпуклых четырёхугольников с вершинами в заданном множестве точек на плоскости
Привет ребята! :pardon: Преподаватель по информатике задал мне нереально сложную задачу: &quot;Построить множество всех различных...

В заданном множестве точек на плоскости найдите четыре точки, которые могут служить вершинами квадрата
1)В заданном множестве точек на плоскости найдите четыре точки, которые могут служить вершинами квадрата.


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru