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

Геометрическая программа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Структуры и средний балл http://www.cyberforum.ru/cpp-beginners/thread316607.html
Описать запись СТУДЕНТ: Ф.И.О., оценки (математика, физика, черчение, химия, сопромат). Определить средний балл группы по физике.
C++ Задача с потоками. Необходимо сделать ввод количества потоков с клавиатуры. #include <stdio.h> #include <conio.h> #include <windows.h> #include <iostream> using namespace std; const int n = 4; int a; DWORD WINAPI ThreadFunc(PVOID pvParam) { http://www.cyberforum.ru/cpp-beginners/thread316603.html
C++ Компилятор
что делает компилятор он переводит в машинный язык что такое машинный язык
Друзья...Определить: максимальное из чисел, встречающихся в заданной матрице более одного раза. C++
Помогите,пожалуйста решить задачи на тему: использование дружественных функций и классов. Составить функцию Run которая позволит выполнить следующие действия с двухмерными массивами (если задачу решить нельзя, то сообщит об этом). Определить: максимальное из чисел, встречающихся в заданной матрице более одного раза.
C++ одномерныйе,двумерные массивы и матрицы http://www.cyberforum.ru/cpp-beginners/thread316586.html
1) Операции с элементами двумерных массивов. Дана матрица размера mxm. Все элементы главной диагонали заменить суммой наименьшего и наибольшего элементов. 2) Использование функций при наборе с одномерными массивами. Даны 4 одномерных массива. В каждом из них найти количество нечетных элементов. При решении задачи использовать процедуры и функции. 3) Даны 2 матрицы A и B. Найти среднее...
C++ Нахождение n Здравствуйте ! Написал програмку которая выводит на экран все делители без остатка для числа n. #include <iostream> #include <conio.h> using namespace std; int main () { int n; cout << "Enter number : " ; подробнее

Показать сообщение отдельно
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
16.06.2011, 06:05
Цитата Сообщение от easybudda Посмотреть сообщение
Можно найти крайнюю левую, правую, верхнюю и нижнюю координаты. Если они все принадлежат одному прямоугольнику, и только ему - значит все остальные внутри него.
Согласен, так будет конечно, лучше. Вот только с кодом у меня почему-то напряг вышел - получился вот такой слабочитабельный кусок:
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
   int maxx; // крайняя левая координата x
   int minx; // крайняя правая координата x
   int maxy; // крайняя нижняя координата y
   int miny; // крайняя верхняя координата y
   int i_maxx=0, i_minx=0, i_maxy=0, i_miny=0; // индексы прям-ков, которым они принадлежат
 
   maxx = minx = vec[0]->x1;
   maxy = miny = vec[0]->y1;
 
   for(int i = 0; i < vec.size(); ++i)
   {
        if(vec[i]->x1 > maxx) {maxx = vec[i]->x1; i_maxx = i;}
        else if(vec[i]->x1 < minx) {minx = vec[i]->x1; i_minx = i;}
 
        if(vec[i]->x2 > maxx) {maxx = vec[i]->x2; i_maxx = i;}
        else if(vec[i]->x2 < minx) {minx = vec[i]->x2; i_minx = i;}
 
        if(vec[i]->y1 > maxy) {maxy = vec[i]->y1; i_maxy = i;}
        else if(vec[i]->y1 < miny) {miny = vec[i]->y1; i_miny = i;}
 
        if(vec[i]->y2 > maxy) {maxy = vec[i]->y2; i_maxy = i;}
        else if(vec[i]->y2 < miny) {miny = vec[i]->y2; i_miny = i;}
   }
   // если все индексы совпали, то точки принадлежат одному прям-ку
   if(i_maxx == i_minx && i_maxx == i_maxy && i_maxx == i_miny)
        return i_maxx;
 
   return -1;
Может изначальная проблема в том, как я храню координаты (т.е. координаты двух противолежащих вершин - x1, y1 и x2, y2)? Может стоит хранить все 4 точки? Или создать структуру типа точка(x,y)?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru