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

Найти точки пересечения касательных с окружностью - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Содержательно сформулировать результат выполнения функции http://www.cyberforum.ru/cpp-beginners/thread780212.html
Пожалуйста, объясните, что выполняет каждая функция. Заранее спасибо! //------------------------------------------------- 1 void F1(char c) { int i,j; for (i=0; c !='\0'; i++); for (j=0,i--; i>j; i--,j++) { char s; s=c; c=c; c=s; } }
C++ Определить общий вид степенного ряда, вычисляемого в данной функции Помогите, пожалуйста сформулировать словами, что выполняет каждый код: double sum(double x,double eps) { double s,sn; int n; for (s=0, sn = 1, n=1; fabs(sn) > eps; n++) { s += sn; sn= - sn * x / n; } return s; } http://www.cyberforum.ru/cpp-beginners/thread780210.html
C++ Станное поведение указателя
Пробовал "отладить" код и натолкнулся на грабли (см. комментарии): void itoa(long n, char* str) { char *s = str; while (n) { *s++ = n % 10 + '0'; n /= 10; } *s = '\0';
Ручной ввод в массив и проверка цепочки C++
Создать программу на С++, которая будет продуцировать цепочки(слова) в трехсимвольном алфавите с записью их в файл, причем длина L цепочек ограничена: L1<= L <= L2 и для каждой цепочки, отобранной в файл, должно выполняться условие < A >. Общее количество цепочек в файле должно быть не более M. Содержит не более двух символов «с», начинается на «ас», а символ «а» встречается только по...
C++ Строки: нахождение символов http://www.cyberforum.ru/cpp-beginners/thread780139.html
Еще раз приветствую всех!:) ------------------------------- Помогите, пожалуйста, с заданием: Даны натуральное число n и символы s1, ..., sn, среди которых есть двоеточие. Получить все символы, расположенные до первого двоеточия включительно. ------------------------------- Если что, то скрин задания прикрепил. Ну у меня вот что получилось: #include <stdio.h> #include <stdlib.h> #include...
C++ составив программу - выводится неполное решение дана десятичная система счисления.перевести число 236(10) в новую сс(20). по ручному подсчету получается 236(10)=>1116(20), а составив программу - выводится неполное решение только 11 а не 1116. НЕ ПОНИМАЮ ГДЕ ОШИБКА,ЧТО НЕ ТАК ЗАПИСАЛА? #include <stdio.h> #include<math.h> #include <stdlib.h> int main() { подробнее

Показать сообщение отдельно
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
06.02.2013, 13:34     Найти точки пересечения касательных с окружностью
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
#include <iostream>
#include <cmath>
 
using std::cout; using std::cin; using std::endl; 
 
double distance(const double x1, const double y1, const double x2, const double y2) {
    return sqrt(pow((x1 - x2), 2) + pow((y1 - y2), 2));
}
 
void findPointsOfContact(const double& xc, const double& yc, const double& R, const double& xn, const double& yn,
    double& xa, double& ya, double& xb, double& yb, const double& l) 
{
    double e = xc - xn; double c = yc - yn;
    double q = (l*l - R*R + yc*yc - yn*yn + xc*xc - xn*xn)/2;
    double A = c*c + e*e; 
    double B = (xc*e*c - c*q - yc*e*e)*2;
    double C = xc*xc*e*e - 2*xc*e*q + q*q + yc*yc*e*e - R*R*e*e;
    ya = (sqrt(B*B - 4*A*C) - B) / (2*A);
    yb = (- sqrt(B*B - 4*A*C) - B) / (2*A);
    xa = (q - ya*c)/e;
    xb = (q - yb*c)/e;
}
 
int main()
{
    double xc, yc, R, xn, yn;
    double xa, ya, xb, yb;
    xa = ya = xb = yb = 0;
    cout << "Enter coordinates" << endl;
    cin >> xc >> yc >> R >> xn >> yn;
    double CN = distance (xc, yc, xn, yn);
    double l = sqrt(CN*CN - R*R);
    if (CN > R) {
        findPointsOfContact (xc, yc, R, xn, yn, xa, ya, xb, yb, l);
        cout << "2 " << xa << " " << ya << " " << xb << " " << yb << endl;
    }
    else if (CN = R) {
        cout << "1 " << xn << " " << yn << endl;
    }
    else if (CN < R) {
        cout << "There are no contact points" << endl;
    }
    system("pause");
    return 0;
}
 
Текущее время: 06:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru