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

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

Войти
Регистрация
Восстановить пароль
 
stason4ikas
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 30
#1

задача на пересечение - C++

16.09.2013, 15:01. Просмотров 453. Ответов 8
Метки нет (Все метки)

В этой задаче необходимо определить, пересекается ли прямая с окружностью. я нахожу дискриминант и затем нужно записать условие, но как его писать не знаю, объясните пожалуйста

заранее спасибо

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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#pragma hdrstop
 
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
int r,d,p,b,k;
printf("Vvedite radius  ");
scanf("%d",&r);
printf("Vvedite znacheniya k  ");
scanf("%d",&k);
printf("Vvedite znacheniya  b  ");
scanf("%d",&b);
d=4*(r*r*(1+(k*k))-(b*b));   
 
if (d<0);
printf("\n\nPryamaya and okruwnost` ne peresekautsya");
 
if (d>0);
printf("\n\nPryamaya and okruwnost` peresekautsya");
 
if (d==0);
printf("\n\nPryamaya and okruwnost` peresekautsya v 1 tochke");
 
 
getch();
        return 0;
 
}
//---------------------------------------------------------------------------
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2013, 15:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос задача на пересечение (C++):

Задача на пересечение - C++
Всем доброго вечера. Помогите пожалуйста решить задачу. Я не могу понять саму структуру как должно быть.

Задача на пересечение двух окружностей - C++
Всем привет! Прошу вашей помощи в решении задачи так как я уже дней пять над ней мучаюсь и все не выходит. Даны две окружности в...

Работа с классами и пересечение их между собой (задача о городах и поездах) - C++
Здравствуйте. Тут попалась в руки задачка, вкратце суть: Есть города, в каждом городе есть станция, на станции пассажиры, у пасажира...

Пересечение двух прямых и проверка на пересечение - C++
Доброго времени суток слизал функцию проверки отсюда:/segments_intersection_checking на всякий случай у меня она выглядит так: int...

Задача "Пересечение прямых" - C++
Даны числа a1,b1,c1,a2,b2,c2. Напечатать координаты точки пересечения прямых, описываемых уравнениями: a1*x +b1*y=c1 и a2*x + b2*y=c2,...

Пересечение треугольников в 3d - C++
Вот например 2 треугольника: (для примера) struct Point { int X; int Y; int Z; };

8
Catstail
Модератор
22726 / 11095 / 1796
Регистрация: 12.02.2012
Сообщений: 18,287
16.09.2013, 15:05 #2
А где расположен центр окружности? Прямая задается в виде y=kx+b. А у окружности только радиус?
0
stason4ikas
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 30
16.09.2013, 15:08  [ТС] #3
условие задачи:

Окружность на плоскости с центром в начале координат имеет радиус 1. Определить, пересекает ли прямая y=kx+b окружность или хотя бы касается один раз.
Значения k,b вводить в диалоге, иметь возможность повтоpного обpащения.

из математики я рассчитал формулу пересечения окружности и прямой:

d=4*(r*r*(1+(k*k))-(b*b));
0
Catstail
Модератор
22726 / 11095 / 1796
Регистрация: 12.02.2012
Сообщений: 18,287
16.09.2013, 15:22 #4
Цитата Сообщение от stason4ikas Посмотреть сообщение
с центром в начале координат имеет радиус 1
- тогда все понятно. Но ты чего-то напутал... Нужно найти расстояние от точки (0,0) до прямой. А дальше:

1) если оно = 1 -> касание;
2) если оно < 1 -> пересечение (2 точки)
3) иначе -> нет общих точек

Если прямая задана уравнением y=kx+b, то расстояние до (0,0) дается формулой:

d=abs(b)/√(k^2+1)
1
stason4ikas
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 30
16.09.2013, 15:46  [ТС] #5
Хорошо я понял, спасибо.

но я так и не понял, как писать условие на языке С++
1) если оно = 1 -> касание;
2) если оно < 1 -> пересечение (2 точки)
3) иначе -> нет общих точек

пишем: if (d<1); а дальше у меня не получется
0
Catstail
Модератор
22726 / 11095 / 1796
Регистрация: 12.02.2012
Сообщений: 18,287
16.09.2013, 16:11 #6
C++
1
2
3
4
5
6
7
  if (d < 1.0) 
    cout << "Пересечение. 2 общих точки" << endl;
  else
    if (d > 1.00)
       cout << "Нет общих точек" << endl;
    else
       cout << "Касание. 1 общая точка" << endl;
0
stason4ikas
0 / 0 / 0
Регистрация: 31.05.2013
Сообщений: 30
16.09.2013, 16:20  [ТС] #7
в институте нас обучают С++ на Builder 6. и учат через scanf и printf, не через cin and cout

вроде задал библиотеку #include <iostream>

ошибку дает, как быть?
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,534
Завершенные тесты: 1
16.09.2013, 16:25 #8
Цитата Сообщение от stason4ikas Посмотреть сообщение
Builder 6
Цитата Сообщение от stason4ikas Посмотреть сообщение
#include <iostream>
Цитата Сообщение от stason4ikas Посмотреть сообщение
ошибку дает, как быть?
Вот так:
C++
1
#include <iostream.h>
Цитата Сообщение от stason4ikas Посмотреть сообщение
scanf и printf
Это си.
Цитата Сообщение от stason4ikas Посмотреть сообщение
cin and cout
А это си плюс плюс.
1
Voivoid
675 / 278 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
16.09.2013, 17:37 #9
Лол, 2014 года на носу, а C++ builder 6 под сих пор в строю. Ну хоть спасибо, что не Turbo C++
0
16.09.2013, 17:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2013, 17:37
Привет! Вот еще темы с ответами:

Пересечение пятиугольников - C++
Здравствуйте. Собственно сабж. Вообще по заданию нужно определить только факт пересечения, но мне было бы интересно и сами точки найти. Из...

Пересечение треугольников - C++
Здравствуйте! Подскажите, пожалуйста, как узнать пересекается треугольник или нет с другими треугольниками. Вот данные: struct...

Пересечение множеств - C++
Есть такое задание: Создать класс- множество. Функции-члены реализуют добавление и удаление элемента, пересечение и размность множеств. ...

Пересечение множеств - C++
Здравствуйте. У меня следующая задача: Даны 2 множества A и B, причем множество B отсортировано по возрастанию. Необходимо получить...


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

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

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