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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Helo
4 / 4 / 0
Регистрация: 04.07.2013
Сообщений: 52
#1

Логическое выражение - C++

12.07.2013, 16:59. Просмотров 1269. Ответов 20
Метки нет (Все метки)

Здравствуйте. Запишите логическое выражение, которое принимает значение "истина" тогда и только тогда, когда точка с координатами (x, y) принадлежит заштрихованной области. Подскажите как правильно описать область на рисунке. У меня описано так, но это неправильно?
C++
1
2
3
if ( ( y >= 1 - x ) && ( y >= 0.5 - x ) )
        printf ( "\n%s", " Попал " );
    else printf ( "\n%s", " Не попал " );
0
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2013, 16:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Логическое выражение (C++):

Логическое выражение - C++
Записать логическое выражение, которое является истинным, когда число N чётное делится на 7, но не делится на 11 и 13 без остатка. ...

Записать логическое выражение - C++
Записать логическое выражение, которое принимает значение TRUE, если точка с заданными координатами x и y попадает в заштрихованную...

Вычислить логическое выражение - C++
Помогите написать программу!!!

Написать логическое выражение - C++
как написать формулы на с++ формула во вложении Когда же, наконец, Вы запомните П.5.18.Правил Запрещено размещать задания и решения...

Логическое выражение в условном операторе - C++
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8: первое – номер вертикали, второе – номер...

Объясните пожалуйста логическое выражение - C++
#include<iostream> #include<conio.h> #include<cstring> using namespace std; int main(){ int nober=0;// количество слов bool...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6471 / 3119 / 306
Регистрация: 04.12.2011
Сообщений: 8,594
Записей в блоге: 4
12.07.2013, 17:27 #2
C++
1
2
3
if ( (x >= 0.5 && x <= 1 &&   0.25 - x*x > 0 &&  y*y <= 1 - x*x  &&   y*у  >= 0.25 - x*x )
        printf ( "\n%s", " Попал " );
    else printf ( "\n%s", " Не попал " );
1
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
12.07.2013, 17:39 #3
щя я тебе напишу (полагая, что это круг)
C++
1
2
3
4
double t = pow((pow(x,2)+pow(y,2)),0.5); // радиус вектор точки
 if (x && y && t>0.5 && t<1) // если он в данной области и координаты не отрицательны
printf ( "\n%s", " Попал " );
    else printf ( "\n%s", " Не попал " );
1
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.07.2013, 17:46 #4
IGPIGP, а разве для, скажем (0.1; 0.8) будет "мимо" ?

Добавлено через 1 минуту
Цитата Сообщение от soican Посмотреть сообщение
if (x && y
странная проверка для данного случая

Добавлено через 3 минуты
По-моему, условие попадания должно быть такое:
C++
1
2
double sq = x*x + y*y;
if( sq > 0.25 && sq < 1 && x > 0 && y > 0 )
2
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
12.07.2013, 17:46 #5
Цитата Сообщение от Tulosba Посмотреть сообщение
странная проверка для данного случая
тьфу конечно!!
C++
1
x>0 && y>0
у меня давний загон, что минусовые значения будут false - на подсознании минус - плохо, false ))
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6471 / 3119 / 306
Регистрация: 04.12.2011
Сообщений: 8,594
Записей в блоге: 4
12.07.2013, 17:47 #6
Цитата Сообщение от Tulosba Посмотреть сообщение
IGPIGP, а разве для, скажем (0.1; 0.8) будет "мимо" ?
Верно, - поторопился.
C++
1
2
3
if ( (x >= 0 && x <= 1 &&   0.25 - x*x > 0 &&  y*y <= 1 - x*x  &&   y*у  >= 0.25 - x*x )
        printf ( "\n%s", " Попал " );
    else printf ( "\n%s", " Не попал " );
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.07.2013, 17:57 #7
Цитата Сообщение от IGPIGP Посмотреть сообщение
Верно, - поторопился.
Дважды. Проверьте (0.1, -0.8)

Добавлено через 2 минуты
Тут же всё просто: два круга, попал в один, не попал в другой.
x^2 + y^2 < R^2
x^2 + y^2 > r^2
И ограничение на четверть.
x>0, y>0.
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6471 / 3119 / 306
Регистрация: 04.12.2011
Сообщений: 8,594
Записей в блоге: 4
12.07.2013, 18:21 #8
Цитата Сообщение от Tulosba Посмотреть сообщение
Дважды. Проверьте (0.1, -0.8)
Не-a! Патамушта Y<0 быть может, но не должен! Первый квадрант не пущает.
И еще, - Вы забыли условие принадлежности действительной плоскости.

Добавлено через 12 минут
Цитата Сообщение от IGPIGP Посмотреть сообщение
И еще, - Вы забыли условие принадлежности действительной плоскости.
Это я неправ.
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.07.2013, 20:13 #9
Цитата Сообщение от IGPIGP Посмотреть сообщение
Не-a! Патамушта Y<0 быть может, но не должен! Первый квадрант не пущает.
Не понял. Поясните пожалуйста. Зачем тогда проверка x >= 0?
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
12.07.2013, 20:20 #10
Tulosba, у вас все верно. если нужны и граничные точки, то можно еще = добавить, а так все хорошо.
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6471 / 3119 / 306
Регистрация: 04.12.2011
Сообщений: 8,594
Записей в блоге: 4
12.07.2013, 20:21 #11
Цитата Сообщение от Tulosba Посмотреть сообщение
Не понял. Поясните пожалуйста. Зачем тогда проверка x >= 0?
В первом квадранте 0<=x<=1 для предложенной четверти кольца. Можно ведь найти Y-ки из (0.25 - x*x) <= У<= (1 - x*x) и для некоторых -1 <= x <= 0, но геометрически это уже IV квадрант. То есть, эти точки нужно отсечь, так как указанной на рисунке фигуре они не принадлежат
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.07.2013, 20:41 #12
Цитата Сообщение от IGPIGP Посмотреть сообщение
То есть, эти точки нужно отсечь
Так чтобы их отсечь и надо условие y>0, которого у Вас почему-то нет.

Добавлено через 1 минуту
Цитата Сообщение от Thinker Посмотреть сообщение
то можно еще = добавить
в случае вещественных аргументов это всё равно не будет нормально работать.
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
12.07.2013, 20:43 #13
Цитата Сообщение от Tulosba Посмотреть сообщение
в случае вещественных аргументов это всё равно не будет нормально работать.
даже с граничной точкой (0.0, 1.0)?
0
Helo
4 / 4 / 0
Регистрация: 04.07.2013
Сообщений: 52
12.07.2013, 20:46  [ТС] #14
Цитата Сообщение от Tulosba Посмотреть сообщение
в случае вещественных аргументов
можно добавить функцию проверки 2 double
C++
1
2
3
4
5
bool Check ( const double a, const double b, const double error )
{
        a = 0;
    return fabs ( a - b ) < error;
}
где error задаваемая погрешность, ну как то так вроде
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.07.2013, 21:19 #15
Цитата Сообщение от Tulosba Посмотреть сообщение
в случае вещественных аргументов это всё равно не будет нормально работать.
Цитата Сообщение от Thinker Посмотреть сообщение
даже с граничной точкой (0.0, 1.0)?
ну, ключевое слово тут "нормально". Но, если хочется, можно и нестрогое неравенство сделать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2013, 21:19
Привет! Вот еще темы с ответами:

Неправильно вычисляется логическое выражение - C++
В этом отрывке программы у меня программа не замечает условие,почему? То есть она выводит не для 1-3,100,200,300,700,1000,1426,а выводит...

Логическое выражение в условном операторе - C++
На поле (k, l) расположен слон. Угрожает ли он полю (m, n)?

Логическое выражение в виде дерева - C++
Подскажите, , как представить логическое выражение b=--n&amp;&amp;b==a в виде дерева? ( просто схематические ) Добавлено через 5 часов 54...

Нужно написать логическое выражение в printf - C++
Помогите написать логическое выражение в printf, так чтобы она на экран выводила в строку, допустим, только 10 элементов массива, я вот...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.07.2013, 21:19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru