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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2013, 15:04   #1
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию классы объектов

На вход подается некоторое количество окружностей(координаты центра и радиус).Отсортировать и вывести их по возрастанию площадей.(на языке С++)

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

сделала,но выдает кучу ошибок...
Код:
#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<<")";
  }
};
class okr
{ public:
pset A;
void input()
{
	cout<<"введите центр окружности и радиус";
	A.input();
}
void output()
{
	cout<<"(";A.output();")";
}
float S()
{
	return PI*r*r;
}
};
void main()
{okr 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; 26.09.2013 в 19:56.
fkty вне форума Ответить с цитированием
Старый 26.09.2013, 20:27   #3
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Покажите какие ошибки выдаёт. Хотя бы первую часть, если их много.
8Observer8 вне форума Ответить с цитированием
Старый 26.09.2013, 20:34   #4
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

в этом коде выдает ошибки:Ошибка 1 error C2065: r: необъявленный идентификатор,
Ошибка 3 error C2228: выражение слева от ".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<<")";
  }
};
class okr
{ public:
pset A;
void input()
{
	cout<<"введите центр окружности и радиус";
	A.input();
}
void output()
{
	cout<<"(";A.output();")";
}
float S()
{
	return PI*r*r;
}
};
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 вне форума Ответить с цитированием
Старый 26.09.2013, 20:47   #5
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Мой Вам совет - не пишите никогда сразу много кода. Нужно так делать: написали чуть-чуть - проверили, дальше пишите.

Вот Ваш класс Окружность. Там действтельно необъявлен r:

Код:
class okr {
public:
    pset A;

    void input() {
        cout << "Enter a centre and a radius";
        A.input();
    }

    void output() {
        cout << "(";
        A.output();
        ")";
    }

    float S() {
        return PI * r*r;
    }
};

Последний раз редактировалось 8Observer8; 26.09.2013 в 20:50.
8Observer8 вне форума Ответить с цитированием
Старый 26.09.2013, 20:50   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Это по заданию требуется сделать 2 класса?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 26.09.2013, 20:52   #7
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

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

8Observer8,это понятно,что r нет там,но как его объявить,он же в классе
fkty вне форума Ответить с цитированием
Старый 26.09.2013, 21:09   #9
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

О требованиях подробнее напишите. Можно же и одним классом обойтись. Классом - Окружность.
8Observer8 вне форума Ответить с цитированием
Старый 26.09.2013, 21:12   #10
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

8Observer8,преподаватель дает пример похожей задачи и надо делать как в примере
fkty вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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