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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сравнение и замена символов http://www.cyberforum.ru/cpp-beginners/thread751778.html
У меня есть файл с которого я считываю информацию массив. Если встречается определенный символ то мне нужно заменить его на другой. И самой главное мне нужно уже обработанный текст со всеми заменами поместить в новый файл! Как такое эффективнее реализовать??
C++ Определить общее количество осадков за этот год Занести из файла в массив сведения о количестве осадков, выпавших за каждый из 12 месяцев одного года. Определить общее количество осадков за этот год, среднемесячное количество осадков, количество засушливых месяцев (когда количество осадков было меньше 30 мм), самый засушливый месяц года. Нахождение самого засушливого месяца оформить в виде функции, в которую необходимо передать в качестве... http://www.cyberforum.ru/cpp-beginners/thread751771.html
Ввести размер массива с клавиатуры и передать этот размер в конструктор C++
Я создал массив объектов. И я хочу ввести размер этого массива с клавиатуры, и передать этот размер в конструктор, как мне это сделать? #include <iostream> #include <conio.h> using namespace std; class TOVAR { public: TOVAR(int);
Объяснить алгоритм просто перебора C++
доброго времени суток! мой вопрос, наверное, покажется Вам очень глупым, но очень нужна ваша помощь! задачка не сложная:У Вас есть N камней с массами W1, W2 , … WN. Требуется разложить камни на 2 кучки так, чтобы разница масс этих кучек была минимальной.Вводим N, затем N-элементов!(н<18) поэтому пройдет перебор или нет?! не могли бы Вы написать и объяснить алгоритм перебора или какой-либо...
C++ Написать программу, выводящую сумму и разность двух введенных чисел http://www.cyberforum.ru/cpp-beginners/thread751750.html
Написать программу, выводящую сумму и разность двух введенных чисел. Основная программа запрашивает два числа и передает их в функцию. Функция реализует вычисления и вывод на экран.Написать программу на СИ++. Добавлено через 2 часа 0 минут Помогите срочно надо
C++ Функция (удаление элементов вектора, равных переданному значению) Здравствуйте товарищи и С Новым Годом!!! Большую часть задания сделал, нужно еще кое что дополнить, все никак не соображу. Вообщем мне нужно, чтобы "Filter" удалял элементы вектора равные переданному значению т.е мне нужна еще одна функция , которая будет удалять например вектор "20". #include <iostream> #include <conio.h> using namespace std; struct vect { int length ; ... подробнее

Показать сообщение отдельно
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
03.01.2013, 19:21     Определить координаты вершин прямоугольного треугольника
я ее чисто для тестов сделал, врятли ее можно будет вам показывать и тут ошибки появились, щас буду отлаживать

Добавлено через 1 час 23 минуты
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
#include <iostream>
#include <windows.h>
#include "math.h"
 
using namespace std;
 
 
struct point{
    double x;
    double y;
};
 
double lenght(double x1,double y1,double x2,double y2){
    return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
 // по теореме косинусов
double getAlpha(point tria[3]){
    double a = lenght(tria[0].x,tria[0].y,tria[2].x,tria[2].y);
    double b = lenght(tria[2].x,tria[2].y,tria[1].x,tria[1].y);
    double c = lenght(tria[0].x,tria[0].y,tria[1].x,tria[1].y);
    // тут была ошибка a должна быть наименьшей стороной
    if (a > b) {
       double tmp = a;
       a = b;
       b = tmp;
    }
    if (a > c) {
       double tmp = a;
       a = c;
       c = tmp;
    }
    return acos((a*a - b*b - c*c)/(-2*b*c));
}
int main()
{
    point triangle[3];   //исходный треугольник
    point ortTriangle[3];//прямоугольный треугольник
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    for (int i = 0; i < 3; i++) {
        cout << " ВВедите координаты " << i+1 <<" Точки "<< endl;
        cin >> triangle[i].x >> triangle[i].y ;
    }
    int maxPoint[2] = { 0 , 1}; // предположим что наибольшее растояние между 1 и 2 точками
    double maxLenght = lenght(triangle[0].x,triangle[0].y,
                              triangle[1].x,triangle[1].y);
    for (int i = 0; i < 2; i++) {
        double tmpLenght = lenght(triangle[i].x,triangle[i].y,
                                  triangle[2].x,triangle[2].y);
        if (maxLenght < tmpLenght ) {
            maxLenght = tmpLenght;
            maxPoint[0] = i; maxPoint[1] = 2; // наибольшее между 3 и 1 либо 2
        }
    }
    int minPoint[2] = { 0 , 1};  //для построения третей точки нужно знать минимальные точки
    double minLenght = lenght(triangle[0].x,triangle[0].y,
                              triangle[1].x,triangle[1].y);
    for (int i = 0; i < 2; i++) {
        double tmpLenght = lenght(triangle[i].x,triangle[i].y,
                                  triangle[2].x,triangle[2].y);
        if (minLenght > tmpLenght ) {
            minLenght = tmpLenght;
            minPoint[0] = i; minPoint[1] = 2; // наибольшее между 3 и 1 либо 2
        }
    }
    int indexMinMax;//номер точки образующей и минимальную и максимальную стороны
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 2; j++) {
           if (minPoint[i] == maxPoint[j]) {
              indexMinMax = minPoint[i];
           }
        }
    }
    Image1->Canvas->Pen->Color = clGreen;
    ortTriangle[0] = triangle[maxPoint[0]]; // координаты прямоугольного треугольника
    ortTriangle[1] = triangle[maxPoint[1]]; // по наибольшей стороне исходного
    ortTriangle[2].x = triangle[indexMinMax].x;
    ortTriangle[2].y = triangle[indexMinMax].y + tan(getAlpha(triangle))*maxLenght;
    for (int i = 0; i < 3; i++) {
        cout << "Координаты вершины " << i+1 <<" Точки "<< endl;
        cout << ortTriangle[i].x <<" "<< ortTriangle[i].y << endl;
    }
    system("pause");
    return 0;
}
еще остается открытым вопрос по поводу трейтьей точки, так как угол находит не всегда верно по знаку я еще посижу подумаю, ловите пока это ,осмыслите там ,может с углом сами придумаете

Добавлено через 5 минут
хотя щас нашел еще 1 треугольник который не получится, тут весь косяк с 3 точкой )

Добавлено через 49 минут
боюсь я запутался задача оказалась мне не под силу )=
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru