Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2013, 21:18   #11
8Observer8
Старожил
 
Регистрация: 02.01.2011
Сообщений: 3,328
По умолчанию

Цитата:
Сообщение от fkty Посмотреть сообщение
8Observer8,преподаватель дает пример похожей задачи и надо делать как в примере
Вы можете этот пример показать и формулировку той задачи? Может она не похожа совсем.

Последний раз редактировалось 8Observer8; 26.09.2013 в 21:20.
8Observer8 вне форума Ответить с цитированием
Старый 26.09.2013, 21:23   #12
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

8Observer8,пример не в электронном виде,а сама задача была:дан массив из 10 треугольников.Найти и вывести треугольник с наиб. площадью. и была показана пузырьковая сортировка
fkty вне форума Ответить с цитированием
Старый 26.09.2013, 21:57   #13
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

а как тогда можно это сделать одним классом?
fkty вне форума Ответить с цитированием
Старый 26.09.2013, 22:49   #14
8Observer8
Старожил
 
Регистрация: 02.01.2011
Сообщений: 3,328
По умолчанию

Запустите эту программку. Так она работает, как нужно? Может я задание неправильно понял...

Код:
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
using namespace std;

class Circle {
public:

    Circle(int r = 0) : radius(r) {
        area = calcArea();
    }

    void setRadius(double radius) {
        this->radius = radius;
        area = calcArea();
    }

    double getArea() const {
        return area;
    };
    
    bool operator<(const Circle &rhs) const { return this->area < rhs.getArea(); }

private:
    double radius;
    double area;

    double calcArea() {
        return M_PI * radius * radius;
    }
};

int main(int argc, char** argv) {
    Circle c;
    vector<Circle> array;
    
    // Amount of the Circle
    cout << "Enter an amount of the Circles: ";
    int n;
    cin >> n;
    cout << endl;

    // Input
    for (int i = 0, r; i < n; i++) {
        cout << "Enter a radius for the Circle " << i << ": ";
        cin >> r;
        c.setRadius(r);
        array.push_back(c);
    }
    
    // Sort
    sort(array.begin(), array.end());

    // Output
    cout << endl;
    cout << "Areas:" << endl;
    for (int i = 0; i < n; i++) {
        cout << array[i].getArea() << endl;
    }
    
    return 0;
}

Последний раз редактировалось 8Observer8; 27.09.2013 в 11:03.
8Observer8 вне форума Ответить с цитированием
Старый 27.09.2013, 10:45   #15
8Observer8
Старожил
 
Регистрация: 02.01.2011
Сообщений: 3,328
По умолчанию

Где Вы? Я Вас напугал своим кодом? Ваш код ещё более непонятный, чем мой

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

Последний раз редактировалось 8Observer8; 27.09.2013 в 10:50.
8Observer8 вне форума Ответить с цитированием
Старый 27.09.2013, 10:58   #16
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Правильно 8Observer8 , мы волнуемся.... А вопросы, сейчас подумаю....
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 28.09.2013, 18:25   #17
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

8Observer8,спрашивала про эти указатели this,сказали что их не надо использовать,нужно так,как в моем примере
fkty вне форума Ответить с цитированием
Старый 28.09.2013, 18:26   #18
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

а можно ли как то функцию мою S написать в классе pset?
fkty вне форума Ответить с цитированием
Старый 28.09.2013, 18:40   #19
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

сделала так,теперь осталась одна ошибка:Ошибка 2 error C2228: выражение слева от ".S" должно представлять класс, структуру или объединение(это в этой строчке if(A[i].S()>A[i+1].S()) )
Код:
#include <iostream>
#include <stdio.h>
#define PI 3.1415926

using namespace std;

class pset
{ public:
  float x,y,r;
  void input()
  {
	  cout <<"x=";
	  cin>>x;
	  cout<<"y=";
	  cin>>y;
	  cout<<"r=";
	  cin>>r;
  }
  void output()
  {
	  cout<<"("<<x<<","<<y<<","<<r<<")";
  }
  float S()
{
	return PI*r*r;
}
};
class okr
{ public:
pset A;
void input()
{
	cout<<"введите центр окружности и радиус";
	A.input();
}
void output()
{
	cout<<"(";A.output();")";
}

};
void main()
{int N;
	okr **A;
	cout<<"введите количество окружностей";
	cin>>N;
	A=new okr *[N];
	for(int i=0;i<N;i++)
	{
		A[i]=new okr;
	A[i]->input();
	}
int flag=1; okr *B;
while(flag)
{
	flag=0;
	for(int i=0;i<N-1; i++)
	{
		if(A[i].S()>A[i+1].S())
		{
			B=A[i];
			A[i]=A[i+1];
			A[i+1]=B;
			flag=1;
		}
	}
}
	for(int i=0;i<N;i++)
	{
		A[i]->output();
		cout<<"\n";
	}
}
fkty вне форума Ответить с цитированием
Старый 28.09.2013, 18:40   #20
8Observer8
Старожил
 
Регистрация: 02.01.2011
Сообщений: 3,328
По умолчанию

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

Сделайте так как Вам хочется и покажите свой код. Я, если честно, не понимаю, что Вы хотите...
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание и уничтожение объектов. Время жизни объектов C++/C# Anett// Помощь студентам 0 24.10.2011 23:26
Движение объектов используя классы ryashya Паскаль, Turbo Pascal, PascalABC.NET 0 29.09.2011 00:07
Классы, объекты,поля объектов Mr_skiner Общие вопросы Delphi 9 10.03.2011 23:07
Чем отличаются классы от объектов в Delphi? JY_ Помощь студентам 1 25.01.2009 18:57