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

Создать класс Triad (тройка чисел). Выдает ошибку - C++

Восстановить пароль Регистрация
 
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
18.04.2014, 17:59     Создать класс Triad (тройка чисел). Выдает ошибку #1
задание звучит так: создать класс Triad (тройка чисел); определить методы изменения полей и вычисления суммы чисел. Определить производный класс 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
58
// Triangle class.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "math.h"
#include <iostream>
using namespace std;
const double Pi = 3.14159;
class Triad
{
protected:
    double m_a;
    double m_b;
    double m_c;
public:
    Triad(double A, double B, double C)
    {
        m_a=A;
        m_b=B;
        m_c=C;
    }
};
 
class Triangle:public Triad
{
    double Alpha();
    double Beta();
    double Gamma();
    double Ploshad();
};
 
double Triangle::Alpha()
{
    return acos ((m_a*m_a-m_b*m_b-m_c*m_c)/(-2*m_b*m_c));
}
double Triangle::Ploshad()
{
    double p = (m_a+m_b+m_c)/2;
    return sqrt(p*(p-m_a)*(p-m_b)*(p-m_c));
}
double Triangle::Beta()
{
    return acos((m_c*m_c-m_a*m_a-m_b*m_b)/(-2*m_a*m_b));
}
 
double Triangle::Gamma()
{
    return acos((m_b*m_b-m_a*m_a-m_c*m_c)/(-2*m_a*m_c));
}
int _tmain(int argc, _TCHAR* argv[])
{
Triangle A(3.0),B(4.0),C(5.0);
cout<<Ploshad()<<endl;
cout<<Alpha()<<endl;
cout<<Beta()<<endl;
cout<<Gamma()<<endl;
return 0;
}
Выдает следущие ошибки:
C++
1
2
3
4
5
6
7
Ошибка  1   error C2664: Triangle::Triangle: невозможно преобразовать параметр 1 из 'double' в 'const Triangle &    52
Ошибка  2   error C2664: Triangle::Triangle: невозможно преобразовать параметр 1 из 'double' в 'const Triangle &'       52
Ошибка  3   error C2664: Triangle::Triangle: невозможно преобразовать параметр 1 из 'double' в 'const Triangle &'               52
Ошибка  4   error C3861: Ploshad: идентификатор не найден   c:\users\днс\documents\visual studio 2008\projects\triangle class\triangle class\triangle class.cpp 53
Ошибка  5   error C3861: Alpha: идентификатор не найден c:\users\днс\documents\visual studio 2008\projects\triangle class\triangle class\triangle class.cpp 54
Ошибка  6   error C3861: Beta: идентификатор не найден  c:\users\днс\documents\visual studio 2008\projects\triangle class\triangle class\triangle class.cpp 55
Ошибка  7   error C3861: Gamma: идентификатор не найден c:\users\днс\documents\visual studio 2008\projects\triangle class\triangle class\triangle class.cpp 56
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2014, 17:59     Создать класс Triad (тройка чисел). Выдает ошибку
Посмотрите здесь:

Класс - выдает ошибку C++
Создать класс Triad (тройка чисел); определить методы изменения полей и вычисления суммы чисел. C++
C++ Элементарный класс для работы с файлами, компилятор выдает ошибку, что не так с private
Создать класс Triad C++
C++ Создать класс Triad (тройка чисел) - определить методы; определить производный класс Date - переопределить методы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
18.04.2014, 18:05     Создать класс Triad (тройка чисел). Выдает ошибку #2
У Triangle все функции закрыты (в классах по умолчанию private). Также у него нету конструктора с одним параметром вообще.
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
18.04.2014, 18:08  [ТС]     Создать класс Triad (тройка чисел). Выдает ошибку #3
там public и protected.... private по умолчанию, хм.. если не сложно подскажите)
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
18.04.2014, 18:17     Создать класс Triad (тройка чисел). Выдает ошибку #4
public и protected есть у класса Triad, но в классе Triangle их нет. Поставьте public перед функциями, и напишите конструктор.
nmcf
4257 / 3688 / 1243
Регистрация: 14.04.2014
Сообщений: 14,440
18.04.2014, 18:21     Создать класс Triad (тройка чисел). Выдает ошибку #5
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
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
class Triad
{
protected:
    double m_a;
    double m_b;
    double m_c;
public:
    Triad(double A, double B, double C)
    {
        m_a=A;
        m_b=B;
        m_c=C;
    }
};
 
class Triangle:public Triad
{
public:
    double Alpha();
    double Beta();
    double Gamma();
    double Ploshad();
    Triangle(double A, double B, double C) : Triad(A, B, C) {}
};
 
double Triangle::Alpha()
{
    return acos ((m_a*m_a-m_b*m_b-m_c*m_c)/(-2*m_b*m_c));
}
double Triangle::Ploshad()
{
    double p = (m_a+m_b+m_c)/2;
    return sqrt(p*(p-m_a)*(p-m_b)*(p-m_c));
}
double Triangle::Beta()
{
    return acos((m_c*m_c-m_a*m_a-m_b*m_b)/(-2*m_a*m_b));
}
 
