Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
CruSanodeR
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 27
#1

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

10.03.2013, 20:59. Просмотров 1138. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2013, 20:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу правильно сделать конструктор и конструктор копирования и принадлежность точки с заданными координатами треугольнику (C++):

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

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

Проверить принадлежность точки с заданными координатами заданному сегменту окружности - C++
Окружность на плоскости задана тремя лежащими на ней точками A, B, C. Фигура S представляет собой сегмент, ограниченный этой окружностью и...

Конструктор инициализации, конструктор копирования, деструктор - C++
Я сделал почти задание по перегрузке операторов. Осталось одно, тоесть три: конструктор инициализации, конструктор копирования, деструктор....

Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор - C++
Всем доброго времени суток! нужна ваша помощь! нужно создать класс вектор и реализовать конструктор по умолчанию, копирования и...

Как сделать конструктор копирования, и реализовать set и get? - C++
написал код но не совсем так как нужно по условию по условию нужно: В классе должны быть наборы конструкторов (в том числе по умолчанию...

10
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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
CruSanodeR
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
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
11.03.2013, 11:05 #4
Цитата Сообщение от CruSanodeR Посмотреть сообщение
TriAngle(const TriAngle & rhs); // конструктор копирования
Это не нужно писать совсем. Уберите.
Цитата Сообщение от CruSanodeR Посмотреть сообщение
но все равно не работает
Что конкретно не работает? У Вас же даже объекты не создаются. В main() соответствующего кода нет.
0
CruSanodeR
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 27
11.03.2013, 11:09  [ТС] #5
а напишите если не трудно в main код или что надо исправить добавить
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
11.03.2013, 11:31 #6
Цитата Сообщение от CruSanodeR Посмотреть сообщение
а напишите если не трудно в main код или что надо исправить добавить
C++
1
2
TriAngle tr(3,4,5);
// дальше что-нибудь делайте с объектом tr
p.s. вообще, не каждые три отрезка образуют треугольник.
0
CruSanodeR
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 27
11.03.2013, 11:41  [ТС] #7
ну пожалуйста напишите код я не знаю уже туда писать.
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
11.03.2013, 11:49 #8
Посмотрите например тут.
Внизу страницы ещё выводится список похожих тем.
0
CruSanodeR
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
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
Завершенные тесты: 1
11.03.2013, 17:07 #11
Цитата Сообщение от CruSanodeR Посмотреть сообщение
ThreeAngle(float aa, float bb, float cc,); // конструктор
а может и не стоило развивать темы, если уже происходит непонятно что, Вы пытаетесь создать объект треугольник зная всего 3 координаты? такого я еще не видел, разве это одномерное пространство, надо или испльзовать 6 координат, ну или на край создать структуру point, которая будет содержать две координаты точек и написать конструктор с параметрами принимающий таких 3 точки
1
11.03.2013, 17:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2013, 17:07
Привет! Вот еще темы с ответами:

ООП пример как сделать конструктор копирования на С++ - C++
Покажите пожалуйста пример конструктора копирования на С++

Определить принадлежность точки треугольнику - C++
В декартовой системе координат на плоскости заданы координаты вершин треугольника и ещё одной точки. Определить, принадлежит ли эта точка...

Определить принадлежность точки треугольнику - C++
begin writeln ('Введіть x1,y1,x2,y2,x3,y3'); readln (x1,y1,x2,y2,x3,y3); a:=sqrt(sqr(x2-x1)+sqr(y1-y2)); ...

определить принадлежность точки треугольнику - C++
определить принадлежит ли точка, заданная координатам, треугольнику, который задан координатами вершин. КАК задать треугольник? и как потом...


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

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

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