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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2014, 17:26   #1
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию Найти площадь С++

Здравствуйте. Подскажите пожалуйста, как исходя из данного задания найти площать и значение координаты y на эллипсе для заданного x?
Создать класс ПАРА ЧИСЕЛ. Определить конструкторы, деструктор, функции доступа к полям, ввода-вывода. Создать производный класс ЭЛЛИПС с полями-радиусами. Определить конструкторы по умолчанию и с разным числом параметров, деструктор, функции доступа к полям, ввода-вывода, вычисления площади и значение координаты y на эллипсе для заданного x (считать, что центр эллипса совпадает с началом координат).

Код:
#include "stdafx.h"
#include <iostream>
#define PI 3,1415
using namespace std;

class para_chysel
{
private:
	int x;
	int y;
public:
	void show();
	para_chysel():x(0),y(0){}
	para_chysel(int a,int b):x(a),y(b){}
	~para_chysel();
};

para_chysel::~para_chysel()
{}
void para_chysel::show()
{
	cout<<"x= "<<x<<"\ny= "<<y<<endl;;
}


class elips: public para_chysel
{
private:
	int r;
public:
	elips() : para_chysel() //конструктор без параметрів
	{}
	elips(int a, int b, int m):para_chysel(a,b),r(m){}
	~elips();
	void print();
};

void elips::print()
{
	cout<<"Radius = "<<r<<endl;
}

elips::~elips()
{}

int main()
{
	int a,b;
	cout<<"Enter x\n";
	cin>>a;
	cout<<"Enter y\n";
	cin>>b;
	para_chysel A(a,b);
	A.show();

	int n;
	cout<<"Enter radius\n";
	cin>>n;
	elips B(a,b,n);
	B.print();

}
Вероника99 вне форума Ответить с цитированием
Старый 17.03.2014, 05:32   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,603
По умолчанию

Находится прямой подстановкой в функцию (т.е в уравнение эллипса) значение y по x. x^2 / a ^2 + y^2 / b^2 = 1
Площадь находится численным интегрированием (метод прямоугольников, метод трапеций, метод Симпсона.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 17.03.2014, 06:55   #3
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,326
По умолчанию

У вас крайне небрежно оформлен код. Читать противно

- настройте свою среду, чтобы вместо TAB'ов печаталось четыре пробела.
- НИКОГДА не называйте переменные русскими словами. Алгоритм такой: заходим сюда: translate.google.com и печатаем: пара чисел. Получаем: pair of numbers. Так и записываем имя класса: PairOfNumbers
- "elips" - пишется с двумя буквами 'l'
- остальное читать не стал, потому что противно
8Observer8 вне форума Ответить с цитированием
Старый 17.03.2014, 12:40   #4
test__
Пользователь
 
Регистрация: 13.03.2014
Сообщений: 19
По умолчанию

Цитата:
- настройте свою среду, чтобы вместо TAB'ов печаталось четыре пробела.
почему 4? - я сначала перешел на 2, а теперь, на 1 пробел. Оно удобней и пробел ближе чем tab . Опять же попал случайно вместо tab по пробелу - ничего страшного, все работает .

Цитата:
Создать производный класс ЭЛЛИПС с полями-радиусами.
мне кажется, вы что-то делаете не так. В этом случае, наверное, не правильно наследовать. Тема тыщу раз поднималась.
Если вы наследуете эллипс от пары - то утверждаете, что эллипс - это пара. А эллипс - это:
-геометрическая фигура
-множество точек, удовлетворяющих ...
- но ни разу не пара.

Эллипс может быть описан (включать в себя):
- координаты центра (ПАРА чисел)
- два радиуса (ПАРА чисел).

Если он включает в себя пару - значит зависит от нее, значит производный. Условию задачи это соответствует и здравому смыслу тоже
test__ вне форума Ответить с цитированием
Старый 17.03.2014, 12:43   #5
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,326
По умолчанию

Потому что в Qt в исходниках 4 пробела (и среда так настроена изначально) и в NetBeans поумолчанию тоже
8Observer8 вне форума Ответить с цитированием
Старый 17.03.2014, 18:14   #6
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

Цитата:
Сообщение от 8Observer8 Посмотреть сообщение
Потому что в Qt в исходниках 4 пробела (и среда так настроена изначально) и в NetBeans поумолчанию тоже
Пф! Смешной аргумент. Так обычно верующие аргументируют: "Это истинно, потому что сказано в Писании".

VS, напротив, расставляет табы. И это - логично. Потому что тут Таб - это четкий указатель на количество уровней вложенности. А пробелы несут свою, отдельную функцию форматирования кода.
Например, чтобы вернутся на три уровня выше по вложенности надо нажать ровно три раза кнопку влево, а не отсчитывать аж 12 (sic!) пробелов.
Smogg вне форума Ответить с цитированием
Старый 17.03.2014, 18:22   #7
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,326
По умолчанию

Я никогда не делаю форматирование вручную. Достаточно в Qt нажать Ctrl+I, а в NetBeans Alt+Shift+F и весь код форматируется автоматически. Можно настроить на свой вкус, но я оставляю всегда по умолчанию.

На этом форуме проблема с TAB'ами. Они криво тут отображаются.
8Observer8 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти площадь параллелограмма KIRILOW Помощь студентам 0 06.11.2012 16:35
Найти площадь ProMo21 Паскаль, Turbo Pascal, PascalABC.NET 0 04.05.2012 18:47
ООП (паскаль) - дан ромб. найти площадь. построить пирамиду, найти её площадь Rfn.if Помощь студентам 0 27.04.2011 16:10
Найти площадь фигуры samouelson Помощь студентам 2 17.12.2010 20:22