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

Определить расстояние от данной точки до ломаной - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить программу для нахожления точки пересечения этих функций http://www.cyberforum.ru/cpp-beginners/thread29066.html
Кто нить кто понимает с++ помогите с задачкой :) Дана парабола y=ax2+bx+с и прямая y=kx+m. Составить программу для нахожления точки пересечения этих функций, если тковая существует. В случае если пересения нет, выдать специальное сообщение. Зарание спасибо :)
C++ Строки немогу найти решения или нехватает литературы чтоб самому разобраться подскажите пожалуйста как решить эти задачи методом для начинающего или где можно взять литературу по строкам пожалуйста заранее благодарен 1.Дана строка. Заменить в строке все большые буквы на маленькие и наоборот. 2.Написать функцию, которая получает строку и возвращает длину строки. Без использования функции strlen() 3.Дана строка. Удалить из строки заданный символ. Результат... http://www.cyberforum.ru/cpp-beginners/thread29059.html
Поиск экстремумов функции C++
Вообще завал(( Была задана такая задача: Найти экстремумы функции y=2*sin(3*x) С чего вообще начать решать эту задачу? Есть ли какие-нибудь специальные функции(и если есть какие нужны библиотеки) чтобы реализовать алгоритм на Borland C++ ?
Программа на С++Методо Гаусса C++
Реализован метод Гаусса.Предмет Численные методы. Может кто-то сталкивался.Но запустить не могу.Одно предупереждение об инициализации N.Среда Visual Studio 2008.Просьба помочь.Заранее спасибо. . #include<iostream> using namespace std; #include "locale.h" #include <stdio.h> #include <conio.h> #include <math.h> #define N 50 void chisl( int k, double mas , int n, int otv );
C++ Протабулировать ф-ю на промежутке от а к b с шагом n согласно вложению http://www.cyberforum.ru/cpp-beginners/thread29008.html
Прошу помогите решить написать программу. 1. Протабулировать ф-ю на промежутке от а к b с шагом n согласно вложению. 2. Задано число N. Сложить программу поиска “совершенствованных” чисел меньших за N. “совершенствованым” есть число, которое равно суме своих делителей, за исключением самого себя. Заранее благодарен.
C++ Протабулировать функцию в промежутке между а и b с шагом n Помогите пожалуйста написать программу Вот задание 1. Протабулювати функцію на проміжку від а до b з кроком n згідно додатку. 2. Задано деяке число N. Скласти програму пошуку “досконалих” чисел менших за N. “Досконалим” є число, яке дорівнює сумі своїх дільників, за винятком самого себе. подробнее

Показать сообщение отдельно
ShadoW
7 / 7 / 0
Регистрация: 01.04.2009
Сообщений: 109

Определить расстояние от данной точки до ломаной - C++

07.04.2009, 16:51. Просмотров 1474. Ответов 3
Метки (Все метки)

Есть задача. Вот ее краткий пересказ.

На плосткости дана точка с координатами x и у. Дано n. На плоскости дано n точек, попарно соединенных прямыми, чтобы получилась замкнутая ломанная (первая со второй, вторая с третьей ... n-я с первой). Определить расстояние от данной точки до ломанной.

Есть решение, но понять, что в нем не так, не получается уже третий день.

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
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
 
float sqrt(float);
int main()
{
    float p,a,b,c,x,y, min=4000000;
    float d[10001][2];
    int n, i;
    cin>>x>>y;
    cin>>n;
    for (i=0;i<n;i++)
        cin>>d[i][0]>>d[i][1];
    d[n][0]=d[0][0];
    d[n][1]=d[0][1];
 
    for (i=0;i<n;i++)
    {//находим стороны рассматриваемого треугольника
        a=sqrt((x-d[i][0])*(x-d[i][0]) + (y-d[i][1])*(y-d[i][1]));
        b=sqrt((x-d[i+1][0])*(x-d[i+1][0]) + (y-d[i+1][1])*(y-d[i+1][1]));
        c=sqrt( (d[i][0]-d[i+1][0])*(d[i][0]-d[i+1][0]) + (d[i][1]-d[i+1][1])*(d[i][1]-d[i+1][1]));
 
        if(a==0 || b==0)
        {
            cout<<"0";
            return 0;
        }
        else
        if(b*b>a*a+c*c)
        {
            if(a<min)
                min=a;
        }
        else
            if(a*a>b*b+c*c)
            {
                if(b<min)
                    min=b;
            }
            else
            {
                p=(a+b+c)/2;
                if(2*sqrt(p*(p-a)*(p-b)*(p-c))/c<min)
                    min=2*sqrt(p*(p-a)*(p-b)*(p-c));
            }
    }
    cout<<min;
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru