0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 27
1

Не могу правильно сделать конструктор и конструктор копирования и принадлежность точки с заданными координатами треугольнику

10.03.2013, 20:59. Показов 2501. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <math.h>
#include <algorithm>
using namespace std;
 
class ThreeAngle
{
public:
    ThreeAngle(float aa, float bb, float cc,); // конструктор
 ThreeAngle(const ThreeAngle & rhs); // конструктор копирования
    //Закрытые элементы данных:
  float a,b,c;
  //Открытые функции (методы):
public:
  //Фукции, обеспечивающие доступ к элементам данных:
  void Set_a(float aa) {a=aa;}
  void Set_b(float bb) {b=bb;}
  void Set_c(float cc) {c=cc;}
  float Get_a() {return a;}
  float Get_b() {return b;}
  float Get_c() {return c;}
  //Функции ввода-вывода:
  void input();
  void output();
  float L1 (void);
  float L2 (void);
  float L3 (void);
};
 
// Определение функций:
void ThreeAngle::input()
{
    cout << "Задайте a: " << endl;
    cin >> a;
    cout << "Задайте b " << endl;
    cin >> b;
    cout << "Задайте c: " << endl;
    cin >> c;
}
void ThreeAngle::output()
{
    cout << "Значение a: " <<a<<endl;
    cout << "Значение b: " <<b<<endl;
    cout << "Значение c: " <<c<<endl;
}
float ThreeAngle::L1 (void)
{
    float h = (a*b*(a+b+c))*(a+b-c);
    return (sqrt(h))/(a+b);
}
float ThreeAngle::L2 (void)
{
    float g = (a*c*(a+b+c))*(a+c-b);
    return (sqrt(g))/(a+c);
}
float ThreeAngle::L3 (void)
{
    float f = (b*c*(b+c+a))*(b+c-a);
    return (sqrt(f))/(b+c);
}
 
int main()
 
