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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
#1

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

14.10.2010, 21:38. Просмотров 1903. Ответов 9
Метки нет (Все метки)

Доброй ночи всем!
Дано задание : Выяснить, пересекаются ли параболы у=а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;
}
Посмотрите что не так и помогите пожалуйста.В заранее огромное спасибо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2010, 21:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выяснить, пересекаются ли параболы (C++):

Для каждой параболы вывести уравнение, найти эктремумы; выяснить совпадают или пересекаются эти параболы - C++
Вот само задание: http://i.imgur.com/ZOUVXmQ.jpg П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с...

Выяснить, пересекаются ли параболы. - C++
Выяснить, пересекаются ли параболы y=ax2+bx+c и y=dx2+ex + f. При положительном ответе найти точки пересечения.

Выяснить, пересекаются ли параболы - C++
1) Составить алгоритм и написать программу на языке С++ решения задачи: Выяснить, пересекаются ли параболы у=аx^2+bx+с и у=dx^2+ex+f....

Выяснить, пересекаются ли кривые - C++
Выяснить, пересекаются ли кривые у=аx3+bx2+сx+d и y=ex3+fx2+gx+h. При положительном ответе найти точки пересечения. Как здесь...

Выяснить пересекаются ли эти прямые или они параллельны - C++
Задание таково: пользователь вводит координаты двух прямых, программа должна выяснить: пересекаются ли эти прямые или они параллельны? Если...

Выяснить можно ли с поля (k,l) одним ходом ферьзя попасть на поле(m,n). Если нет, то выяснить, как это можно сделать за два хода - C++
Поле шахмотной доски определяеся парой натуральных чисел, каждая из которых не превосходит восьми: первое число номер вертикали (при счете...

9
KuKu
1558 / 1036 / 78
Регистрация: 17.04.2009
Сообщений: 2,987
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 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
15.10.2010, 07:36  [ТС] #3
Значит надо добавлять еще переменне ко второму уранению и вводить их с клавиатуры?!спсибо.

Добавлено через 46 секунд
А почему надо решить это уравнени (a-d)x^2+(b-e)x+(c-f)=0???
0
dihlofos
Бродяга
303 / 257 / 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 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
15.10.2010, 08:00  [ТС] #5
А как в программе это написать?и где именно?
0
alexzak
84 / 57 / 1
Регистрация: 07.08.2010
Сообщений: 185
15.10.2010, 08:36 #6
Код левый какой-то . Дали на другом форуме, а ты сюда запостила?
0
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
15.10.2010, 08:38  [ТС] #7
Код сама писала.Я новичек,поэтому как умею тк и написала.А сижу я только на одном форуме-только на этом.
0
dihlofos
Бродяга
303 / 257 / 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;
}
1
alexzak
84 / 57 / 1
Регистрация: 07.08.2010
Сообщений: 185
15.10.2010, 09:04 #9
Цитата Сообщение от Селявкина Мария Посмотреть сообщение
Код сама писала.Я новичек,поэтому как умею тк и написала.А сижу я только на одном форуме-только на этом.
Тогда не потрудишься объяснить, что этот твой код делает? Могу поспорить, что ничего у тебя не выйдет.
0
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
15.10.2010, 09:31  [ТС] #10
Я написала код сначала с математической точки зрения,как она решает в математике и выложела здесь чтобы помогли написать с точки зрения пограммирования.
Если Вам больше нечем занятся как пристовать ко мне,то пожалуйста отставте меня в покое и занимайтесь своими делами.
1
15.10.2010, 09:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2010, 09:31
Привет! Вот еще темы с ответами:

Построение параболы - C++
Здравствуйте. Необходимо построить параболу, удовлетворяющую уравнению: y=a*x^2+b*x+c Я составил программу (приведена ниже), но в итоге...

Пересекаются ли отрезки - C++
Даны три различных числа. Среднее из них заменить суммой квадратов, большее ― квадратом суммы меньшего и среднего, меньшее оставить без...

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

Найти вершину параболы - C++
Найдите вершину параболы ax2+bx+c для заданных a,b,c.


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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