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

Условный оператор.Задача на полуокружность - C++

Восстановить пароль Регистрация
 
Gamora
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 7
25.04.2013, 21:29     Условный оператор.Задача на полуокружность #1
Дана точка на плоскости с координатами (х,у). Составить программу,которая выдаёт одно из сообщений:*Да*,*Нет*,*На границе* в зависимости от того,где лежит точка.Полуокружность по Х лежит от (-1;1) по У лежит от (1;0).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2013, 21:29     Условный оператор.Задача на полуокружность
Посмотрите здесь:

C++ Условный оператор if
условный оператор IF C++
C++ C (условный оператор)
Условный оператор. C++
Условный оператор. C++
C++ Условный оператор if else
C++ Условный оператор
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
25.04.2013, 21:42     Условный оператор.Задача на полуокружность #2
C++
1
2
3
4
5
6
bool inHalhCircle (double& x, double& y)
{
    if (((x*x+y*y)<=1)&&(x>=-1)&&(x<=1)&&(y>=0)&&(y<=1))
         return true
    else return false;
}
Добавлено через 5 минут
прошу прощение. немного внес изменения:
C++
1
2
3
4
5
6
7
8
9
int inHalfCircle (double& x, double& y)
{
    if (((x*x+y*y)<=1)&&(x>=-1)&&(x<=1)&&(y>=0)&&(y<=1))
        { if ((x*x+y*y)==1)
              return 2; //на границе
         return 1;//внутри полукруга
        }
    else return 0;//не входит в полукруг
}
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
25.04.2013, 21:45     Условный оператор.Задача на полуокружность #3
metaluga145, с ссылками перемудрили. Да и if/else лишние.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
25.04.2013, 21:46     Условный оператор.Задача на полуокружность #4
Tulosba, почему перемудрил? Память экономлю))))
А как лучше написать без if/else?
ValeryS
Модератор
6412 / 4878 / 447
Регистрация: 14.02.2011
Сообщений: 16,171
25.04.2013, 21:50     Условный оператор.Задача на полуокружность #5
Цитата Сообщение от metaluga145 Посмотреть сообщение
А как лучше написать без if/else?
а вот так

Цитата Сообщение от metaluga145 Посмотреть сообщение
bool inHalhCircle (double& x, double& y)
{
if (((x*x+y*y)<=1)&&(x>=-1)&&(x<=1)&&(y>=0)&&(y<=1))
return true
else return false;
}
C++
1
2
3
4
bool inHalhCircle (double& x, double& y)
{
   return (((x*x+y*y)<=1)&&(x>=-1)&&(x<=1)&&(y>=0)&&(y<=1))
}
проверка условий на твоей совести, я не проверял

Добавлено через 1 минуту
Цитата Сообщение от metaluga145 Посмотреть сообщение
return 1;//внутри полукруга
речь шла про окружность
а у неё внутри /снаружи нет
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
25.04.2013, 21:51     Условный оператор.Задача на полуокружность #6
ValeryS, Там три возможных случая, потому просто bool не обойтись
ValeryS
Модератор
6412 / 4878 / 447
Регистрация: 14.02.2011
Сообщений: 16,171
25.04.2013, 21:53     Условный оператор.Задача на полуокружность #7
Цитата Сообщение от metaluga145 Посмотреть сообщение
Там три возможных случая, потому просто bool не обойтись
ты спросил как написать
Цитата Сообщение от metaluga145 Посмотреть сообщение
без if/else?
если один bool (твой первый вариант)
я показал
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
25.04.2013, 21:53     Условный оператор.Задача на полуокружность #8
ValeryS, ну за поправку первого варианта спасибо)а второй вариант можно поправить?
ValeryS
Модератор
6412 / 4878 / 447
Регистрация: 14.02.2011
Сообщений: 16,171
25.04.2013, 22:05     Условный оператор.Задача на полуокружность #9
Цитата Сообщение от metaluga145 Посмотреть сообщение
ValeryS, ну за поправку первого варианта спасибо)а второй вариант можно поправить?
не знаю
я бы вообще по другому написал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// проверка на попадание в полуокружность
// вход 
//x y координаты
// выход
// 3 на границе
//2 лежит на полуокружности 
// 0 не лежит 
int inHalhCircle (double x, double y)
{
 if(y==0.0&&(x==1.0||x==-1.0))  
    return 3;
 if((y*y+x*x)==1)
   return  2;
return 0;
}
можно без if ( но это уже с битами работать)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// вход 
//x y координаты
// выход
// 3 на границе
//2 лежит на полуокружности 
// 0 не лежит 
int inHalhCircle (double x, double y)
{
int tmp1=0,tmp2=0;
 
 tmp1=(int)((y*y+x*x)==1);
 tmp2=(int)(y==0.0&&(x==1.0||x==-1.0));
 return  tmp1<<1 |tmp2;
}
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
25.04.2013, 22:14     Условный оператор.Задача на полуокружность #10
Мне теперь вдруг дошло,что условие вопроса не совсем корректно. В каком случае и что должна выводить программа? Потому что мой код и код ValeryS -это две разные программы и решают они разные задачи.
Gamora
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 7
25.04.2013, 22:43  [ТС]     Условный оператор.Задача на полуокружность #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main (int argc, char *argv[])
{ float x; float y;
cout<<"x=";cin>>x;
cout<<"y=";cin>>y;
if((fabs(x)<1 && (y>0)&&(y<1))&&(x*x+y*y<1))
cout<<"Da";
else if((y*y+x*x)==1)
cout<<"NA GRANICE";
 else cout<<"NET";
    system ("pause"); 
 
    return 0;
}
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
25.04.2013, 22:58     Условный оператор.Задача на полуокружность #12
Gamora, при вводе координат (0,-1) получите ответ "нет". проверьте правильность условия!

Добавлено через 6 минут
Прошу прощения. Получите ответ "на границе"
Gamora
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 7
25.04.2013, 23:00  [ТС]     Условный оператор.Задача на полуокружность #13
Так и должно выводить
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
25.04.2013, 23:01     Условный оператор.Задача на полуокружность #14
Gamora, эмм..я правильно понимаю,что точка (0,-1) не принадлежит вашей полуокружности?
Gamora
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 7
25.04.2013, 23:04  [ТС]     Условный оператор.Задача на полуокружность #15
Х (-1;1) Y(0;1) всё верно, принадлежит...
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
25.04.2013, 23:08     Условный оператор.Задача на полуокружность #16
Gamora, нет, Вы не поняли. точка х=0, у=-1, не принадлежит, но подходит в Ваш код. так быть не должно, я правильно понимаю?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2013, 23:17     Условный оператор.Задача на полуокружность
Еще ссылки по теме:

УСЛОВНЫЙ ОПЕРАТОР (IF) C++
C++ Условный оператор
Условный оператор C++
Условный оператор IF C++
Условный оператор C++

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6412 / 4878 / 447
Регистрация: 14.02.2011
Сообщений: 16,171
25.04.2013, 23:17     Условный оператор.Задача на полуокружность #17
Цитата Сообщение от metaluga145 Посмотреть сообщение
Gamora, нет, Вы не поняли. точка х=0, у=-1, не принадлежит, но подходит в Ваш код.
а у меня тот же косяк
как то не учел что у не может быть отрицательной
вот так нужно
C++
1
(((y*y+x*x)==1)&&y>=0);
Yandex
Объявления
25.04.2013, 23:17     Условный оператор.Задача на полуокружность
Ответ Создать тему
Опции темы

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