{
    if(SetConsoleCP(1251)==0)
    {
        cerr<<"Fialed to set codepage!"<<endl;
    }
    if(SetConsoleOutputCP(1251)==0)
    {
        cerr<<"Failed to set OUTPUT page!"<<endl;
    }
   int main();
    {
  double x1 = 0.1, y1 = 0.2, x2 = 0.3, y2 = 0.4;
  //cin >> x1 >> y2 >> x2 >> y2;
  cout << min({x1, y1, x2, y2}) + min({x1, x2, y1});
  return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2013, 20:59
Ответы с готовыми решениями:

Определить принадлежность точки с координатами (x, y) к треугольнику с заданными вершинами
Определить принадлежность точки с координатами (x,y) к треугольнику с заданными вершинами...

Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных...

Проверить принадлежность точки с заданными координатами (x0, y0) прямоугольнику, который задан координатами диагонали
Помогите решить задачу по VBA, пожалуйста!!!! Проверить принадлежность точки с заданными...

Принадлежность точки с заданными координатами
Здравствуйте. Так как просить готовый ответ не совсем честно, хотел спросить как вычисляют...

10
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
11.03.2013, 10:34 2
1. Не используйте тип float, если нет четкого понимания зачем он нужен. Лучше взять double.
2. Треугольник пишется как "triangle".
3. Закрытые элементы данных должны быть действительно закрытыми (private).
4. В конструкторе лишняя запятая в конце списка аргументов.
5. Конструктор может иметь например такой вид:
C++
1
Triangle(double a, double b, double c) : a(a), b(b), c(c) {}
6. Конструктор копирования в данном случае подойдет предложенный по умолчанию (т.е. ничего писать не надо вообще), т.к. будет произведено простое почленное копирование.
1
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 27
11.03.2013, 10:56  [ТС] 3
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <math.h>
#include <algorithm>
using namespace std;
 
class TriAngle
{
//Закрытые элементы данных:
  double a,b,c;
  //Открытые функции (методы):
public:
  TriAngle(double a, double b, double c) : a(a), b(b), c(c) {} // конструктор
//Фукции, обеспечивающие доступ к элементам данных:
  void Set_a(double aa) {a=aa;}
  void Set_b(double bb) {b=bb;}
  void Set_c(double cc) {c=cc;}
  double Get_a() {return a;}
  double Get_b() {return b;}
  double Get_c() {return c;}
  
  TriAngle(const TriAngle & rhs); // конструктор копирования
  //Функции ввода-вывода:
  void input();
  void output();
  double L1 (void);
  double L2 (void);
  double L3 (void);
};
 
// Определение функций:
void TriAngle::input()
{
    cout << "Задайте a: " << endl;
    cin >> a;
    cout << "Задайте b " << endl;
    cin >> b;
    cout << "Задайте c: " << endl;
    cin >> c;
}
void TriAngle::output()
{
    cout << "Значение a: " <<a<<endl;
    cout << "Значение b: " <<b<<endl;
    cout << "Значение c: " <<c<<endl;
}
double TriAngle::L1 (void)
{
    double h = (a*b*(a+b+c))*(a+b-c);
    return (sqrt(h))/(a+b);
}
double TriAngle::L2 (void)
{
    double g = (a*c*(a+b+c))*(a+c-b);
    return (sqrt(g))/(a+c);
}
double TriAngle::L3 (void)
{
    double f = (b*c*(b+c+a))*(b+c-a);
    return (sqrt(f))/(b+c);
}
 
int main()
 
{
    if(SetConsoleCP(1251)==0)
    {
        cerr<<"Fialed to set codepage!"<<endl;
    }
    if(SetConsoleOutputCP(1251)==0)
    {
        cerr<<"Failed to set OUTPUT page!"<<endl;
   }
    int main();
    {
  double x1 = 0.1, y1 = 0.2, x2 = 0.3, y2 = 0.4;
  //cin >> x1 >> y2 >> x2 >> y2;
  cout << min({x1, y1, x2, y2}) + min({x1, x2, y1});
  return 0;
}
ВОТ как написали исправил но все равно не работает
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
11.03.2013, 11:05 4
Цитата Сообщение от CruSanodeR Посмотреть сообщение
TriAngle(const TriAngle & rhs); // конструктор копирования
Это не нужно писать совсем. Уберите.
Цитата Сообщение от CruSanodeR Посмотреть сообщение
но все равно не работает
Что конкретно не работает? У Вас же даже объекты не создаются. В main() соответствующего кода нет.
0
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 27
11.03.2013, 11:09  [ТС] 5
а напишите если не трудно в main код или что надо исправить добавить
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
11.03.2013, 11:31 6
Цитата Сообщение от CruSanodeR Посмотреть сообщение
а напишите если не трудно в main код или что надо исправить добавить
C++
1
2
TriAngle tr(3,4,5);
// дальше что-нибудь делайте с объектом tr
p.s. вообще, не каждые три отрезка образуют треугольник.
0
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 27
11.03.2013, 11:41  [ТС] 7
ну пожалуйста напишите код я не знаю уже туда писать.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
11.03.2013, 11:49 8
Посмотрите например тут.
Внизу страницы ещё выводится список похожих тем.
0
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 27
11.03.2013, 12:26  [ТС] 9
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <math.h>
#include <algorithm>
using namespace std;
 
class TriAngle
{
//Закрытые элементы данных:
  double a,b,c;
  //Открытые функции (методы):
public:
  TriAngle(double a, double b, double c, double d) : a(a), b(b), c(c){} // конструктор
//Фукции, обеспечивающие доступ к элементам данных:
  void Set_a(double aa) {a=aa;}
  void Set_b(double bb) {b=bb;}
  void Set_c(double cc) {c=cc;}
  double Get_a() {return a;}
  double Get_b() {return b;}
  double Get_c() {return c;}
  
  //Функции ввода-вывода:
  void input();
  void output();
  double L1 (void);
  double L2 (void);
  double L3 (void);
};
 
// Определение функций:
void TriAngle::input()
{
    cout << "Задайте a: " << endl;
    cin >> a;
    cout << "Задайте b " << endl;
    cin >> b;
    cout << "Задайте c: " << endl;
    cin >> c;
}
void TriAngle::output()
{
    cout << "Значение a: " <<a<<endl;
    cout << "Значение b: " <<b<<endl;
    cout << "Значение c: " <<c<<endl;
}
double TriAngle::L1 (void)
{
    double h = (a*b*(a+b+c))*(a+b-c);
    return (sqrt(h))/(a+b);
}
double TriAngle::L2 (void)
{
    double g = (a*c*(a+b+c))*(a+c-b);
    return (sqrt(g))/(a+c);
}
double TriAngle::L3 (void)
{
    double f = (b*c*(b+c+a))*(b+c-a);
    return (sqrt(f))/(b+c);
}
 
int main()
 
{
    if(SetConsoleCP(1251)==0)
    {
        cerr<<"Fialed to set codepage!"<<endl;
    }
    if(SetConsoleOutputCP(1251)==0)
    {
        cerr<<"Failed to set OUTPUT page!"<<endl;
   }
}   
int main()
{   
 
    TriAngle t(double a, double b, double c); //Треугольник
    double p((2)(3)); //Точка
    t == p ? cout <<"Точка принадлежит треугольнику": cout <<"Точка не принадлежит треугольнику";
    return 0;
}
исправил но опять ошибки:c:\users\crusanoder\documents\visual studio 2012\projects\2~16\2~16\2~16.cpp(77): error C2084: функция "int main(void)" уже имеет текст реализации
1> c:\users\crusanoder\documents\visual studio 2012\projects\2~16\2~16\2~16.cpp(64): см. предыдущее определение "main"
1>c:\users\crusanoder\documents\visual studio 2012\projects\2~16\2~16\2~16.cpp(80): error C2064: результатом вычисления фрагмента не является функция, принимающая 1 аргументов
1>c:\users\crusanoder\documents\visual studio 2012\projects\2~16\2~16\2~16.cpp(80): fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
11.03.2013, 13:00 10
Дело хуже, чем я думал.
Функция main() - это основная точка входа в программу. С нее начинается выполнение. Она должна быть в единственном экземпляре.
Цитата Сообщение от CruSanodeR Посмотреть сообщение
TriAngle t(double a, double b, double c); //Треугольник
Это описание конструктора, а должно быть использование. Т.е. создание объекта.
C++
1
TriAngle t( значение_а, значение_б, значение_ц );
Цитата Сообщение от CruSanodeR Посмотреть сообщение
double p((2)(3)); //Точка
Что Вы хотели этим добиться?
P.S. Вам бы следовало прежде чем приступать к практике, хотя бы немного ознакомиться с теорией.
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
11.03.2013, 17:07 11
Цитата Сообщение от CruSanodeR Посмотреть сообщение
ThreeAngle(float aa, float bb, float cc,); // конструктор
а может и не стоило развивать темы, если уже происходит непонятно что, Вы пытаетесь создать объект треугольник зная всего 3 координаты? такого я еще не видел, разве это одномерное пространство, надо или испльзовать 6 координат, ну или на край создать структуру point, которая будет содержать две координаты точек и написать конструктор с параметрами принимающий таких 3 точки
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2013, 17:07
Помогаю со студенческими работами здесь

Конструктор класса, конструктор копирования запускается не тот который нужен
Есть такой конструктор: Neuron::Neuron(int iType_activation_funk) { this-&gt;iType_act =...

Принадлежность точки с заданными координатами (x, y) заштрихованной области
Добрый день, подскажите пожалуйста с решением задачи. Написать программу вычисления...

Принадлежность точки с заданными координатами заштрихованной области
Просьба,помощь ,пожалуйста.

Принадлежность точки с заданными координатами заштрихованной области
задание: Разработать программу на языке С++. Даны вещественные числа x и y. Определить,...

Определить принадлежность точки с заданными координатами кругу с радиусом R
1. Форматный вывод 2. Определить принадлежность точки с координатами (x,y) кругу с радиусом R и с...

Определить принадлежность точки с заданными координатами заданной области
Нужна помощь в решении задачи на координаты


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru