Форум программистов, компьютерный форум 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, 20:48  [ТС]     принадлежность точки прямоугольнику
IrineK, спасибо огромное! а я мучилась

Добавлено через 1 час 46 минут
Чёрт..я переделала немного. Теперь без длинного условия. Зато при координатах М(1,1),A(0,1),B(1,4),C(4,3),D(3,0) сумма площадей треугольников равна 10, а площадь прямоугольника - 10,000000000000002. Почему?..
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#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= "); // ввод координат точки
    scanf_s("%d",&x_m);
    printf("y_m= ");
    scanf_s("%d",&y_m);
    printf("x_a= "); // ввод координат вершин ABCD
    scanf_s("%d",&x_a);
    printf("y_a= ");
    scanf_s("%d",&y_a);
    printf("x_b= ");
    scanf_s("%d",&x_b);
    printf("y_b= ");
    scanf_s("%d",&y_b);
    printf("x_c= ");
    scanf_s("%d",&x_c);
    printf("y_c= ");
    scanf_s("%d",&y_c);
    printf("x_d= ");
    scanf_s("%d",&x_d);
    printf("y_d= ");
    scanf_s("%d",&y_d); 
    if (((x_b-x_a)*(x_c-x_b)+(y_b-y_a)*(y_c-y_b))==0) // проверка прямоугольника на правильность
    {
        Samb=(fabs(1.0*(x_a*(y_m-y_b)+x_m*(y_b-y_a)+x_b*(y_a-y_m))))/2.0; // подсчёт площадей треугольников,
        Sbmc=(fabs(1.0*(x_b*(y_m-y_c)+x_m*(y_c-y_b)+x_c*(y_b-y_m))))/2.0; // из которых состоит ABCD
        Scmd=(fabs(1.0*(x_c*(y_m-y_d)+x_m*(y_d-y_c)+x_d*(y_c-y_m))))/2.0;
        Samd=(fabs(1.0*(x_a*(y_m-y_d)+x_m*(y_d-y_a)+x_d*(y_a-y_m))))/2.0;
        a=sqrt((double)pow((double)(x_b-x_a),2.0)+pow((double)(y_b-y_a),2.0)); //длина стороны AB
        b=sqrt((double)pow((double)(x_c-x_b),2.0)+pow((double)(y_c-y_b),2.0)); //длина стороны BC
        Sabcd=a*b; // площадь прямоугольника ABCD
        if (Samb+Sbmc+Scmd+Samd==Sabcd) // если сумма площадей треугольников = площади ABCD
        {
            printf ("1"); // М принадлежит ABCD
        }
        else 
        {
            printf ("0"); // М не принадлежит ABCD
        }
    }
    else
    {
        printf("Error. Invalid rectangle");
    }
    _getch();
    return 0;
}
 
Текущее время: 00:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru