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

В пятиугольнике, заданном координатами своих вершин, подсчитать количество прямых углов (если они есть). - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чередование гласных в корнях лаг/лож и раст/ращ/рос + искл http://www.cyberforum.ru/cpp-beginners/thread811154.html
Здравствуйте, у меня проблема с написанием программы на C++, которая 1) просит ввести несколько слов с неправильно написанными слова с чередованиями лаг/лож и раст/ращ/рос 2) выводит эти слова в файл и считывает их оттуда 3) дальше исправляет ошибки в корнях в соответствии с правилами 4) форматирует эти слова по принципу есть ли в начале слова приставка или нет, и тоже это выводит в файл....
C++ Целые типы данных Всем привет! Знаю что сейчас засмеют, но всё же. Вопрос: Если k является переменной типа int, то чему будет равна k после выполнения выражения k = 1000 * 2000? А если k объявить как переменную типа long, то чему будет равно значение переменной в этом случае? Делаю так: #include "stdafx.h" #include <stdio.h> int _tmain(int argc, _TCHAR* argv) http://www.cyberforum.ru/cpp-beginners/thread811153.html
C++ Как создать элемент вектора пользовательского типа(класса)?
Делаю змейку в консоли, а по сути тренируюсь с классами и векторами. Есть класс с конструктором который создает кусок змейки в конкретном направлении от координат головы змеи class SnakePart { private: short xClass; short yClass; public:
Комментировать! C++
Ребят помогите пожалуйста закомментировать! #include <iostream> #include <algorithm> #include <cmath> #include <locale.h> int main() { int a = {5, -34, 6, 1, -4}; int i = 0;
C++ ошибка Heap corruption detected http://www.cyberforum.ru/cpp-beginners/thread811124.html
Доброго времени суток! подскажите пожалуйста что я не так сделал. При запуске программы вылетает ошибка в строке 34 // d.cpp: главный файл проекта. #include <stdafx.h> #include <fstream> #include <iostream> void construction_pyramid(int *a,int *l,int *r); void sort(int *a,int n);
C++ Алгоритм Шелла Приветствую, CyberForum. Пересмотрел много видео про Алгоритм Шелла, где плясали и роботы показывали наглядно как всё это делается, но в итоге до моего тугово мозго это не дошло, можете наглядно показать, как будет работать метод Шелла, для вот такого массива 10 9 8 7 6 5 4 3 2 1 подробнее

Показать сообщение отдельно
IrineK
Заблокирован
20.03.2013, 23:40     В пятиугольнике, заданном координатами своих вершин, подсчитать количество прямых углов (если они есть).
Решение для 3D.
Правда, не проверяется: комланарность, существование, выпуклость - это на совести вводящего данные )

Если с классами будет непонятно (судя по условию, циклы - это уже серьезно) - тогда рассматривайте main как псевдокод и постройте свое решение по аналогии.



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
//В пятиугольнике, заданном координатами своих вершин, подсчитать количество прямых углов (если они есть)
 
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
 
class Point
{   
public:
    Point() : x(0.),y(0.),z(0.) {}
    Point(const double &x, const double &y,const double &z):x(x),y(y),z(z)  {}
 
    const double X() const { return x; }
    const double Y() const { return y; }
    const double Z() const { return z; }
 
    friend const istream& operator>>(istream& stream, Point& p)
    {   cout<<"X, Y, Z:\t";
        stream>>p.x>>p.y>>p.z;
        stream.sync();
        return stream;
    }
    
    friend const ostream& operator<<(ostream& stream,const Point& p)
    {   stream  <<setprecision(6)<<setw(15)<<p.x
                <<setprecision(6)<<setw(15)<<p.y
                <<setprecision(6)<<setw(15)<<p.z<<"\n";
        return stream;
    }
 
private:
    double x,y,z;
};
 
class Vector
{
public:
    Vector(): x(0.),y(0.),z(0.) {}
        
    Vector(const double a, const double b,const double c)
    {   x = a; y = b; z = c;
    }
    
    void SetVector(const double a, const double b,const double c)
    {   x = a; y = b; z = c;
    }
 
    double* GetArray()
    {   double *A = new double[3];
        A[0] = x;
        A[1] = y;
        A[2] = z;
        return A;
    }
 
    const double X() const { return x; }
    const double Y() const { return y; }
    const double Z() const { return z; }
    
private:
    double x,y,z;
};
 
double VectorProduct(Vector P, Vector V)
{   double *PA = P.GetArray();
    double *VA = V.GetArray();
    double R = 0.;
 
    for(int i=0; i<3;i++)
        R += PA[i]*VA[i];
    return R;
}
 
 
int main()
{   const int N = 5;
    Point P[N];         //массив точек
    Vector V[N];        //массив векторов
    int i, found = 0, whereFound[5] = {0};  //found - счетчик найденных углов
                                //whereFound - массив из 0, если в какой-то вершине
                                //окажется прямой угол - тогда соответствующему элементу
                                //whereFound присвоим 1
    //вводим координаты вершин
    for(i=0;i<N;i++)
    {   cout<<"Coordinates of P["<<i<<"]\n";
        cin>>P[i];
    }
    
    //строим вектора 
    V[0].SetVector(P[0].X()-P[4].X(),P[0].Y()-P[4].Y(),P[0].Z()-P[4].Z());
    for(i=0;i<N-1;i++)
        V[i+1].SetVector(P[i+1].X()-P[i].X(),P[i+1].Y()-P[i].Y(),P[i+1].Z()-P[i].Z());
    
    //считаем скалярные произведения в каждой вершине
    for(i=0;i<N-1;i++)
        if (! VectorProduct(V[i],V[i+1]))
        {   found ++;               //найден прямой угол
            whereFound[i] = 1;      //угол найден для вершины i
        }
 
    if (! VectorProduct(V[4],V[0]))
        {   found ++;
            whereFound[4] = 1;
        }
 
    //выводим результат
    if(found)
    {   cout<<"\n\n"<<found<<" right angles found:\n";
        for(i=0;i<N;i++)
            if(whereFound[i])
                cout<<"    - at point "<<i<<"\n";
    }
    else
        cout<<"No right angles found";
 
    cin.sync();cin.get();
    return 0;
}
Изображения
 
 
Текущее время: 11:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru