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

Выяснить, пересекаются ли параболы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
14.10.2010, 21:38     Выяснить, пересекаются ли параболы #1
Доброй ночи всем!
Дано задание : Выяснить, пересекаются ли параболы у=аx^2+bx+с и у= dx^2+ex+f.Если пересекаются то найти точки пересечения.
Вот мой код программы:

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
28
29
30
31
32
33
34
35
36
37
38
39
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"rus_rus.1251");
    double x,y,D;
    float a,b,c,z,s,d,e,k,f; 
    cout<<"Введите a:"; 
    cin>>a=;
    cout<<"\n Введите b:"; 
    cin>>b=; 
    cout<<"\n Введите c:"; 
    cin>>c=;
    
{
    if (D<0) //не пересекаются
    cout<<"Не пересекаются"<<endl;
}
{
    if (D==0) //прямая пересекает параболы, находим одну точку
    z=a*pow(x,2)+b*c+c;
    s=d*pow(x,2)+e*k+f;
    cout<<"z="<<z<<endl;
    cout<<"s="<<s<<endl;
}
{
    double x1,x2,p;
    if (D>0) //есть две точки пересечения
    x1=-p+(sqrt(D))/2*a;
    x2=-p-sqrt(D)/2*a;
    cout<<"x1"<<x1;
    cout<<"x2"<<x2;
    system("pause");
    return 0;
}
Посмотрите что не так и помогите пожалуйста.В заранее огромное спасибо!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
14.10.2010, 22:58     Выяснить, пересекаются ли параболы #2
в коде что то сложно найти даже где коэфициенты для второго уравнения вводятся.
у=аx^2+bx+с и у= dx^2+ex+f
аx^2+bx+с=dx^2+ex+f
(a-d)x^2+(b-e)x+(c-f)=0 - решить надо это уравнение.
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
15.10.2010, 07:36  [ТС]     Выяснить, пересекаются ли параболы #3
Значит надо добавлять еще переменне ко второму уранению и вводить их с клавиатуры?!спсибо.

Добавлено через 46 секунд
А почему надо решить это уравнени (a-d)x^2+(b-e)x+(c-f)=0???
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
15.10.2010, 07:56     Выяснить, пересекаются ли параболы #4
Цитата Сообщение от Селявкина Мария Посмотреть сообщение
А почему надо решить это уравнени (a-d)x^2+(b-e)x+(c-f)=0???
Чтобы найти пересечения, нужно найти точки, в которых совпадают координаты обеих парабол. Т.е, y обоих уравнений равны=>можно приравнять: аx^2+bx+с = dx^2+ex+f. Переносим всё в левую часть:
аx^2+bx+с-dx^2-ex-f = 0
Упрощаем:
(a-d)x^2 + (b-e)x+c-f=0
И находим x.
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
15.10.2010, 08:00  [ТС]     Выяснить, пересекаются ли параболы #5
А как в программе это написать?и где именно?
alexzak
84 / 57 / 1
Регистрация: 07.08.2010
Сообщений: 185
15.10.2010, 08:36     Выяснить, пересекаются ли параболы #6
Код левый какой-то . Дали на другом форуме, а ты сюда запостила?
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
15.10.2010, 08:38  [ТС]     Выяснить, пересекаются ли параболы #7
Код сама писала.Я новичек,поэтому как умею тк и написала.А сижу я только на одном форуме-только на этом.
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
15.10.2010, 08:47     Выяснить, пересекаются ли параболы #8
Что-то типа этого. Проверил для a=3, b=4, c=3, d=2, e=2, f=6; выдаёт x1=1, x2=-3, т.е. само уравнение считает верно. Приведите пример каких-нибудь пересекающихся парабол для проверки.
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"rus_rus.1251");
 
    double x1,x2,y,D;
    double a,b,c,d,e,f;
 
 
    cout<<"Введите a:"; 
        cin>>a;
    cout<<"\nВведите b:"; 
        cin>>b; 
    cout<<"\nВведите c:"; 
        cin>>c;
 
    cout<<"\nВведите d:"; 
        cin>>d;
    cout<<"\nВведите e:"; 
        cin>>e; 
    cout<<"\nВведите f:"; 
        cin>>f;
 
    double A,B,C;
    A=(a-d); 
    B=(b-e);
    C=(c-f);
 
    D=B*B-4*A*C; // дискриминант
    
    cout<<"Discriminant = "<<D<<endl;
 
        if (D<0) //не пересекаются
        cout<<"Не пересекаются"<<endl;
    else if(D==0.0) // одна точка пересечения
    {
        x1=-B/(2*A);
        cout<<"x = "<<x1<<endl;
    }
    
    else // две точки пересечения
    {
        x1=(-B+sqrt(D))/(2*A);
        x2=(-B-sqrt(D))/(2*A);
        cout<<"x1 = "<<x1<<endl;
        cout<<"x2 = "<<x2<<endl;
    }
    
    system("pause");
    return 0;
}
alexzak
84 / 57 / 1
Регистрация: 07.08.2010
Сообщений: 185
15.10.2010, 09:04     Выяснить, пересекаются ли параболы #9
Цитата Сообщение от Селявкина Мария Посмотреть сообщение
Код сама писала.Я новичек,поэтому как умею тк и написала.А сижу я только на одном форуме-только на этом.
Тогда не потрудишься объяснить, что этот твой код делает? Могу поспорить, что ничего у тебя не выйдет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2010, 09:31     Выяснить, пересекаются ли параболы
Еще ссылки по теме:

C++ Построение параболы
Пересечение кубической параболы и окружности C++
C++ Выяснить пересекаются ли эти прямые или они параллельны

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

Или воспользуйтесь поиском по форуму:
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
15.10.2010, 09:31  [ТС]     Выяснить, пересекаются ли параболы #10
Я написала код сначала с математической точки зрения,как она решает в математике и выложела здесь чтобы помогли написать с точки зрения пограммирования.
Если Вам больше нечем занятся как пристовать ко мне,то пожалуйста отставте меня в покое и занимайтесь своими делами.
Yandex
Объявления
15.10.2010, 09:31     Выяснить, пересекаются ли параболы
Ответ Создать тему
Опции темы

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