19.07.2019, 04:04 [+3 UTC]
в нашей команде: 3 748 чел. | участники онлайн: 0 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.77 (31.05.2019)
JS-v.1.34 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
18.07.2019, 12:26

Последний вопрос:
19.07.2019, 02:41
Всего: 149939

Последний ответ:
18.07.2019, 12:04
Всего: 258705

Последняя рассылка:
17.07.2019, 22:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
18.12.2009, 06:22 »
Roma2010
Спасибо за помощь! Всё очень грамотно. [вопрос № 175359, ответ № 257842]
19.09.2011, 12:02 »
Юрий
Уже несколько лет получаю Вашу рассылку. Много раз Ваши советы приносили мне пользу. И хотя у меня давно не Siemens, а Samsung GT-S5233T, я и сейчас нажожу для себя много полезного. Спасибо.

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

solowey
Статус: Практикант
Рейтинг: 205
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 196
Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 141

Перейти к консультации №:
 

Консультация онлайн # 143353
Раздел: • С / С++
Автор вопроса: Смирнов Сергей Витальевич
Отправлена: 08.09.2008, 15:05
Поступило ответов: 1

И снова я рад приветствовать уважаемых экспертов!
Обращуюсь к вам за помощью в решении задачки на С++.NET:
Заданы координаты точек (xA,yA), (xB,yB) и (xC,yC) лежащих на трех разных окружностях (их коды - A,B и C) с центрами в начале координат. Вывести коды этих окружностей и их длины в порядке убывания.

Заранее огромное спасибо!!!

Последнее редактирование 09.09.2008, 07:19 [неизвестный]

Состояние: Консультация закрыта

Ответ # 228835 от Терсков Сергей

Здравствуйте, Смирнов Сергей Витальевич!
Все достаточно просто. Для начала вычисляем радиусы окружностей (r^2 = x^2 + y^2), и их длины (2*PI*r). Сортируем массив окружностей по убыванию и выводим на экран. Код примерно такой:

#include <math.h>
#include <algorithm>
#include <functional>
#include <vector>
#include <iostream>

using namespace std;

const double PI = 3.1415926535897932384626433832795;

struct circle {

	double radius;
	char code;

	circle()
		: radius(0.0)
		, code(' ') {
	}

	circle(double x, double y, char c) {

		radius = sqrt(x*x + y*y);
		code = c;
	}

	bool operator < (const circle& c) const {
		
		return radius < c.radius;
	}

	bool operator > (const circle& c) const {
		
		return !(*this < c);
	}

	double length() const {
		
		return radius * PI * 2;
	}
};

int main(int argc, char* argv[]) {

	vector<circle> v(3);

	v[0] = circle(5.6,   2.3,  'A');
	v[1] = circle(-10.1, 4.7,  'B');
	v[2] = circle(7.4,  -12.3, 'C');

	sort(v.begin(), v.end(), greater<circle>());

	for(vector<circle>::iterator iter = v.begin();
		iter != v.end();
		++iter)
		cout << "Circle: " << iter->code << ", length: " << iter->length() << endl;

  	return	0;
}


Консультировал: Терсков Сергей
Дата отправки: 09.09.2008, 09:42

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14481 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.77 от 31.05.2019
Версия JS: 1.34 | Версия CSS: 3.35