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

Ввести координаты трех точек и ... - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вопрос по деревьям в с++ http://www.cyberforum.ru/cpp-beginners/thread181955.html
Нарад помогите разобраться с прогой. Вот задание. Имеется дерево вызовов процедур некоторой программы. Структура программы такова, что каждая вызываемая процедура вложена в вызывающую ее процедуру. Задан объем памяти, которой требуется для загрузки каждой процедуры. При выходе из процедуры занимаемая ей память освобождается. Известно, что вызов процедур при работе программы соответствовал обходу...
C++ Построить класс для описания плоской геометрической фигуры квадрат Помогите написать программу в Борланд С++, вот условие: 1.Сложить целые и нецелые части двох действительных чисел. например: 1,8 и 5,3. 2.Построить класс для описания плоской геометрической фигуры квадрат.Предусмотреть методы для создания объектов и изменения их размеров. Дублирование тем запрещено правилами форума (п. 3.4). Не плодите одинаковых тем. http://www.cyberforum.ru/cpp-beginners/thread181948.html
C++ Таймер времени
Нужно написать таймер который бы отсчитывал оставшееся время (в днях\часах\секундах\)до заданого числа с привязкой с системному времени. т.е допустим сегодня 26.10.2010 а надо отсчитать оставшееся время до 30.10.2010 и он должен считать вида например " ОСталось стлоько то дней.чосав.секунд) как сделать сам таймер я знаю а вот как сделать отсчет от системного времени ...
C++ Задание по ЛОС
Всем доброго времени суток, помогите написать программу для работы с ЛОС (линейный однонаправленный список) Вот краткие условия задания: 1)Список должен быть: однонаправленным. 2)C поиском информации по номеру в списке. 3)Добавление нового элемента перед минимальным ключом. 4)Удаление информации: удалить второй ключ в списке. Кто поможет написать?
C++ разбить класс http://www.cyberforum.ru/cpp-beginners/thread181921.html
Всем привет! Задача Описание класса находится в файле myfile.h . Описание функций в myfile.cpp. Необходимо перенести часть функций в файл myfile2.cpp Возможно ли такое ?
C++ Вычисление количиства символов в строке (BCB6) Мне нада написать програму на С++ bilder6 на языке С для вычисления количиства символов в строке вот то что я написал исправте плиз или переделайте #include <stdio.h> #include <string.h> #include <math.h> #include <windows.h> main() { char s; char str0; char str1; подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,696
28.10.2010, 23:06     Ввести координаты трех точек и ...
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
//////////////////////////////////////////////////////////////////////////////////////
#include <cmath>
#include <complex>
#include <iostream>
#include <limits>
#include <set>
//////////////////////////////////////////////////////////////////////////////////////
typedef double                 T_coord;
typedef std::complex<T_coord>  T_point;
typedef std::set<T_coord>      T_angles;
//////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  equal_to_for_real(T a, T b) 
{
    const T  coef = 10;    
    return abs(a - b) < 0.001;
}
/////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  greater_for_real(T a, T b) 
{
    return a > b
           && !equal_to_for_real(a, b);
}
/////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  less_for_real(T a, T b) 
{
    return a < b
           && !equal_to_for_real(a, b);
}
/////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  greater_equal_for_real(T a, T b) 
{
    return !less_for_real(a, b);
}
/////////////////////////////////////////////////////////////////////////////////////
template<class T>
bool  less_equal_for_real(T a, T b) 
{
    return !greater_for_real(a, b);
}
/////////////////////////////////////////////////////////////////////////////////////
T_point  vect(T_point  A, T_point  B)
{
    return  B - A;
}
//////////////////////////////////////////////////////////////////////////////////////
struct  T_point_compare
{
    bool  operator() (T_point  A, T_point  B)
    {
        return equal_to_for_real(A.real(), B.real()) 
            ? less_for_real(A.imag(), B.imag()) : less_for_real(A.real(), B.real());
              
    }
};
//////////////////////////////////////////////////////////////////////////////////////
typedef std::set<T_point, T_point_compare>  T_triangle;
//////////////////////////////////////////////////////////////////////////////////////
 
void  print_triangle_type(T_triangle  triangle)
{
    std::cout << "Тип треугольника:"
              << std::endl;
 
    if(triangle.size() < 3)
    {
        std::cout << '\t'
                  << "вырожденный"
                  << std::endl;
        return;
    }
 
    T_point  A = *triangle.begin();
    triangle.erase(A);
 
    T_point  B = *triangle.begin();
    triangle.erase(B);
 
    T_point  C = *triangle.begin();
 
    T_point  AB = vect(A, B);
    T_point  AC = vect(A, C);
    T_point  BC = vect(B, C);
 
    if(equal_to_for_real(0.0, arg(AB / AC)))
    {
        std::cout << '\t'
                  << "вырожденный"
                  << std::endl;
        return;
    }
 
    if(   equal_to_for_real(abs(AB), abs(AC))
       && equal_to_for_real(abs(AB), abs(BC)))
    {
        std::cout << '\t'
                  << "равносторонний"
                  << std::endl;
        return;    
    }
 
    bool is_isosceles =    equal_to_for_real(abs(AB), abs(AC))
                        || equal_to_for_real(abs(AB), abs(BC))
                        || equal_to_for_real(abs(AC), abs(BC));    
    
    std::cout << '\t'
              << (is_isosceles ? "равнобедренный" : "разносторонний")
              << std::endl;
 
    T_coord  angleA = abs(arg( AB /  AC));
    T_coord  angleB = abs(arg(-AB /  BC));
    T_coord  angleC = abs(arg(-AC / -BC));
 
    T_angles  angles;
    angles.insert(angleA);
    angles.insert(angleB);
    angles.insert(angleC);
 
    T_coord  angle_max = *angles.rbegin();
    const T_coord  RIGHT_ANGLE = acos(0.0);
 
    if(equal_to_for_real(angle_max, RIGHT_ANGLE))
    {
        std::cout << '\t'
                  << "прямоугольный"
                  << std::endl;    
    }
    else if(less_for_real(angle_max, RIGHT_ANGLE))
    {
        std::cout << '\t'
                  << "остроугольный"
                  << std::endl;    
    }
    else
    {
        std::cout << '\t'
                  << "тупоугольный"
                  << std::endl;    
    }
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));   
    std::cout << "Введите координаты вершин треугольника:"
              << std::endl;
 
    T_triangle  triangle;
    for(char point_name = 'A'; point_name <= 'C'; ++point_name)
    {
        std::cout << std::endl
                  << '\t'
                  << point_name
                  << "x = ";
 
        T_coord X = 0;
        std::cin >> X;
 
        std::cout << '\t'
                  << point_name
                  << "y = ";
 
        T_coord Y = 0;
        std::cin >> Y;
        triangle.insert(T_point(X, Y));
    }
    print_triangle_type(triangle);
}
 
Текущее время: 11:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru