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

Ошибка в нахождении точек пересечения - C++

Восстановить пароль Регистрация
 
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
11.12.2011, 15:15     Ошибка в нахождении точек пересечения #1
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
#include <cstdlib>
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{ 
    int a,b,a1,b1,a2,b2,x,y,x1,x2,y1,y2;
    float D;
    printf("Vvedite a=");
    scanf("%d",&a);
    printf("Vvedite b=");
    scanf("%d",&b);
    printf("Vvedite a1=");
    scanf("%d",&a1);
    printf("Vvedite a2=");
    scanf("%d",&a2);
    printf("Vvedite b1=");
    scanf("%d",&b1);
    printf("Vvedite b2=");
    scanf("%d",&b2);
    if (y==y1){
              x=x1;
              a*x*x+b*x-a1*x-b1==0;
              D=(b-a1)*(b-a1)-4*a*b1;
              x=((-1)*(b-a1)-sqrt(D))/4*a;
              printf("x=%d",x);
              scanf("%d",x);
              }
              else if (y==y2){
              x=x2;
              a*x*x+b*x-a2*x-b2==0;
              D=(b-a2)*(b-a2)-4*a*b2;
              x=((-1)*(b-a2)-sqrt(D))/4*a;
              printf("x=%d",x);
              scanf("%d",x);
              }
              else printf("Ne peresekautsa);
    system("PAUSE");
    return EXIT_SUCCESS;
}
В 27 строке пишет ошибку expected ')' before ';' taken. Помогите исправить пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
11.12.2011, 15:24     Ошибка в нахождении точек пересечения #2
Цитата Сообщение от nake Посмотреть сообщение
a*x*x+b*x-a1*x-b1==0;
Что это?

Цитата Сообщение от nake Посмотреть сообщение
else printf("Ne peresekautsa);
Закрывающая кавычка пропущенна.
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
11.12.2011, 15:35  [ТС]     Ошибка в нахождении точек пересечения #3
Цитата Сообщение от kazak Посмотреть сообщение
Что это?
это уравнение))

Добавлено через 1 минуту
всё, спс теперь работает)) только что-то я намудрил в условии. Как найти точки пересечения параболы и прямоугольника при помощи условных операторов?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
11.12.2011, 15:41     Ошибка в нахождении точек пересечения #4
Цитата Сообщение от nake Посмотреть сообщение
это уравнение))
C++ уравнений решать не умеет, это забота программиста.

Цитата Сообщение от nake Посмотреть сообщение
Как найти точки пересечения параболы и прямоугольника при помощи условных операторов?
Какой параболы и какого прямоугольника?
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
11.12.2011, 16:29  [ТС]     Ошибка в нахождении точек пересечения #5
параболы y=ax^1+bx
прямоугольника y=ax+b
Вот само задание: Определить , пересекает ли парабола y=ax + b прямоугольник
с координатами противоположных вершин (x1,y1), (x2,y2) и,
если пересекает , найти все точки пересечения.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.12.2011, 16:41     Ошибка в нахождении точек пересечения #6
Цитата Сообщение от nake Посмотреть сообщение
параболы y=ax^1+bx
Какая ж это парабола?
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
11.12.2011, 16:46  [ТС]     Ошибка в нахождении точек пересечения #7
Цитата Сообщение от soon Посмотреть сообщение
Какая ж это парабола?
сор)) y=ax^2+bx
c=0
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
11.12.2011, 16:50     Ошибка в нахождении точек пересечения #8
У вас условие одно, а пишете другое, прочитайте что вы до этого курсивом печатали
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
12.12.2011, 00:00  [ТС]     Ошибка в нахождении точек пересечения #9
Цитата Сообщение от AncinetHero Посмотреть сообщение
У вас условие одно, а пишете другое, прочитайте что вы до этого курсивом печатали
проосто в задании ошибка в уравнении параболы

Добавлено через 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <cstdlib>
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{ 
    int a,b,a1,b1,a2,b2,x,y,x1,x2,y1,y2;
    float D;
    printf("Vvedite a=");
    scanf("%d",&a);
    printf("Vvedite b=");
    scanf("%d",&b);
    printf("Vvedite a1=");
    scanf("%d",&a1);
    printf("Vvedite a2=");
    scanf("%d",&a2);
    printf("Vvedite b1=");
    scanf("%d",&b1);
    printf("Vvedite b2=");
    scanf("%d",&b2);
    y=a*x*x+b*x;
    y1=a1*x1+b1;
    y2=a2*x2+b2;
    if (y==y1){
              x=x1;
              a*x*x+(b-a1)*x-b1==0;
              D=(b-a1)*(b-a1)-4*a*b1;
              x=((-1)*(b-a1)-sqrt(D))/4*a;
              y=a*x*x+b*x;
              printf("(x=%d,y=%d)",x,y);
              scanf("%d%d",x,y);
              }
              else if (y==y2){
              x=x2;
              a*x*x+(b-a2)*x-b2==0;
              D=(b-a2)*(b-a2)-4*a*b2;
              x=((-1)*(b-a2)-sqrt(D))/4*a;
              y=a*x*x+b*x;
              printf("(x=%d,y=%d)",x,y);
              scanf("%d%D",x,y);
              }
              else printf("Ne peresekautsa");
    system("PAUSE");
    return EXIT_SUCCESS;
}
Чуть подредактировал, но как написать условие всё равно не очень понятно.

Добавлено через 6 часов 52 минуты
помогите написать пожалуйста как нужно составить условие
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
12.12.2011, 03:12     Ошибка в нахождении точек пересечения #10
Предполагается x1 < x2, y1 < y2.
Находишь корни уравнения
ax^2 + bx - x1 = 0
если корни существуют, находишь значение функции, если значение находятся на отрезке [y1; y2], то эти точки являются точками пересечения с нижней стороной прямоугольника.
Аналогично для верхней стороны решается уравнение ax^2 + bx - x2 = 0.
Для боковых сторон находятся корни уравнений
ax^2 + bx - y1 = 0
ax^2 + bx - y2 = 0
если корни существуют и находятся на отрезке [x1; x2], то они являются точками пересечения с боковой стороной прямоугольника.

Добавлено через 2 часа 52 минуты
Таки немного напутал. Последние два уравнения для нахождения точек пересечения с горизонтальными сторонами прямоугольника. Для боковых сторон нужно в уравнение параболы подставлять значение х1 и х2.
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
12.12.2011, 15:19  [ТС]     Ошибка в нахождении точек пересечения #11
Цитата Сообщение от kazak Посмотреть сообщение
ax^2 + bx - x1 = 0
x1 нужно откуда то выражать? или как оно вообще тут появляется?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
12.12.2011, 23:49     Ошибка в нахождении точек пересечения #12
Цитата Сообщение от nake Посмотреть сообщение
x1 нужно откуда то выражать?
Цитата Сообщение от nake Посмотреть сообщение
Вот само задание: Определить , пересекает ли парабола y=ax + b прямоугольник
с координатами противоположных вершин (x1,y1), (x2,y2)
х1, х2, у1, у2 - координты вершин прямоугольника.
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
12.12.2011, 23:58  [ТС]     Ошибка в нахождении точек пересечения #13
Цитата Сообщение от kazak Посмотреть сообщение
х1, х2, у1, у2 - координты вершин прямоугольника.
да это понятно, а почему оно в этом уравнении появляется обЪясни пожалуйста? (сор за тупость))
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
13.12.2011, 14:39     Ошибка в нахождении точек пересечения #14
Цитата Сообщение от nake Посмотреть сообщение
да это понятно, а почему оно в этом уравнении появляется обЪясни пожалуйста? (сор за тупость))
Чтобы найти точки пересечения двух функций f(x) и g(x) нужно найти корни уравнений f(x) = g(x) или же f(x) - g(x) = 0
Первая функция у нас парабола ax^2 + bx, горизонтальный отрезок же можно представить системой
http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases}<br />
 & y=y_1  \\ <br />
 & x_1 < x < x_2  <br />
\end{cases}
так что сначала находим корни уравнения ax^2 + bx = y1, и если они существуют, определяем попадают ли они в интервал [x1; x2].
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2011, 18:59     Ошибка в нахождении точек пересечения
Еще ссылки по теме:

C++ Определить, сколько точек пересечения имеют прямая и окружность и найти координаты этих точек
C++ Определить количество точек пересечения двух окружностей
Найти количество и координаты точек пересечения 2-х эллипсов C++

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

Или воспользуйтесь поиском по форуму:
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
13.12.2011, 18:59  [ТС]     Ошибка в нахождении точек пересечения #15
УРА!!! Cпасибо за помощь, я решил
Yandex
Объявления
13.12.2011, 18:59     Ошибка в нахождении точек пересечения
Ответ Создать тему
Опции темы

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