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

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

25.09.2011, 14:58. Показов 7557. Ответов 31
Метки нет (Все метки)

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

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

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

Размер: 5.0 Кб
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.09.2011, 14:58
Ответы с готовыми решениями:

Определить, принадлежит ли точка с координатами x, y заштрихованной части плоскости
Битый час сижу, но так и не могу ничего придумать, прошу помощи) Даны действительные числа x, y. Определить, принадлежит ли точка с...

Определить, принадлежит ли точка с координатами (x,y) заштрихованной части плоскости
даны произвольные числа x,y.Определить, принадлежит ли точка с координатами (x,y) заштрихованной части плоскости(включая ее границы) ...

Определить, принадлежит ли точка с координатами х, у заштрихованной части плоскости
Нужно определить, принадлежит ли точка с координатами х, у заштрихованной части плоскости: Вот сам рисунок (насколько я разглядел и...

31
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
25.09.2011, 17:17
Студворк — интернет-сервис помощи студентам
И с тернарным оператором:


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;
}
1
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.09.2011, 17: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. насчет произведения векторов - алгоритм тот же остается, просто точность не теряется. А у меня формула Герона используется, там квадратные корни...
0
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
25.09.2011, 17:25
diagon, площадь треугольника по формуле Герона никто не ищет, есть более простой способ:

https://www.cyberforum.ru/cgi-bin/latex.cgi?S = \frac{1}{2}|(x3-x1)(y2-y1)-(x2-x1)(y3-y1)|
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
25.09.2011, 17:27

Не по теме:

Цитата Сообщение от diagon Посмотреть сообщение
Но я как-то не въехал, как там формула получается
очень просто:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec V = \{V_x, V_y\}, \, \vec U = \{U_x, U_y\}
https://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
1
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
25.09.2011, 17:29
Цитата Сообщение от Olga_ Посмотреть сообщение
diagon, площадь треугольника по формуле Герона никто не ищет, есть более простой способ:

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

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

Не по теме:


очень просто:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec V = \{V_x, V_y\}, \, \vec U = \{U_x, U_y\}
https://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 минуту

а это и есть:

Хм... Т.е. эта формула из определителя матрицы берется? Не думал, что геометрия и линейная алгебра как-то связаны... =)
0
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 14
25.09.2011, 17:43  [ТС]
Olga_, ещё раз спасибо!
0
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
25.09.2011, 17:54
Nameless One, вы про случай ориентированных мер пишите, ваша формула и моя не одно и тоже (без модуля).
1
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 14
25.09.2011, 17:55  [ТС]
Последний вопрос на эту неделю, честно-честно!

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

Code
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;
 }
0
 Аватар для Olga_
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
25.09.2011, 18:02
Цитата Сообщение от diagon Посмотреть сообщение
Не думал, что геометрия и линейная алгебра как-то связаны... =)
Они ОЧЕНЬ тесно связаны.
1
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
25.09.2011, 18:24
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от diagon Посмотреть сообщение
Т.е. эта формула из определителя матрицы берется? Не думал, что геометрия и линейная алгебра как-то связаны... =)
Определитель - это просто более удобная (и запоминающаяся) форма записи данного выражения. Формула же берется из определения:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec V \otimes \vec U = |\vec V| \cdot |\vec U| sin \alpha, \; \alpha - угол вращения от https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec V к https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec U
Можно легко доказать, что для разложения https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec V = \{V_x, V_y\}, \, \vec U = \{U_x, U_y\} в любом ортонормированном базисе https://www.cyberforum.ru/cgi-bin/latex.cgi?<\vec i, \vec j> будет верна и формула вычисления произведения через определитель.
Доказательство
Воспользуемся тем, что косое произведение линейно и антикоммутативно (подробнее - на википедию).
Очевидно, что для любого ортонормированного базиса https://www.cyberforum.ru/cgi-bin/latex.cgi?<\vec i, \vec j> будут выполняться следующие равенства: https://www.cyberforum.ru/cgi-bin/latex.cgi?|\vec i \otimes \vec j| = 1, \; \vec i \otimes \vec i = 0
Тогда верно следующее (положим для удобства, что угол поворота от https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec i до https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec j равен https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{\pi}{2}):
https://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 =
https://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 =
https://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;
 }
3
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
25.09.2011, 18:25
Цитата Сообщение от Olga_ Посмотреть сообщение
Nameless One, вы про случай ориентированных мер пишите, ваша формула и моя не одно и тоже (без модуля).
ну так на то косое произведение и определяет *ориентированную* площадь
0
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 14
25.09.2011, 18:27  [ТС]
Nameless One, помогло, спасибо!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.09.2011, 18:27
Помогаю со студенческими работами здесь

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

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

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

Определить,принадлежит ли точка с координатами Х,У заштрихованной части плоскости
Помогите пожалуйста. За ранее спасибо. Даны целые числа Х и У. Определить, принадлежит ли точка с координатами Х,У заштрихованной части...

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


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru