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

Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.83
Iternity
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 14
25.09.2011, 14:58     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости #1
Здравствуйте! Помогите пожалуйста полному чайнику решить две задачки.

1) Даны действительные числа x1, y1, x2, y2. Вычислить min(x1, y1, x2, y2)+min(x1,x2,y1).

2) Даны вещественные числа x, y. Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости. Результат вывести в виде текстового сообщения. Представить варианты программы с использованием условного оператора if и тернарной условной операции.
Название: graph1.png
Просмотров: 304

Размер: 5.0 Кб
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2011, 14:58     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости
Посмотрите здесь:

Определить, принадлежит ли точка с координатами (x,y) заштрихованной части плоскости C++
C++ Определить,принадлежит ли точка с координатами Х,У заштрихованной части плоскости
C++ Определить,принадлежит ли точка с координатами Х,У заштрихованной части плоскости
Определить, принадлежит ли точка с координатами (Х,У) заштрихованной части плоскости C++
Определить принадлежит ли точка с координатами (x; y) заштрихованной части плоскости C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
25.09.2011, 17:17     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости #21
И с тернарным оператором:


C
1
2
3
4
5
6
7
8
#include<stdio.h>
int main()
{
   double x, y;
   scanf("%lf%lf", &x, &y);
   (x >= 0 && x <= 2 && y >= 0 && y <= x/2.0) ? printf("yes") : printf("no");
   return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.09.2011, 17:22     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости #22
Цитата Сообщение от Olga_ Посмотреть сообщение
Уравнение прямой y = x/2
Мм... Через уравнения прямой тоже можно, но я про произведения векторов
C++
1
2
3
4
5
6
7
int triangle_square_2 (int x1, int y1, int x2, int y2, int x3, int y3) {
    return x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2);
}
 
double triangle_square (int x1, int y1, int x2, int y2, int x3, int y3) {
    return abs (triangle_square_2 (x1, y1, x2, y2, x3, y3)) / 2.0;
}
Вот формула, как-то я недопонял, откуда она берется.
P.S. насчет произведения векторов - алгоритм тот же остается, просто точность не теряется. А у меня формула Герона используется, там квадратные корни...
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
25.09.2011, 17:25     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости #23
diagon, площадь треугольника по формуле Герона никто не ищет, есть более простой способ:

http://www.cyberforum.ru/cgi-bin/latex.cgi?S = \frac{1}{2}|(x3-x1)(y2-y1)-(x2-x1)(y3-y1)|
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
25.09.2011, 17:27     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости #24

Не по теме:

Цитата Сообщение от diagon Посмотреть сообщение
Но я как-то не въехал, как там формула получается
очень просто:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec V = \{V_x, V_y\}, \, \vec U = \{U_x, U_y\}
http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec V \otimes \vec U = \begin{vmatrix}<br />
V_x & V_y \\<br />
U_x & U_y<br />
\end{vmatrix}



Цитата Сообщение от Olga_ Посмотреть сообщение
diagon, площадь треугольника по формуле Герона никто не ищет, есть более простой способ
а это и есть:
Цитата Сообщение от diagon Посмотреть сообщение
Более кошерный способ - найти косое произведение векторов, и площадь получившегося параллелограмма поделить на 2
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.09.2011, 17:29     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости #25
Цитата Сообщение от Olga_ Посмотреть сообщение
diagon, площадь треугольника по формуле Герона никто не ищет, есть более простой способ:

http://www.cyberforum.ru/cgi-bin/latex.cgi?S = \frac{1}{2}|(x3-x1)(y2-y1)-(x2-x1)(y3-y1)|
Ну в коде эта же формула, непонятно просто было, откуда она берется =\

Цитата Сообщение от Nameless One Посмотреть сообщение

Не по теме:


очень просто:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec V = \{V_x, V_y\}, \, \vec U = \{U_x, U_y\}
http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec V \otimes \vec U = \begin{vmatrix}<br />
V_x & V_y \\<br />
U_x & U_y<br />
\end{vmatrix}



Добавлено через 1 минуту

а это и есть:

Хм... Т.е. эта формула из определителя матрицы берется? Не думал, что геометрия и линейная алгебра как-то связаны... =)
Iternity
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 14
25.09.2011, 17:43  [ТС]     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости #26
Olga_, ещё раз спасибо!
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
25.09.2011, 17:54     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости #27
Nameless One, вы про случай ориентированных мер пишите, ваша формула и моя не одно и тоже (без модуля).
Iternity
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 14
25.09.2011, 17:55  [ТС]     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости #28
Последний вопрос на эту неделю, честно-честно!

Написал кое-как программку, которая при A>0 и A<=PI считает y по одной формуле, а при A>PI по другой, она вроде компилится, работает, но при её запуске выскакивает сообщение "Run-Time Check Failure #3 - The variable 'r1' is being used without being initialized.". В чем может быть проблема?

Код
#define WIN32_LEAN_AND_MEAN
#include <stdio.h>
#include <tchar.h>
#include <conio.h>
#define _USE_MATH_DEFINES
#include <math.h>   
#include <iostream>
using namespace std;

int main()
   {
     double a, y, r1, r2, r3, r4;         
             
	 cout << "Vvedite a" << endl;
	 cin >> a;

	 if ((a>0) && (a<=M_PI))
	 
     r1=1-2*pow(sin(a),2);
	 r2=1+sin(2*a); 

	 y=r1/r2;
	 ;
            	
	 if ((a>M_PI))
	 
	 r3=1-tan(a);
	 r4=1+tan(a);
	 y=(r3/r4)+11;
	 ;

	 cout << y << endl;
    _getch();      
    return 0;
 }
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
25.09.2011, 18:02     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости #29
Цитата Сообщение от diagon Посмотреть сообщение
Не думал, что геометрия и линейная алгебра как-то связаны... =)
Они ОЧЕНЬ тесно связаны.
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
25.09.2011, 18:24     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости #30
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от diagon Посмотреть сообщение
Т.е. эта формула из определителя матрицы берется? Не думал, что геометрия и линейная алгебра как-то связаны... =)
Определитель - это просто более удобная (и запоминающаяся) форма записи данного выражения. Формула же берется из определения:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec V \otimes \vec U = |\vec V| \cdot |\vec U| sin \alpha, \; \alpha - угол вращения от http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec V к http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec U
Можно легко доказать, что для разложения http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec V = \{V_x, V_y\}, \, \vec U = \{U_x, U_y\} в любом ортонормированном базисе http://www.cyberforum.ru/cgi-bin/latex.cgi?<\vec i, \vec j> будет верна и формула вычисления произведения через определитель.
Доказательство
Воспользуемся тем, что косое произведение линейно и антикоммутативно (подробнее - на википедию).
Очевидно, что для любого ортонормированного базиса http://www.cyberforum.ru/cgi-bin/latex.cgi?<\vec i, \vec j> будут выполняться следующие равенства: http://www.cyberforum.ru/cgi-bin/latex.cgi?|\vec i \otimes \vec j| = 1, \; \vec i \otimes \vec i = 0
Тогда верно следующее (положим для удобства, что угол поворота от http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec i до http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec j равен http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{\pi}{2}):
http://www.cyberforum.ru/cgi-bin/latex.cgi?\vec V \otimes \vec U = (V_x \vec i + V_y \vec j) \otimes (U_x \vec i + U_y \vec j) = (V_x \vec i + V_y \vec j) \otimes U_x \vec i + (V_x \vec i + V_y \vec j) \otimes U_y \vec j =
http://www.cyberforum.ru/cgi-bin/latex.cgi?= V_x U_x \vec i \otimes \vec i + V_y U_x \vec j \otimes \vec i + V_x U_y \vec i \otimes \vec j + V_y U_y \vec j \otimes \vec j = V_y U_x \vec j \otimes \vec i + V_x U_y \vec i \otimes \vec j =
http://www.cyberforum.ru/cgi-bin/latex.cgi? - \, V_y U_x \vec i \otimes \vec j + V_x U_y \vec i \otimes \vec j = (V_x U_y - V_y U_x) \vec i \otimes \vec j = V_x U_y - V_y U_x = \begin{vmatrix}<br />
V_x & V_y \\<br />
U_x & U_y<br />
\end{vmatrix}


Iternity, если в 18 строке не выполняется условие, то дальше переменная r1 не иницилизируется, но используется дальше в программе. Аналогично с условием в строке 26 и переменной r3. Думаю, тут не выделены условные блоки:
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
#define WIN32_LEAN_AND_MEAN
#include <stdio.h>
#include <tchar.h>
#include <conio.h>
#define _USE_MATH_DEFINES
#include <math.h>   
#include <iostream>
using namespace std;
 
int main()
{
     double a, y, r1, r2, r3, r4;         
             
     cout << "Vvedite a" << endl;
     cin >> a;
 
     if ((a>0) && (a<=M_PI))
     {    
         r1=1-2*pow(sin(a),2);
         r2=1+sin(2*a); 
 
         y=r1/r2;
     }
                
     if ((a>M_PI))
     {    
         r3=1-tan(a);
         r4=1+tan(a);
         y=(r3/r4)+11;
     }
 
    cout << y << endl;
    _getch();      
    return 0;
 }
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
25.09.2011, 18:25     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости #31
Цитата Сообщение от Olga_ Посмотреть сообщение
Nameless One, вы про случай ориентированных мер пишите, ваша формула и моя не одно и тоже (без модуля).
ну так на то косое произведение и определяет *ориентированную* площадь
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2011, 18:27     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости
Еще ссылки по теме:

C++ Определить, принадлежит ли точка с координатами (х, у) заштрихованной части плоскости
Определить, принадлежит ли точка с координатами x,y заштрихованной части плоскости C++
C++ Определить принадлежит ли точка с координатами (x; y) заштрихованной части плоскости.

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

Или воспользуйтесь поиском по форуму:
Iternity
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 14
25.09.2011, 18:27  [ТС]     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости #32
Nameless One, помогло, спасибо!)
Yandex
Объявления
25.09.2011, 18:27     Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости
Ответ Создать тему
Опции темы

Текущее время: 18:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru