4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
|
1 | |
Класс комплексных чисел14.10.2012, 17:08. Показов 5792. Ответов 25
Метки нет (Все метки)
Сейчас начал изучение классов. Придумал себе задачку: написать класс комплексных чисел. Пока планирую так:
PRIVATE: - переменные: double Real, Imaginary, Radius, Argument; - функции: тригонометрия, возведение в степень и т.п. PUBLIC: - функции: ввод, вывод; сумма, разность, умножение; возведение в степень; (пока, думаю, достаточно) Помогите, пожалуйста, с написанием прототипа класса и дайте советов по улучшению? Спасибо!
0
|
14.10.2012, 17:08 | |
Ответы с готовыми решениями:
25
Класс комплексных чисел Класс Комплексных Чисел Класс комплексных чисел Класс комплексных чисел |
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
14.10.2012, 17:17 | 2 |
Лучше храните внутри числа в каком-то одном формате. Или как действительную и мнимую части, или в экспоненциальной форме (радиус-угол). Можно извращаться с автоматическим переводом туда-сюда, но что так, что иначе — всё равно будут потери точности.
Конструкторы копирования, создание комплексного по одному/паре действительных и т. п. тоже не забудьте. И константу i. И операторы присваивания всего, что можете выдумать. Арифметику как операторы внутри класса. Возведение в степень, тригонометрия, модуль, логарифмы и вся другая лабуда, что есть в стандартной математической библиотеке — точно так же, как и в библиотеке: вынесены в глобальные функции. Перегрузка, все дела.
1
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
|
14.10.2012, 17:30 [ТС] | 3 |
0
|
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
|
|
14.10.2012, 17:34 | 4 |
может лучше взять задачку попроше, для изучения классов, чем комплексные числа?
0
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
|
14.10.2012, 17:37 [ТС] | 5 |
Я не против Это просто первое, что пришло в голову. Подскажите другую задачу, пожалуйста. Спасибо!
0
|
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
||||||||||||||||
14.10.2012, 17:40 | 6 | |||||||||||||||
Ну вот и будете учиться работать с классами. А не наступать на грабли "ой я сделал вычисления в одном формате, но забыл перевести результат в другой и запомнить".
Для такого представления чисел, как у вас, его не надо делать руками, но он есть. Это конструктор, который (сюрприз!) делает копию объекта. Например, когда делается
Ну вот все эти + и * будут внутри класса как перегруженные операторы: operator+, operator* и т. п. А всякие pow(), exp(), log() — вне класса как глобальные функции. Не методы.
1
|
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
|
|
14.10.2012, 17:41 | 7 |
ну чтобы , полностью насладится всей прелестью ООП, как стандарт , задачка на реализацию классов Геом Фигур, начиная с абстрактной точки заканчивая , сферой , тут можно и перегрузку функций подсчета площадей и объема посмотреть, полиморфизм в явном виде, а комплексные числа лучше делать когда их применяешь , и то лучше стандартных библиотек врятил сделаешь )
если ваша среда разработки поддерживает GUI , то можно попробовать реализовать интегратор какой нибудь мат модели, тогоже маятника, и запилить через GUI анимацию движения
0
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
||||||
14.10.2012, 17:57 [ТС] | 8 | |||||
Сейчас займусь написанием кода, спасибо!
0
|
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
|
|
14.10.2012, 18:02 | 9 |
думаю , ~OhMyGodSoLong~, имел ввиду перегрузку оператора '=' ,и насчет суммы действительного и комплексного, число 8 = 8+0i , и число 4i , результат суммы, очевидно, 8+4i
0
|
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
||||||
14.10.2012, 18:07 | 10 | |||||
Да нет, можно и через неявные преобразования (раз они уж есть в Си++). Но для того, чтобы эти преобразования работали, надо сделать специальные конструкторы.
Вот именно, чтобы было не через фигурные. Да и через фигурные вы не сможете — поля ведь private. И чтобы можно было делать
0
|
vlad_light
|
14.10.2012, 18:17
[ТС]
#11
|
Не по теме:
0
|
OhMyGodSoLong
|
14.10.2012, 18:23
#12
|
Не по теме: Я вас удивлю, но ℝ ⊂ ℂ. Не по теме: Куда можно нажаловаться на уё*****сть местного рендерера ТеХа?
0
|
vlad_light
|
14.10.2012, 19:01
[ТС]
#13
|
Не по теме: Пусть будет так:) А как сюда ТеХ вставить?
0
|
OhMyGodSoLong
|
14.10.2012, 19:08
#14
|
Не по теме: [latex]ТеХ-код[/latex]
1
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
||||||
14.10.2012, 19:35 [ТС] | 15 | |||||
Гляньте, пожалуйста. Пока правильно?
class
0
|
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
|
||||||
14.10.2012, 19:38 | 16 | |||||
вот если интересно мое мнение , то я бы не делал
0
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
|
14.10.2012, 19:48 [ТС] | 17 |
output() у меня просто выводит число на экран. А остальные я сделаю так: ф-ция принимает аргумент, делает над ним операции, а результат записывает в исходную переменную. Так, по-моему, памяти меньше расходуется.
0
|
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
14.10.2012, 20:17 | 18 |
Насчёт памяти не волнуйтесь. Это последнее, о чём стоит волноваться, если программа вообще работает.
0
|
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
|
|
14.10.2012, 20:20 | 19 |
тем более на современных комп-ах, если в задаче будет критична память, то тогда надо будет придумывать алгоритмы оптимизации, а так это учебная прога, вы ее не больше раза запустите)
0
|
4 / 4 / 1
Регистрация: 24.09.2012
Сообщений: 178
|
|
14.10.2012, 20:32 [ТС] | 20 |
тут дело немного в другом: мне сказали, что нужно возвращать тип complex, а не void, а я объяснил, почему именно я использовал такой подход. Т.е. мне важна не сама память, а аргументы в пользу complex, вместо void.
И по поводу кода: перепешите, пожалуйста, чтоб он выглядел так, как пишут программисты (с правильными отступами, последовательностью объявлений, типами аргументов и т.п.). Ну и ошибки обязательно подправьте. Понимаю, что это мелочи, но хочу уже сейчас начинать привыкать к хорошему оформлению, принятому среди программистов. Спасибо!
0
|
14.10.2012, 20:32 | |
14.10.2012, 20:32 | |
Помогаю со студенческими работами здесь
20
Класс комплексных чисел Класс комплексных чисел Класс комплексных чисел Класс комплексных чисел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |