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

принадлежность точки прямоугольнику - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработать процедуру или функцию, выполняющую заданную операцию над строками. Предусмотреть и описать реакцию на некорректное задание параметров. http://www.cyberforum.ru/cpp-beginners/thread251427.html
Не использовать имеющиеся в языке средства обработки строк. Определить количество вхождений каждого из символов в строке s Имя процедуры/функции Numchar(s)
C++ MessageBox выводит иероглифы MessageBox(NULL, reinterpret_cast<LPCTSTR>("Hello world"), reinterpret_cast<LPCTSTR>("windows"), MB_OK); Почему вместо строк Hello world и windows выводятся иероглифы и как от них избавится? Помогите кому не лень! Писал в Visual c++ http://www.cyberforum.ru/cpp-beginners/thread251418.html
двоичные файлы C++
Помогите, не могу сообразить как написать программу. Дан файл F, содержит сведения о датах рождения сотрудников(фамилия, число, месяц и год рождения). Найти всех сотрудников, у которых будет день рождение в данном месяце данного года и указать возраст. Реализовать на двоичных файлах.
C++ MIRACL библиотека для работы с большими числами
У меня была готовая программа с консолью и ее исходники. Когда я переписывал ее под программу с формой появилась проблема. Дело в том, что в программе используется библиотека MIRACL. Там есть такой класс ECn, описанный в прилагаемых файлах. То есть я имею проект в который включен ECn.h. В данном классе участвует переменная p class ECn { epoint *p; Я использую следующий оператор: ECn&...
C++ Разработать процедуру или функцию http://www.cyberforum.ru/cpp-beginners/thread251390.html
Разработать процедуру или функцию, выполняющую заданную операцию над строками. Предусмотреть и описать реакцию на некорректное задание параметров. Не использовать имеющиеся в языке средства обработки строк. Операция Вывести на печать список слов, имеющих приставку (несколько букв), задаваемую с терминала Везде под словом понимается последовательность символов, ограниченная пробелами или...
C++ Вопрос по STL (функция find()) Доброго времени. Возник вопрос по функции find из библиотеки STL Имеем следующую ситуацию void VLibrary::SearchWord(string word) { vector<Word>::iterator pos; pos = find(words.begin(), words.end(), word); } words представляет из себя вектор vector<Word> words; подробнее

Показать сообщение отдельно
crazy_
0 / 0 / 0
Регистрация: 03.03.2011
Сообщений: 5
03.03.2011, 09:27     принадлежность точки прямоугольнику
Задача: определить,принадлежит ли точка прямоугольнику. Заданы координаты точки и вершин прямоугольника. Прямоугольник может располагаться не параллельно осям координат.
Почему-то при вычислении площадей дробных чисел не получается,что не так делаю?
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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
    int x_m,y_m,x_a,y_a,x_b;// координаты вершин и точки М
    int y_b,x_c,y_c,x_d,y_d;
    double Samb,Sbmc,Scmd,Samd,Sabcd,a,b; // площади треугольников,из которых состоит ABCD и его стороны
 
    printf("x_m y_m x_a y_a x_b y_b x_c y_c x_d y_d\n");
    scanf_s("%d %d %d %d %d ",&x_m,&y_m,&x_a,&y_a,&x_b); // ввод координат 
    scanf_s("%d %d %d %d %d",&y_b,&x_c,&y_c,&x_d,&y_d);
    if ((x_a==x_b&&y_a==y_d&&x_c!=x_b&&y_c!=y_a)||(x_a==y_b&&x_b==y_a&&x_c==y_d&&y_c==x_d))
    // проверка прямоугольника на правильность
    {
        Samb=(abs(x_a*(y_m-y_b)+x_m*(y_b-y_a)+x_b*(y_a-y_m)))/2; // подсчёт площадей треугольников
        Sbmc=(abs(x_b*(y_m-y_c)+x_m*(y_c-y_b)+x_c*(y_b-y_m)))/2;
        Scmd=(abs(x_c*(y_m-y_d)+x_m*(y_d-y_c)+x_d*(y_c-y_m)))/2;
        Samd=(abs(x_a*(y_m-y_d)+x_m*(y_d-y_a)+x_d*(y_a-y_m)))/2;
        a=sqrt((double)pow((double)(x_b-x_a),2)+pow((double)(y_b-y_a),2)); //длина стороны AB
        b=sqrt((double)pow((double)(x_c-x_b),2)+pow((double)(y_c-y_b),2)); //длина стороны BC
        Sabcd=a*b; // площадь прямоугольника ABCD
        if (Samb+Sbmc+Scmd+Samd==Sabcd) // сумма площадей треугольников = площади ABCD
        {
            printf ("1");
        }
        else 
        {
            printf ("0");
        }
    }
    else
    {
        printf("Error. Invalid rectangle");
    }
    _getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru