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

Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.93
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
08.01.2013, 18:01     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #1
Добрый вечер, помогите плиз с программой
Создать класс треугольник, члены класса - длины 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
#include<iostream>
using namespace std;
class treyg
{
private:
     int storona;
     int P;
     int S;
     int L;
 
public:
 void st_treyg()
  {
      cout<<"Введите сторону"<<endl;
      cin>>storona;
   }
 void ps_treyg(int Per, int Plosh, int dlinstor)
 {
    P = Per;
    S = Plosh;
    L = dlinstor;
 }
void getDate()
{
    P=storona*storona;
    S=storona+storona+storona;
    L=storona;
}
};
 
int main()
{
     int storona, P, S, L;
cout<<"Stor"<<storona<<endl;
treyg sfaftreyg;
sfaftreyg.st_treyg();
sfaftreyg.ps_treyg();
sfaftreyg.getDate();
system("pause");
treyg P, S, L;
L.st_treyg =st_treyg();
setlocale(LC_ALL,"Russian");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2013, 18:01     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника.
Посмотрите здесь:

Написать программу вычисления площади треугольника, если известно длины двух сторон и величина угла между ними. C++
класс «Строка» (данные-члены класса – строчка, функции-члены класса – операции) C++
написать программу, которая считывает длины сторон треугольника, проверяет возможность построения треугольника и находит все медианы этого треугольник C++
C++ создать класс треугольник, члены класса - длины 3-х сторон
Составьте программу для вычисления длин медиан треугольника, у которого длины сторон a, b, c C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Buildog
40 / 40 / 2
Регистрация: 29.04.2012
Сообщений: 185
08.01.2013, 18:10     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #2
Члены класса - длины трех сторон, а у тебя члена класса, это одна сторона, периметр, площадь и ещё что то L

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
class triangle
{
public:
triangle(); //Конструктор по умолчанию
~triangle(); //Деструктор
void Inform(); //Внутри него вызывай функции периметра и т.д. Т.к. у тебя в задании указано, что члены класса только 3 стороны
private:
int a, b, c; //Три стороны
int Perimetr();
int Area();
//...остальные методы
};
Так же методы лучше описывать не в объявлении класса. Описывать внутри рекомендуется, когда кода совсем немного, тогда функции получаются inline.
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
08.01.2013, 18:55  [ТС]     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #3
ММ...не понятно..
не совсем понял
St-Voland
171 / 79 / 3
Регистрация: 05.12.2012
Сообщений: 217
08.01.2013, 19:15     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #4
Цитата Сообщение от F@nt Посмотреть сообщение
не совсем понял
Что конкретно?)
Во-первых, у Вас должно участвовать 3 стороны( ведь треугольник задается 3мя сторонами, а у Вас прописан лишь один интовский параметр )
Во-вторых, Вам было предложено делать в обьявлении класса только обьявление функций. Реализацию следует проводить в реализации класса. В будущем, ваши классы будут состоять из 2х файлов: .h и .cpp, в ашнике будет обьявление класса, в срр - реализация.
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
08.01.2013, 19:21  [ТС]     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #5
робят вы меня загрузили, подвис на несколько минут, а можно какой нить пример похожий?))
Buildog
40 / 40 / 2
Регистрация: 29.04.2012
Сообщений: 185
08.01.2013, 21:42     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #6
Да пжлста.

Я делал класс по представлению кольцевого списка в виде массива. Вроде так задание звучало.

Class.h

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
ifndef _CLASS_H
#define _CLASS_H
 
class Circle
{
public:
    Circle(unsigned int size);
    ~Circle();
    void ShowCircle () const; // Отобразить массив
    void ClearCircle (); // Очистка массива
    int SizeCirle () const; // Размер массива
    void ShowThisElement () const; // Показать текущий элемент
    void NextElement (); // Перейти к следующему
    void NextNPosition (unsigned int n); // Перейти по кольцу на n элементов
    void SearchElement (int element) const; // Поиск элемента по значению
    void DeleteThis (); // Удалить текущий
    void AddElement (unsigned int AddedCount); //Добавить следом за текущим
 
private:
    unsigned int ArraySize;
    unsigned int RealSize;
    unsigned int CountIndex;
    unsigned int *pArr;
};
 
#endif _CLASS_H
Class.cpp

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
#include "Class.h"
#include <iostream>
#include <cstring>
 
using namespace std;
 
Circle::Circle(unsigned int size)
{
    ArraySize=RealSize=size;
    pArr = new unsigned int [ArraySize];
    for (unsigned int i=0; i<ArraySize; i++)
    {
        pArr[i]=i;
    }
    CountIndex=0;
}
 
Circle::~Circle()
{
    delete []pArr;
    pArr=0;
}
 
void Circle::ShowCircle () const
{
    for (unsigned int i=CountIndex; i<ArraySize; i++)
    {
        cout<<pArr[i]<<" ";
    }
    for (unsigned int i=0; i<CountIndex; i++)
    {
        cout<<pArr[i]<<" ";
    }
    cout<<endl;
}
 
void Circle::ClearCircle () 
{
    for (unsigned int i = 0; i<ArraySize; i++)
        pArr[i]=0;
}
 
int Circle::SizeCirle() const
{
    return ArraySize;
}
....
Вот тебе пример, не очень сложный
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
09.01.2013, 14:47  [ТС]     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #7
В общем попробывал, но у меня проблема с математической функцией <math> ошибка:Не удается открыть файл include: math: No such file or directory, в чем проблема может?
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
#include<iostream>
#include <cmath> 
#include <math>
using namespace std;
 
class Triangle
{
private:
    double s[3];
public:
    Triangle(double a, double b, double c)
    {
        s[0] = a;
        s[1] = b;
        s[2] = c;
    }
    
    double side(int i)
    {
        return s[i];
    }
    
    bool exists()
    {
        return (s[0] + s[1] <= s[2]) && (s[1] + s[2] <= s[0]) && (s[0] + s[2] <= s[1]);
    }
    
    double perimeter()
    {
        return s[0] + s[1] + s[2];
    }
 
double square()
{
 * *double p=0.5*(s[0]+s[1]+s[2]);
    return sqrt(p*(p-s[0])*(p-s[1])*(p-s[2]));
}
};
  
int main()
{
setlocale(LC_ALL,"Russian");
double a, b, c;
cout << "Введи стороны треугольника:";
cin >> a >> b >> c;
Triangle triangle1(a, b, c);
cout << "Периметр: " << triangle1.perimeter() << endl;
cout << "стороны треугольника: " << triangle1.side(0) << ", " << triangle1.side(1) << ", " << triangle1.side(2) << endl;
triangle1.exists();
triangle1.perimeter();
triangle1.square();
system("pause");
return 0;
}
Buildog
40 / 40 / 2
Регистрация: 29.04.2012
Сообщений: 185
09.01.2013, 15:13     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #8
Попробуй прописать <math.h>... Но вообще посмотри в корне программы, у меня Visual Studio 2011, там вот по такому адресу находится math.h и остальные заголовочные:

MS VS 2011\VS\crt\src
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
09.01.2013, 15:32  [ТС]     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #9
Если прописывать <math.h>, то все намного страшнее

Код
1.error C3872: 0xa0: этот символ невозможно использовать в идентификаторе
2. error C3872: 0xa0: этот символ невозможно использовать в идентификаторе
3. error C2065:  : необъявленный идентификатор
4. error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором " double"
5. error C2065:  double: необъявленный идентификатор
6. error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "p"
7. error C2065: p: необъявленный идентификатор
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
09.01.2013, 15:36     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #10
Цитата Сообщение от F@nt Посмотреть сообщение
C++
1
2
#include <cmath> 
#include <math>
Интересное решение =))) Особенно <math>
C++
1
2
3
double square()
{
 * *double p=0.5*(s[0]+s[1]+s[2]);
А это что?
zener
22 / 9 / 1
Регистрация: 16.10.2010
Сообщений: 115
09.01.2013, 15:43     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #11
Цитата Сообщение от Croessmah Посмотреть сообщение
А это что?
По всему видимо функция вычисления площади треугольника.. Только площадь треугольника равна половине основания, умноженной на высоту, либо S=корень(p*(p-s[0])*(p-s[1]*(p-s[2])),
где p - полупериметр,
s[i] - i-ая сторона
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
09.01.2013, 16:04  [ТС]     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #12
Croessmah,
C++
1
2
3
4
 
double square()
{
 * *double p=0.5*(s[0]+s[1]+s[2]);
косячок, исправлено.
но площадь по прежнему не считает
zener
22 / 9 / 1
Регистрация: 16.10.2010
Сообщений: 115
09.01.2013, 16:15     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #13
это не площадь, а полупериметр.. и убери звездочки перед double
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
09.01.2013, 16:28  [ТС]     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #14
zener, звездочки убрал,
это формула Герона, и не суть, не работает все равно)
zener
22 / 9 / 1
Регистрация: 16.10.2010
Сообщений: 115
09.01.2013, 16:33     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #15
а фигурную закрывающую скобочку поставил?)
ну и конечно же надо вернуть это p в некоторое определенное место) (то бишь написать еще return p)

Добавлено через 2 минуты
Цитата Сообщение от F@nt Посмотреть сообщение
zener, звездочки убрал,
это формула Герона, и не суть, не работает все равно)
и это ПОЛУПЕРИМЕТР!)) формулу Герона я написал, смотри выше)
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
09.01.2013, 16:50  [ТС]     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #16
Цитата Сообщение от zener Посмотреть сообщение
а фигурную закрывающую скобочку поставил?)
вроде стоит.
ну и конечно же надо вернуть это p в некоторое определенное место) (то бишь написать еще return p)
типа того?
C++
1
2
3
4
5
6
double square()
{
double p=0.5*(s[0]+s[1]+s[2]);
    return sqrt(p*(p-s[0])*(p-s[1])*(p-s[2]));
return p;
}
zener
22 / 9 / 1
Регистрация: 16.10.2010
Сообщений: 115
09.01.2013, 16:52     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #17
нет. возвращать значение можно только 1 раз, если у тебя нет условий.
потом, объяви переменную типа double и присвой ей это (sqrt(p*(p-s[0])*(p-s[1])*(p-s[2])) выражение. А уж потом возвращай эту переменную
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
09.01.2013, 16:53     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #18
C++
1
2
3
4
5
6
double square()
{
    double p=0.5*(s[0]+s[1]+s[2]);
    
    return sqrt(p*(p-s[0])*(p-s[1])*(p-s[2]));
}
zener
22 / 9 / 1
Регистрация: 16.10.2010
Сообщений: 115
09.01.2013, 17:09     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #19
Вот мне интересно, ты в сишке что-нибудь тыкаешь? или просто с бумажкой сидишь? посмотрел бы ошибки, которые валятся. По ним быстро все исправляется.
Псевдокод:
в хедере:
C++
1
2
3
4
5
6
7
8
9
10
11
class triangle
{
protected:
    int a,b,c;
public:
    triangle():a(0),b(0),c(0);
    ~triangle() {};
    double Perimetr();
    double Square();
    void Set(int _a,int _b, int _c);
};
в сpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
double triangle::Perimetr()
{
    double p=0;
    p=a+b+c;
    return p;
}
 
double triangle::Square()
{
    double s=0;
    double p=Perimetr();
    double pp=p/2; //Полупериметр
    s=sqrt(pp*(pp-a)*(pp-b)*(pp-c));
    return s;
}
 
void triangle::Set(int _a, int _b, int _c)
{
    a=_a;
    b=_b;
    c=_c;
}
В main:
C++
1
2
3
4
5
6
7
8
9
10
void main()
{
    triangle tr;
    tr.Set(4,5,6);
    int p=tr.Perimetr();
    cout<<"Perimetr="<<p<<endl;
    int s=tr.Square();
    cout<<"Square="<<s<<endl;
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2013, 17:12     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника.
Еще ссылки по теме:

C++ Создать класс Прямоугольник, члены класса – длины сторон a и b
C++ Проверить, можно ли построить треугольник из отрезков с длинами x, y, z. Предусмотреть проверку вводимых данных на отрицательность
Разработать методы вычисления длины отрезка по координатам вершин и периметра треугольника по длинам сторон C++

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

Или воспользуйтесь поиском по форуму:
F@nt
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 10
09.01.2013, 17:12  [ТС]     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. #20
Цитата Сообщение от zener Посмотреть сообщение
нет. возвращать значение можно только 1 раз, если у тебя нет условий.
потом, объяви переменную типа double и присвой ей это (sqrt(p*(p-s[0])*(p-s[1])*(p-s[2])) выражение. А уж потом возвращай эту переменную
C++
1
2
3
4
5
6
double square()
{
    double p=0.5*(s[0]+s[1]+s[2]);
    double q=sqrt(p*(p-s[0])*(p-s[1])*(p-s[2]));
    return p;
}
или что то не допонял
Yandex
Объявления
09.01.2013, 17:12     Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника.
Ответ Создать тему
Опции темы

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