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

Определить координаты вершины треугольника - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как скомпилировать программу на Mac OS http://www.cyberforum.ru/cpp-beginners/thread209094.html
Например, написал я программу на Си в TextEdit, теперь мне нужно её скомпилировать. Я установил gcc 4.2 который идёт в комплекте с xcode. Как мне теперь скомпилировать написанную программу?
C++ Найти число в двоичной записи которого максимальное число единиц Среди простых чисел ,не превосходящих N ,найти такое ,в двоичной записи которого максимальное число единиц. Уважаемые форумчане помогите с кодом, буду очень благодарен. http://www.cyberforum.ru/cpp-beginners/thread209088.html
C++ Найти непрерывные участки, на которых сумма элементов равна 100
Найти непрерывные участки, на которых сумма элементов равна 100 Что-то я тут намудрил... Помогите поправить.. #include "stdafx.h" #include <iostream> #include <ctime> using namespace std; int _tmain(int argc, _TCHAR* argv) {
как в файле вывести все в стречку и не в столбик ?!!?! C++
здравствуйте помогите с выводом в файл обычный "txt."... вот мой код и что делает программа "Умножить каждое четное число на первое отрицательное число. Добавить к каждому числу половину последнего отрицательного числа." /--------------------------------------------------------------------------- #pragma hdrstop #include <stdio.h> #include <conio.h> #include <list.h> #include...
C++ Нахождение определителя матрицы n-го порядка без рекурсии http://www.cyberforum.ru/cpp-beginners/thread209084.html
Здравствуйте, мне на дом дали задачу на С++ написать программу которая находит определитель матрицы n го порядка, я довольно быстро её реализовал рекурсивным методом, а потом задумался "а можно ли сделать тоже самое без рекурсии"?..долго ломал голову и не выдержал..решил спросить у вас:)
C++ Вывод символа слева и его соответствующего кода ASCII справа Собственно вопрос как это сделать? подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
3014 / 1670 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
24.12.2010, 19:06     Определить координаты вершины треугольника
Вышеприведенная программа от BrumbleHorse работает неверно, например при вводе
0, 1
1, 0
7, 5
Вот так будет правильнее:

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//////////////////////////////////////////////////////////////////////////////////////
//Для треугольника с целокоординатными вершинами по известным вершинам A(0, 0) и B 
//найти такую вершину C, чтобы площадь треугольника была минимально возможной.
//////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cmath>
#include <iostream>
//////////////////////////////////////////////////////////////////////////////////////
void  get_C_vertice(int  Bx, int  By, int& Cx, int&  Cy)
{
    Cx                   = 1;
    Cy                   = 0;
    double  y_delta_min  = 10;
 
    //Пробегаемся от точки A(0, 0) до точки B по отрезку AB в поисках точки, 
    //ближайшей к этой прямой:
    for(int x_cur = 0; x_cur != Bx; x_cur += Bx / abs(Bx))
    {
        double  y              = static_cast<double>(By) / Bx * x_cur;
        double  y_floor_delta  = abs(floor  (y) - y);
        double  y_ceil_delta   = abs(ceil   (y) - y);
 
        if(y_floor_delta == 0.0)           
        {
            if(y_delta_min > 1.0)
            {
                Cx           = x_cur;
                Cy           = static_cast<int>(y) + 1;                
                y_delta_min  = 1.0;            
            }            
        }   
        else if(std::min(y_floor_delta, y_ceil_delta) < y_delta_min)
        {
            Cx = x_cur;
            if(y_floor_delta < y_ceil_delta)
            {                
                Cy           = static_cast<int>(floor(y));
                y_delta_min  = y_floor_delta;                
            }
            else
            {                
                Cy           = static_cast<int>(ceil(y));
                y_delta_min  = y_ceil_delta;            
            }        
        }
    }
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale("")); 
    int Bx = 0;
    int By = 0;
 
    do
    {
        std::cout << std::endl
                  << "Введите координаты вершины B:"
                  << std::endl;
        
        std::cout << "Bx = ";
        std::cin >> Bx;
 
        
        std::cout << "By = ";
        std::cin >> By;    
    }while(   Bx == 0
           && By == 0);
 
    int Cx = 0;
    int Cy = 0;
 
    get_C_vertice(Bx, By, Cx, Cy);
    std::cout << "При заданных вершинах треугольника A(0, 0) и B("
              << Bx
              << ", "
              << By
              << ")"
              << std::endl
              << "треугольник будет иметь минимально возможную площадь "
              << std::endl
              << "при вершине в точке C("
              << Cx
              << ", "
              << Cy
              << ")."
              << std::endl;             
}
 
Текущее время: 13:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru