Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2013, 21:49   #1
DemoniSniket
Новичок
Джуниор
 
Регистрация: 04.01.2013
Сообщений: 1
По умолчанию C++ точка в области

Приветствую всех)такая проблема,программа вроде работает и правильно)но препод мой сказал,что нифига не правильно и нужно переделывать..я не могу понять,что именно,может быть вы посмотрите
Задание: нужно определить входит ли точка в область

123.png рисунок

Код:
#include<iostream>
#include<cmath>

using namespace std;
int main()
{
 int i;
 float x,y,r;
    cout << "vvedute: x,y,r\n";
    cin >> x >> y >> r;
     if (y>x && x>0 && y>0 && x*x+y*y<r*r)
	 cout << "oblast M1\n";
     else
      if (y>-x && x<0 && y>0 && x*x+y*y<r*r)
	  cout << "oblast M2\n";
	  else
       if (y<-x && y<0 && x<0 && x*x+y*y<r*r)
       cout << "oblast M3\n";
       else
	    if (y<0 && x>0 && y<x && x*x+y*y<r*r)
	    cout << "oblast M4\n";
        else
         cout << "vne oblastu\n";
 main();
 cin >> i;
 if (i == 1) main();
 return 0;
}
DemoniSniket вне форума Ответить с цитированием
Старый 04.01.2013, 22:05   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
#include<iostream>
#include<cmath>

using namespace std;

int
main()
{
    int i = 1;
    float x, y, r;
    while (i) {
        cout << "vvedute: x, y, r\n";
        cin >> x >> y >> r;
        if (y => x && x => 0 && x*x + y*y <= r*r)
            cout << "oblast M1\n";
        else if (y => -x && x <= 0 && x*x + y*y <= r*r)
            cout << "oblast M2\n";
        else if (y <= x && x <= 0 && x*x + y*y <= r*r)
            cout << "oblast M3\n";
        else if (y <= -x && x >= 0 && x*x + y*y <= r*r)
            cout << "oblast M4\n";
        else
            cout << "vne oblastu\n";
        cout << "eche raz? (1 - da, 0 - net)\n";
        cin >> i;  
    }
    return 0;
}
Во-первых, не нужно делать рекурсивные вызовы main.
Во-вторых, области М3 и М4 неправильно определялись.
В-третьих, лишние условия.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа в Delphi,определить пренадлежит ли точка А(x,y)области. Rinka1 Помощь студентам 0 18.10.2011 19:11
Проверить принадлежит ли точка закрашенной области, границе или находится вне области (код на Pascal) homk Помощь студентам 3 07.09.2011 23:16
Принадлежит ли точка области? (Pascal) Volk_xD Помощь студентам 3 22.12.2010 13:54
Принадлежит ли точка с координатами следующей области TOMMY666 Помощь студентам 3 29.04.2010 16:44