Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.74
vlad_light
4 / 4 / 0
Регистрация: 24.09.2012
Сообщений: 178
#1

Класс комплексных чисел - C++

14.10.2012, 17:08. Просмотров 2662. Ответов 25
Метки нет (Все метки)

Сейчас начал изучение классов. Придумал себе задачку: написать класс комплексных чисел. Пока планирую так:
PRIVATE:
- переменные:
double Real, Imaginary, Radius, Argument;
- функции:
тригонометрия, возведение в степень и т.п.

PUBLIC:
- функции:
ввод, вывод;
сумма, разность, умножение;
возведение в степень;

(пока, думаю, достаточно)
Помогите, пожалуйста, с написанием прототипа класса и дайте советов по улучшению? Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 17:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс комплексных чисел (C++):

Класс комплексных чисел - C++
Привет))) Пожалуйста, помогите мне создать эту программу!) Я буду вам благодарна) Разработать алгоритм и программу ввода с клавиатуры...

Класс комплексных чисел - C++
Класс комплексных чисел, стандартные операции, перегрузка ввода-вывода. С вводом-выводом проблемы. Вроде всегда так писали, но сейчас...

Класс комплексных чисел - C++
Нужно создать программу (два класса) Класс комплексных чисел Базовый класс (мнимых чисел): Конструкторы: по умолчавнию, с параметрами...

Класс комплексных чисел - C++
Помогите пожалуйста реализовать (без использования <complex>) класс комплексных чисел с простейшими операциями и ВЫВЕСТИ результат на...

Класс комплексных чисел - C++
Ребят, помогите пожалуйста написать класс комплексных чисел... Я плохо разбираюсь в объектно-ориентированном программировании, учусь,...

Класс Комплексных Чисел - C++
Здравствуйте, попробовал тут написать класс комплексных чисел, но пишет ошибку error: statement cannot resolve adress of overloaded...

25
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.10.2012, 19:38 #16
вот если интересно мое мнение , то я бы не делал
C++
1
2
3
4
5
void output();
    void sum (const complex& z);
    void sub (const complex& z);
    void mul (const complex& z);
    void pow (const double& a)
типа void возвращал бы complex, особенно в output()
0
vlad_light
4 / 4 / 0
Регистрация: 24.09.2012
Сообщений: 178
14.10.2012, 19:48  [ТС] #17
output() у меня просто выводит число на экран. А остальные я сделаю так: ф-ция принимает аргумент, делает над ним операции, а результат записывает в исходную переменную. Так, по-моему, памяти меньше расходуется.
0
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
14.10.2012, 20:17 #18
Насчёт памяти не волнуйтесь. Это последнее, о чём стоит волноваться, если программа вообще работает.
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.10.2012, 20:20 #19
тем более на современных комп-ах, если в задаче будет критична память, то тогда надо будет придумывать алгоритмы оптимизации, а так это учебная прога, вы ее не больше раза запустите)
0
vlad_light
4 / 4 / 0
Регистрация: 24.09.2012
Сообщений: 178
14.10.2012, 20:32  [ТС] #20
тут дело немного в другом: мне сказали, что нужно возвращать тип complex, а не void, а я объяснил, почему именно я использовал такой подход. Т.е. мне важна не сама память, а аргументы в пользу complex, вместо void.
И по поводу кода: перепешите, пожалуйста, чтоб он выглядел так, как пишут программисты (с правильными отступами, последовательностью объявлений, типами аргументов и т.п.). Ну и ошибки обязательно подправьте. Понимаю, что это мелочи, но хочу уже сейчас начинать привыкать к хорошему оформлению, принятому среди программистов. Спасибо!
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.10.2012, 20:54 #21
что то глядя, на ваш последний пост, мозги поплыли, вы сами с собой или к кому то обращаетесь?
0
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
14.10.2012, 21:22 #22
Цитата Сообщение от vlad_light Посмотреть сообщение
Т.е. мне важна не сама память, а аргументы в пользу complex, вместо void.
Аргумент в пользу complex вместо void — возможность писать:
C++
1
a = add(sub(b, c), mul(add(d, e), f));
Аргумент в пользу перегрузки операторов — возможность писать:
C++
1
a = b - c + (d + e) * f;
Аргумент №2 в пользу перегрузки операторов:
C++
1
a += b; /* эквивалентно вашему */ add(a, b); // или, упасибоже, a.add(b)
1
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.10.2012, 21:27 #23
~OhMyGodSoLong~,

Не по теме:

блин, а я вот не разобрал , что он имеет ввиду)


и да все поделу сказал.и чуть добавлю чтоб было более понятно преимущество перегрузки
C++
1
a = b - c + (d + e) * f;//все переменные типа сomplex
0
vlad_light
4 / 4 / 0
Регистрация: 24.09.2012
Сообщений: 178
14.10.2012, 21:43  [ТС] #24
Спасибо! А по поводу стиля кода есть замечания?
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.10.2012, 21:56 #25
Цитата Сообщение от vlad_light Посмотреть сообщение
Спасибо! А по поводу стиля кода есть замечания?
так вот что вы имели ввиду, ну вот чисто мое мнение, все хорошо, единственное , я вот например операторные скобки открываю сразу после закрытия круглой скобки функции, или оператора, или объявления структуры\класса
C++
1
2
3
4
5
6
7
8
9
10
int main(){
  for(){
  }
}// мой вариант
int main()
{
  for()
  {
   }
} //ваш вариант
не знаю есть ли какието доводы за или против, но лично мне привычней мой коддинг), да и большинство вроде бы пишут как у меня, плюс в документации вроде бы также
И еще один не маловажный момент, обычно файлы заголовки (это те которые с раширением *.h) необходимы для объявления классов, функций , структур и так далее, а для реализации непосредственно методов классов , функций существует файл реализации (это тот который с расширением *.cpp) так будет для языка С++ более грамотно, хотя например в Java наоборот, существует единственный фаил, и поэтому приходится сразу писать реализации
1
vlad_light
4 / 4 / 0
Регистрация: 24.09.2012
Сообщений: 178
14.10.2012, 22:17  [ТС] #26
Понятно, спасибо!
0
14.10.2012, 22:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2012, 22:17
Привет! Вот еще темы с ответами:

Написать класс комплексных чисел - C++
Недавно начал изучать C++ по самоучителю, пишу на Dev-C++ 4.9. Не могу разобраться с классами. Задача: написать класс комплексных чисел,...

Класс комплексных чисел(подправить) - C++
Помогите дописать в оераторе "умножение" умножение вещественного числа на комплексное,double на комплексное. Очень надо. Заранее спасибо ...

Создать класс комплексных чисел - C++
Создать класс,объекты которого моделируют комплексные числа с перегрузкой необходимых операций.

Реализовать пользовательский класс комплексных чисел - C++
Помогите пожалуйста сделать задание - программу вычисления комплексного числа. Есть рабочая, которая считает формулу:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.