double Triangle::Gamma()
{
    return acos((m_b*m_b-m_a*m_a-m_c*m_c)/(-2*m_a*m_c));
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
const double Pi = 3.14159;
Triangle A(3.0, 4.0, 5.0);
cout<<A.Ploshad()<<endl;
cout<<A.Alpha()<<endl;
cout<<A.Beta()<<endl;
cout<<A.Gamma()<<endl;
return 0;
Добавлено через 46 секунд
Конструктора не было, public не указан и инициализация A тоже не верная.
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
18.04.2014, 18:24  [ТС]     Создать класс Triad (тройка чисел). Выдает ошибку #6
C++
1
2
3
4
5
6
7
8
9
class Triangle:public Triad
    public:
    Triangle(double Alpha, double Ploshad, double Gamma, double Beta)
{
    double Alpha();
    double Beta();
    double Gamma();
    double Ploshad();
};
оно?
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
18.04.2014, 18:30     Создать класс Triad (тройка чисел). Выдает ошибку #7
Ms Proger, нет, конструктор задает значения элементов. То есть конструктор Triangle должен задавать значения для трех сторон. Лучше почитайте теорию, в книжках/статьях лучше объясняется.
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
18.04.2014, 18:50  [ТС]     Создать класс Triad (тройка чисел). Выдает ошибку #8
Керра, скажите, вот в этой строчке
C++
1
cout<<A.Ploshad()<<endl;
точка после "А" зачем?(непонятно)

Добавлено через 10 минут
Цитата Сообщение от nmcf Посмотреть сообщение
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
using namespace std;
class Triad
{
protected:
* * double m_a;
* * double m_b;
* * double m_c;
public:
* * Triad(double A, double B, double C)
* * {
* * * * m_a=A;
* * * * m_b=B;
* * * * m_c=C;
* * }
};
class Triangleublic Triad
{
public:
* * double Alpha();
* * double Beta();
* * double Gamma();
* * double Ploshad();
* * Triangle(double A, double B, double C) : Triad(A, B, C) {}
};
double Triangle::Alpha()
{
* * return acos ((m_a*m_a-m_b*m_b-m_c*m_c)/(-2*m_b*m_c));
}
double Triangle::Ploshad()
{
* * double p = (m_a+m_b+m_c)/2;
* * return sqrt(p*(p-m_a)*(p-m_b)*(p-m_c));
}
double Triangle::Beta()
{
* * return acos((m_c*m_c-m_a*m_a-m_b*m_b)/(-2*m_a*m_b));
}
double Triangle::Gamma()
{
* * return acos((m_b*m_b-m_a*m_a-m_c*m_c)/(-2*m_a*m_c));
}
int _tmain(int argc, _TCHAR* argv[])
{
const double Pi = 3.14159;
Triangle A(3.0, 4.0, 5.0);
cout<<A.Ploshad()<<endl;
cout<<A.Alpha()<<endl;
cout<<A.Beta()<<endl;
cout<<A.Gamma()<<endl;
return 0;
вот эта программа выводит на консоль 4 значения.
площадь
и значения 3х углов...
это числа, но не в градусах, и похоже не в радианах. как быть подскажите пожалуйста

Добавлено через 32 секунды
звёздочки - это глюки копирования
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
18.04.2014, 19:17     Создать класс Triad (тройка чисел). Выдает ошибку #9
Создаем-то объект. И площадь именно этого объекта. Точка - это обращение к полю объекта. Почитайте все-таки основы классов в С++. Я бы объяснила, но это долго и нудно.

Добавлено через 4 минуты
Да и градусы в радианах. У вас там треугольник со сторонами 3 4 5 - это египетский (прямоугольный треугольник). То есть один угол у него равен пи/2 радиан = 1.57...
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
18.04.2014, 20:07  [ТС]     Создать класс Triad (тройка чисел). Выдает ошибку #10
а еще такой маленький момент: чтобы ответ показывался в градусах, выражение (180/пи) куда надо влепить?

Добавлено через 14 минут
Всё.разобрался
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
18.04.2014, 20:13     Создать класс Triad (тройка чисел). Выдает ошибку #11
В возвращаемые значения функций, которые вычисляют углы.
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
20.04.2014, 18:23  [ТС]     Создать класс Triad (тройка чисел). Выдает ошибку #12
Цитата Сообщение от nmcf Посмотреть сообщение
Triangle(double A, double B, double C) : Triad(A, B, C) {}
Здравствуйте. еще вопрос возник: можете прокомментировать пожалуйста вот эту строчку....непонимаю единственного...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2014, 12:21     Создать класс Triad (тройка чисел). Выдает ошибку
Еще ссылки по теме:

C++ Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями
Создать класс Triad (тройка чисел) C++
Выдает ошибку,тут что не так? Простейший класс C++

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

Или воспользуйтесь поиском по форуму:
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
21.04.2014, 12:21     Создать класс Triad (тройка чисел). Выдает ошибку #13
Класс Triangle состоит из класса Triad + дополнение к нему. Поэтому эта часть Triad создается с помощью конструктора Triad, которому передаются значения A, B, C.
Yandex
Объявления
21.04.2014, 12:21     Создать класс Triad (тройка чисел). Выдает ошибку
Ответ Создать тему
Опции темы

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