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

Окружность и прямая - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обнаружение USB устройств с последующим их безопасным извлечением http://www.cyberforum.ru/cpp-beginners/thread335438.html
Интересует вопрос об обнаружении съёмных накопителей (usb-flash), с последующим копированием на них и извлечением, прошу в гугл не посылать, т.к. объяснений кода от него не дождёшься, хотелось бы получить внятное разъяснение, помогите кто чем может :)
C++ Дана строка удалить все пробелы или просто присвоить в другую строку без пробелов Дана строка удалить все пробелы или просто присвоить в другую строку без пробелов http://www.cyberforum.ru/cpp-beginners/thread335431.html
C++ Изменение значения переменной во время исполнения
Задача: Преобразовать введенный с клавиатуры массив таким образом, чтобы в первой его половине располагались элементы , имевшие нечетный индекс, а во второй - четный. Код такой: #include <iostream> using namespace std; int main(int argc, char **argv) { int n; cout<<"Введите кол-во элементов массива "<<endl; cin>>n;
C++ Скорость функций с ссылками
Всем привет. Интересует способ организации функции для более быстрого передачи данных. Дана функция которая дополняет вектор битов нулями в конце, если количество бит не кратно некому числу. Вариант 1: Используются ссылки. private: void static add_bits(const std::vector <boost::uint8_t> & VectorInput, std::vector <boost::uint8_t> & VectorOutput,
C++ Решить систему алгебраических линейных неоднородных уравнени http://www.cyberforum.ru/cpp-beginners/thread335409.html
У меня есть система линейных уравнений. В ней 4000 уравнений. Киньте плиз код для её решения. Желательно, чтобы он был максимально быстрым.
C++ Английские и русские буквы. Здравствуйте! Подскажите пожалуйста, как в С отличить русские буквы от английских? Я думаю что надо оперировать с кодами букв, но как именно-не соображу. Добавлено через 18 минут /* * File: main.cpp * Author: alchemist * Больше свинок для науки! подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
26.07.2011, 10:21     Окружность и прямая
Вчера не мог зайти, кстати так и не понял почему с 12 до 19 форум был недоступен???Но не в этом дело, итак по порядку:
1 easybudda, в нахождении дискриминанта х лишний, это не более чем описка, в коде х нет, посмотри листинг алгоритма
2 при нахождении корней я сам напутал и вместо того чтобы делить на 2а делил на 2ас, тут признаю огрех, хотя как раз этого то никто и не заметил, в итоге сам себя и поправил
3 соглашусь с accept-ом, да вначале не учёл координаты центра окружности, ниже код и математические соображения по переходу от х-х0 к обычному квадратному уравнению, вкратце скажу что этого достигаю переходом к Х = х-х0 и У=у-у0 и соответсвующим обратным преобразованием х = Х + х0, у = У+у0
4 единственное мое но - считаю, что если уж и юзать какую либо формулу - её сначала нужно хотябы для себя доказать, в вики в ряде случаев приведены уже конечные преобразования, в которых иногда сокрыт большой объём преобразований и выкладок, и по сути полагаемся на корректность математики автора статьи...
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
#include <stdio.h>
#include <math.h>
 
float line(float k, float x, float b);
 
int main()
{
    float x1,x2,y1,y2,x0,y0,r,X1,X2,Y1,Y2;
    printf("\tEnter parameters of line\r\n");
    printf("x1 = ");scanf("%g",&x1);
    printf("y1 = ");scanf("%g",&y1);
    printf("x2 = ");scanf("%g",&x2);
    printf("y2 = ");scanf("%g",&y2);
    printf("\tEnter parameters of cicule\r\n");
    printf("x0 = ");scanf("%g",&x0);
    printf("y0 = ");scanf("%g",&y0);
    printf("r  = ");scanf("%g",&r);
 
    float k = (y2 - y1)/(x2 - x1);
    float b = (y2*x1 - y1*x2)/(x1 - x2);
 
    b += (k*x0 - y0); 
 
    float D = pow(2*b*k,2) + 4*(1 + pow(k,2))*(pow(r,2) - pow(b,2));
    if(0 <= D)
    {
        X1 = (-2*b*k - sqrt(D))/(-2*(1 + pow(k,2)));
        Y1 = line(k,X1,b);
        printf("coord point of intersection P1(%lf;%lf)\r\n",X1 + x0,Y1 + y0);
        if(D == 0)
            printf("\tline is tangent line to circule\r\n");
        else
        {
            X2 = (-2*b*k + sqrt(D))/(-2*(1 + pow(k,2)));
            Y2 = line(k,X2,b);
            printf("coord point of intersection P2(%.2f;%.2f)\r\n",X2 + x0,Y2 + y0);
            printf("\tline cross circle in two points\r\n");
        }
    }
    else
        printf("line not cross circule\r\n");
    return 0;
}
 
float line(float k, float x, float b)
{
    return (k*x + b);
}
Миниатюры
Окружность и прямая   Окружность и прямая  
 
Текущее время: 01:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru