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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2009, 17:37   #1
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию Условный оператор в Borland C++ 3.1

Ребята, такая задача: определить попадает ли точка с заданными координатамы в область:


я не могу поставить условие...
вот так делал, но это не правильно:
Код:
#include<stdio.h>
#include<conio.h>
void main(void)
{
int X,Y,X1,Y1,X2,Y2,X3,Y3,X4;
  clrscr();
  puts("Vvedite koordinaty X1 i Y1:");
  scanf("%d;%d",&X1,&Y1);
  puts("Vvedite koordinaty X2 i Y2:");
  scanf("%d;%d",&X2,&Y2);
  puts("Vvedite koordinaty X3 i Y3:");
  scanf("%d;%d",&X3,&Y3);
  puts("Vvedite X4 ");
  scanf("%d;%d",&X4);
  puts("Vvedite koordinaty, kotorie hotite proverit:");
  scanf("%d;%d",&X,&Y);
  if (Y<Y2 && Y>Y1 && X<X4 && X>X1 || Y<Y3 && Y>Y2 && X<X2 && X>X1 || X>X3 && X<X4 && Y<Y3 && Y>Y2)
    puts ("Popadaet v oblast!");
  else
    puts("Ne popadaet v oblast");
  getch();
}
подскажите как задать условие. заранее спасибо!
Xeon332 вне форума Ответить с цитированием
Старый 26.01.2009, 17:46   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вроде как-то так.. Писал в блокноте, так что проверьте.
Код:
if( ((Y<Y3&&Y>Y1)&&((X>X1&&X<X2)||(X>X3&&X<X4))) || (Y>Y1&&Y<Y2)&&(X>X1&&X<X4))
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.01.2009, 19:58   #3
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию

сейчас посмотрю. благодарю!!!
Xeon332 вне форума Ответить с цитированием
Старый 29.01.2009, 16:57   #4
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию

оказалось неправильно. а все стандартные пути решения пробовал - тоже неверно. препод говорит что нужно всего 8 условий для правильного решения....


как оно вобще решится в восемь условий!??!
Xeon332 вне форума Ответить с цитированием
Старый 29.01.2009, 20:25   #5
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию

ребят помогите плиз. препод говорит как-то в 8 условий она решается... пока не получается сократить до 8 условий...

вот с 10 условиями:
Код:
#include<stdio.h>
#include<conio.h>
void main(void)
{
int X,Y,X1,Y1,X2,Y2,X3,Y3,X4;
  clrscr();
  puts("Vvedite koordinaty X1 i Y1:");
  scanf("%d;%d",&X1,&Y1);
  puts("Vvedite koordinaty X2 i Y2:");
  scanf("%d;%d",&X2,&Y2);
  puts("Vvedite koordinaty X3 i Y3:");
  scanf("%d;%d",&X3,&Y3);
  puts("Vvedite X4 ");
  scanf("%d;%d",&X4);
  puts("Vvedite koordinaty, kotorie hotite proverit:");
  scanf("%d;%d",&X,&Y);
  if  ((Y>=Y2 && Y<=Y3 && X>=X1 && X<=X2 && X>=X3 && X<=X4) || (X>=X2 && X<=X3 && Y>=Y1 && Y<=Y2))
    puts ("Popadaet v oblast!");
  else
    puts("ne popadaet v oblast");
  getch();
}
а как с 8... фиг его знает...
Xeon332 вне форума Ответить с цитированием
Старый 29.01.2009, 23:19   #6
Mikhail Bakurov
Форумчанин
 
Регистрация: 12.10.2008
Сообщений: 140
По умолчанию

Точно не могу описать, но нужно как-то определить всю область, а потом из неё исключить. что-то вроде
if (вся область) и не (кусок между х2,х3 и у3,у2)
Mikhail Bakurov вне форума Ответить с цитированием
Старый 30.01.2009, 00:25   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Как насчет такого?
Код:
if((X>X1&&X<X4&&Y>Y1&&Y<Y3)&&!(X>X2&&X<X3&&Y>Y2&&Y<Y3))
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 30.01.2009, 01:43   #8
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Для простоты разбил на несколько условий:
Код:
if(x>=x1 && x<=x4 && y>=y1 && y<=y3)
if(y<=y2)
//Попадает
else if(x<=x2||x>=x3)
//Попадает
else
//Не попадает
Всего получается 8
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 30.01.2009, 17:08   #9
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию

спс! впринципе разобрался
Xeon332 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условный оператор IF в Си Zid@ne Помощь студентам 7 24.12.2008 20:02
оператор >> в C++ sum42 Помощь студентам 1 24.12.2008 17:27
Оператор в с++ JOFRIF Помощь студентам 2 22.04.2008 18:12
Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat McMilin Помощь студентам 7 11.11.2007 14:10
Оператор WITH Enko Общие вопросы Delphi 1 20.09.2007 20:36