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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
mehanik7
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 31
#1

Определить, пересекаются ли парабола и прямая (найдите ошибку) - C++

28.01.2013, 16:38. Просмотров 1282. Ответов 12
Метки нет (Все метки)

Определите, пересекаются ли парабола у=cx2+dx+f и прямая y=ax+b. При
положительном ответе найти точки пересечения.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include <math.h>
using namespace std;
int main ()
{
float a, b, c, d, f, x, x1, x2, y, y1, y2;
cin>>a>>b>>c>>d>>f;
for(x=-5; x<=5;x++)
 
y1=c*x*x+d*x+f;
y2=a*x+b;
if(y1==y2)
cout<<"x="<<x<<"     "<<"y1="<<y1<<"    "<<"y2="<<
else
cout<<"net peresecheniy"<<
getchar();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2013, 16:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить, пересекаются ли парабола и прямая (найдите ошибку) (C++):

Определить, пересекаются ли парабола и прямая - C++
Определите, пересекаются ли парабола у=cx2+dx+f и прямая y=ax+b. При положительном ответе найти точки пересечения.

Определить, пересекаются ли прямая и окружность - C++
Задана окружность с центром в точке О(x0,y0) и радиусом R0 и прямая y=ax+b. Определить, пересекаются ли прямая и окружность. При...

Определить, пересекаются ли прямая и окружность - C++
Задана окружность с центром в точке О(x0,y0) и радиусом R и прямая у=ах+b. Определить, пересекаются ли прямая и окружность. При...

Определить, пересекаются ли прямая и окружность, и найти точки пересечения - C++
задана окружность с центром в точке х(нулевое) и(нулевое) у и радиусом Р и прямая у=ах+в. определить пересекаются ли прямая и окружность....

Оператор условия. Определить, пересекаются ли заданные кривая и прямая - C++
Определить пересекаются ли кривая y=ax³+bx²+cx+d и прямая y=fx+g. При положительном ответе найти точку пересечения. Что не...

Определить месторасположение точки в декартовой системе координат (найдите ошибку) - C++
Задана точка M с координатами (x,y). Определить месторасположение этой точки в декартовой системе координат (является ли эта точка...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Lexp
3 / 3 / 1
Регистрация: 02.07.2012
Сообщений: 45
28.01.2013, 16:44 #2
Я так понимаю, пересечение ищется в отрезке x = [ -5, 5 ]?

Добавлено через 3 минуты
И в чем именно ошибка - не находит пересечение, или находит неверно?
mehanik7
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 31
28.01.2013, 16:49  [ТС] #3
пишет что ошибка в else

Добавлено через 1 минуту
нет отрезок вообще не трош нужно найти точки пересечения если они есть
phuongham
Сообщений: n/a
28.01.2013, 16:50 #4
1. Там х принимает нетолько целые значения. В твой проге х лишь принадлежит [-5,5]. Что будет если пересечение находится вне этого интервала?
2. Парабол и линия пересекаются если уравнение cx^2 + dx + f = ax + b имеет хоть один корень. А это уравнение второго порядка и условие существования корней есть ... (сам узнаешь) . Попробуй по этому пути.
Lexp
3 / 3 / 1
Регистрация: 02.07.2012
Сообщений: 45
28.01.2013, 16:54 #5
C++
1
cout<<"x="<<x<<"     "<<"y1="<<y1<<"    "<<"y2="<<
Тут у тебя незавершенная строка. Это можно исправить, поставив в конце (после "<<") endl;
Анологично с:
C++
1
cout<<"net peresecheniy"<<
Добавлено через 1 минуту
Цитата Сообщение от phuongham Посмотреть сообщение
1. Там х принимает нетолько целые значения. В твой проге х лишь принадлежит [-5,5]. Что будет если пересечение находится вне этого интервала?
2. Парабол и линия пересекаются если уравнение cx^2 + dx + f = ax + b имеет хоть один корень. А это уравнение второго порядка и условие существования корней есть ... (сам узнаешь) . Попробуй по этому пути.
Он сказал это не трогать, типа так и надо
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
28.01.2013, 17:09 #6
mehanik7, позвольте, а зачем решаете фором? Решайте аналитически (на бумаге) и вбивайте формулы
Catstail
Модератор
22546 / 10951 / 1776
Регистрация: 12.02.2012
Сообщений: 18,087
28.01.2013, 17:19 #7
Надо примерно так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include <math.h>
using namespace std;
int main ()
{
  float a, b, c, d, f, x, x1, x2, y, y1, y2;
  cin>>a>>b>>c>>d>>f;
  for(x=-5; x<=5;x++)
   {
     y1=c*x*x+d*x+f;
     y2=a*x+b;
     if(fabs(y1-y2) <= 0.000001) 
        cout<<"x="<<x<<"     "<<"y1="<<y1<<"    "<<"y2=";
     else
        cout<<"net peresecheniy";
    }
getchar();
}
mehanik7
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 31
28.01.2013, 17:20  [ТС] #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include <math.h>
using namespace std;
int main ()
{
float a, b, c, d, f, x, x1, x2, y, y1, y2;
cin>>a>>b>>c>>d>>f;
 
 
y1=c*x*x+d*x+f;
y2=a*x+b;
if(y1==y2)
else{
cout<<"x="<<x<<"     "<<"y1="<<y1<<"    "<<"y2="<<endl;
cout<<"net peresecheniy"<<endl;}
getchar();
}
паже самая хрень что с endl что без endl
Lexp
3 / 3 / 1
Регистрация: 02.07.2012
Сообщений: 45
28.01.2013, 17:23 #9
А тут сразу после if идет else
Надо что-то после if и перед else написать, а то неправославно
mehanik7
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 31
28.01.2013, 17:27  [ТС] #10
я все перепробовал все равно del c++ выдает в else ошибку

Добавлено через 3 минуты
например что написать
Lexp
3 / 3 / 1
Регистрация: 02.07.2012
Сообщений: 45
28.01.2013, 17:29 #11
То, что должно выполниться, если условие в if окажется верным

Добавлено через 1 минуту
В твоем случае эту строчку
Цитата Сообщение от mehanik7 Посмотреть сообщение
cout<<"x="<<x<<" * * "<<"y1="<<y1<<" * *"<<"y2="<<endl;
Надо перенести из else в if
phuongham
Сообщений: n/a
28.01.2013, 19:23 #12
Цитата Сообщение от Lexp Посмотреть сообщение
Он сказал это не трогать, типа так и надо
Не знаю зачем так сложно. mehanik7 если можно то напиши все условия задачи.

Цитата Сообщение от Catstail Посмотреть сообщение
Надо примерно так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include <math.h>
using namespace std;
int main ()
{
  float a, b, c, d, f, x, x1, x2, y, y1, y2;
  cin>>a>>b>>c>>d>>f;
  for(x=-5; x<=5;x++)
   {
     y1=c*x*x+d*x+f;
     y2=a*x+b;
     if(fabs(y1-y2) <= 0.000001) 
        cout<<"x="<<x<<"     "<<"y1="<<y1<<"    "<<"y2=";
     else
        cout<<"net peresecheniy";
    }
getchar();
}
Ну вот код почти правильный. Только на каждой шаге если y1 != y2 то нельзя сразу говорить что линии не пересекаются. А это только после выхода из цикла.
Catstail
Модератор
22546 / 10951 / 1776
Регистрация: 12.02.2012
Сообщений: 18,087
28.01.2013, 21:02 #13
Небрежно написанная программа. Вот рабочий вариант:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream.h>
#include <math.h>
 
int main ()
{
  float a, b, c, d, f, x, y1, y2;
  int k=0;
  cin>>a>>b>>c>>d>>f;
  for(x=-5; x<=5;x++)
   {
 
     y1=c*x*x+d*x+f;
     y2=a*x+b;
     
     if(fabs(y1-y2) <= 0.000001) 
     {
        cout << "x=" << x << "     " << "y1=" << y1 << "    " << "y2=" << y2 << endl;
        k=-1;
        break;
     }
 
   }
 
   if (k == 0)  cout<<"net peresecheniy" << endl;
    
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2013, 21:02
Привет! Вот еще темы с ответами:

Определить в скольких точках пересекаются окружности - C++
Заданы две окружности: с центром в точке О1(x0, y0) и радиусом R0 и с центром в точке О2(x1, y1) и радиусом R1. Определите, во скольких...

По координатам отрезков определить, пересекаются ли они - C++
Добрый день! По координатам отрезков требуется определить пересекаются ли они. У меня на 5-ом тесте валится, помогите, пожалуйста, найти...

Определить, пересекаются ли контур прямоугольника и окружность - C++
Задача такова есть координаты прямоугольника и круга. необходимо выяснить пересекаются они или нет.???? #include &lt;iostream&gt; ...

Структуры (Создайте структуру Прямая с элементами x1, y1, x2, y2 – координаты двух точек, через которые проходит прямая) - C++
Создайте структуру Прямая с элементами x1, y1, x2, y2 – координаты двух точек, через которые проходит прямая. Для К заданных прямых вывести...


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

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

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