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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2013, 15:40   #1
synystergates
Новичок
Джуниор
 
Регистрация: 16.01.2013
Сообщений: 9
По умолчанию Программирование разветвляющихся алгоритмов (нужно найти ошибку)

Ребята подскажите где я допустил ошибку в этом коде

Задание:Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений «Да», «Нет», «На границе» в зависимости от того, лежит ли точка внутри заштрихованной области, вне заштрихованной области или на ее границе.

Изображения к заданию ниже


#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <math.h>

using namespace std;

int main(int argc, char *argv[])
{
int x,y;
boll fl;
printf ("x=");scanf("%d",&x);
printf ("y=");scanf("%d",&y);
fl=((0.5x+5<0)&&(x<0)&&(y>0))||
((-0.5x-5>0)&&(x<0)&&(y<0))|| ((x*x+y*y<5*5)&&(x>0))
if(fl)printf("точка принадлежит фигуре");
else printf("точка не принадлежит фигуре");
system("PAUSE");
return EXIT_SUCCESS;
}
Изображения
Тип файла: jpg Снимок.JPG (27.6 Кб, 136 просмотров)
synystergates вне форума Ответить с цитированием
Старый 16.01.2013, 16:02   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Может, так?
Код:
(y<0.5*x+5 && y>-0.5*x-5 && x<0)||((x-5)*(x-5)+y*y<5*5)
или
Код:
(fabs(y)<0.5*x+5 && x<0)||((x-5)*(x-5)+y*y<5*5)
(забыл знаки умножения)

Кстати, может лучше x и y сделать вещественными?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 16.01.2013 в 18:06.
BDA вне форума Ответить с цитированием
Старый 16.01.2013, 16:43   #3
synystergates
Новичок
Джуниор
 
Регистрация: 16.01.2013
Сообщений: 9
По умолчанию

Сделал вещественными и заменил, но пишет все равно ошибку на boolfl


#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <math.h>

using namespace std;

int main(int argc, char *argv[])
{
double x,y;
boll fl;
printf ("x=");scanf("%d",&x);
printf ("y=");scanf("%d",&y);
fl=(y<0.5x+5 && y>-0.5x-5 && x<0)||((x-5)*(x-5)+y*y<5*5)
if(fl)printf("точка принадлежит фигуре");
else printf("точка не принадлежит фигуре");
system("PAUSE");
return EXIT_SUCCESS;
}
synystergates вне форума Ответить с цитированием
Старый 16.01.2013, 16:53   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Во-первых, зачем лишняя переменная, если условие можно сразу в if поставить.
Во-вторых bool и boll - разные вещи.
В-третьих, если x и y - вещественные, то спецификатор ввода не %d, а %lf.
В-четвертых, раз это С++, то можно использовать cin и cout.
Код:
cout<<"x=";
cin>>x;
cout<<"y=";
cin>>y;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 16.01.2013 в 16:56.
BDA вне форума Ответить с цитированием
Старый 16.01.2013, 17:41   #5
synystergates
Новичок
Джуниор
 
Регистрация: 16.01.2013
Сообщений: 9
По умолчанию

Извини я в этом деле не очень понимаю, посмотри что у меня получилось
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <math.h>

using namespace std;

int main(int argc, char *argv[])
{
double x,y;
bool fl;
printf ("x=");scanf("%lf",&x);
printf ("y=");scanf("%lf",&y);
fl=(y<0.5x+5 && y>-0.5x-5 && x<0)||((x-5)*(x-5)+y*y<5*5)
if(fl)printf("точка принадлежит фигуре");
else printf("точка не принадлежит фигуре");
system("PAUSE");
return EXIT_SUCCESS;
}
synystergates вне форума Ответить с цитированием
Старый 16.01.2013, 18:05   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
#include <cstdlib>
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
  double x, y;
  printf("x=");
  scanf("%lf", &x);
  printf("y=");
  scanf("%lf", &y);
  if ((y < 0.5 * x + 5 && y > -0.5 * x - 5 && x < 0)||((x - 5) * (x - 5) + y * y < 5 * 5))
    printf("точка принадлежит фигуре");
  else
    printf("точка не принадлежит фигуре");
  system("PAUSE");
  return EXIT_SUCCESS;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 16.01.2013, 18:19   #7
synystergates
Новичок
Джуниор
 
Регистрация: 16.01.2013
Сообщений: 9
По умолчанию

Программа почему то не может скомпилировать проект
synystergates вне форума Ответить с цитированием
Старый 16.01.2013, 18:24   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Выдает какие-либо предупреждения или ошибки?
Чем компилируете?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 16.01.2013, 18:27   #9
synystergates
Новичок
Джуниор
 
Регистрация: 16.01.2013
Сообщений: 9
По умолчанию

Dev - C++

Ошибок нету, но когда я нажимаю "Скомпилировать и выполнить" начинает процес, но в конце пишет "Проект не скомпилирован"
synystergates вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование разветвляющихся алгоритмов Alexei2555 Помощь студентам 4 02.12.2011 23:57
ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ mell33 Помощь студентам 0 13.12.2010 13:43
Программирование разветвляющихся алгоритмов в TP. prog-er Помощь студентам 2 12.12.2010 17:00
Задача на программирование разветвляющихся алгоритмов. Repz1992 Помощь студентам 1 28.10.2009 20:35
Программирование разветвляющихся алгоритмов в Delphi7 Rom1k Помощь студентам 5 27.11.2008 14:36