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

Создайте стуктуру Point (точка) с вещественными полями x и y, которые задают координаты этой точки в двухмерном пространстве - C++

Восстановить пароль Регистрация
 
ega005
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 99
23.12.2012, 17:46     Создайте стуктуру Point (точка) с вещественными полями x и y, которые задают координаты этой точки в двухмерном пространстве #1
Создайте стуктуру Point (точка) с вещественными полями x и y, которые задают координаты этой точки в двухмерном пространстве.
Создайте стуктуру Triangle (Треугольник), состоящую из трех полей типа Point, задающих координаты вершин этого треугольника.
Создайте функцию , которая принимает аргумент типа Triangle и возвращает его площадь. Воспользуйтесь формулой герона.

Есть не исправная программа не могу понять что нужно исправить что бы работало нормально и выполнялось условие.

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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <windows.h>
#include <fstream>
using namespace std;
 
float sqr(float num){
    return num*num;
}
 
 
struct Point2D {float x; float y;};
 
 
 
 
struct Triangle{Point2D a; Point2D b; Point2D c;};
float getDistance (Point2D p1, Point2D q1){
     float distance = sqrt(sqr(p1.x-q1.x)+sqr(p1.y-q1.y));
     return distance;     
}     
 
float perim(Triangle t){
    return get
}
 
float ploch(Triangle t) {
 
    return sqrt(perim*(perim-getDistance (t.a,t.b))*(perim-second)*(perim-third));;
}
 
int main() {
Triangle triangle;    
triangle.a.x = 1;
triangle.a.y = 2;
triangle.b.x = 5;
triangle.b.y = 6;
triangle.c.x = 9;
triangle.c.y = 10;
 
 
float first = getDistance (triangle.a,triangle.b);
 
 
float second=getDistance (triangle.b,triangle.c);
 
 
float third = getDistance (triangle.c,triangle.a);
 
 
 
 
cout << s << endl;
system ("pause");
return 0 ;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2012, 17:46     Создайте стуктуру Point (точка) с вещественными полями x и y, которые задают координаты этой точки в двухмерном пространстве
Посмотрите здесь:

C++ Пользователь вводит координаты точки (x,y) определить входит ли данная точка в область или нет.
Ввести с клавиатуры координаты точки (x,y). Определить попала ли точка в заштрихованную область C++
C++ Описать тип TPoint — запись с полями вещественного типа X и Y (координаты точки на плоскости) — и функцию Leng(A, B)
C++ Класс POINT (ТОЧКА), который может вводить и выводить точки с заданными координатами
C++ Ввести координаты точки на плоскости, и определить, попала ли эта точка в заштрихованную область
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
23.12.2012, 18:08     Создайте стуктуру Point (точка) с вещественными полями x и y, которые задают координаты этой точки в двухмерном пространстве #2
пока что бросается в глаза так это 25 строка.
Полупериметр явно не так вычисляется
ega005
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 99
23.12.2012, 18:23  [ТС]     Создайте стуктуру Point (точка) с вещественными полями x и y, которые задают координаты этой точки в двухмерном пространстве #3
Эта программа не доделанная я не могу понять как ее доделать
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
23.12.2012, 18:30     Создайте стуктуру Point (точка) с вещественными полями x и y, которые задают координаты этой точки в двухмерном пространстве #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
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <math.h>
 
using namespace std;
 
float sqr(float num)
{
    return num*num;
} 
 
struct Point2D
{
    float x;
    float y;
}; 
 
struct Triangle
{
    Point2D a;
    Point2D b;
    Point2D c;
};
 
float getDistance (Point2D p1, Point2D q1)
{
     float distance = sqrt(sqr(p1.x-q1.x)+sqr(p1.y-q1.y));
     return distance;     
}     
 
float perim(Triangle t){
    return (getDistance (t.a, t.b) + getDistance (t.b, t.c) + getDistance (t.c, t.a))/2;
}
 
float ploch(Triangle t) 
{ 
    return 
        sqrt(perim(t)*(perim(t) - getDistance (t.a, t.b))*(perim(t) - getDistance (t.b, t.c))*(perim(t) - getDistance (t.c, t.a)));
}
 
int main() 
{
    Triangle triangle;  
 
    triangle.a.x = 1;
    triangle.a.y = 2;
 
    triangle.b.x = 5;
    triangle.b.y = 6;
 
    triangle.c.x = 9;
    triangle.c.y = 10;
 
    float S = ploch(triangle);
 
    cout << S << endl;
    system ("pause");
    return 0 ;
}
Добавлено через 1 минуту
само собой лучше координаты точек вводить с клавиатуры, но это уже сами

Добавлено через 2 минуты
P.S. вы нарочно задали координаты точек, которые лежат на одной линии?

У меня программа выводила 0. Я какое-то время думал, что дело в моём коде, а не в координатах.
Yandex
Объявления
23.12.2012, 18:30     Создайте стуктуру Point (точка) с вещественными полями x и y, которые задают координаты этой точки в двухмерном пространстве
Ответ Создать тему
Опции темы

Текущее время: 04:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru