Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под *nix > C++ на Unix
Перезагрузить страницу Изучаю классы на С++ на Linux
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
ostap_bender ostap_bender вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.10.2012
Red face Изучаю классы на С++ на Linux - 16.10.2012, 16:41

Доброго времени суток!
Начал изучать недавно программирование.
Суть ООП понятна. В Delphi я разобрался.
Теперь начал изучать С++ на Linux

Прошу помощи в решении задачки:
Нужна программка, использующую класс, где объектом выступает – комплексное число, а метод – возведение его в степень.

Не могу никак осилить элементарщину.
Помогите, пожалуйста!
Ответить с цитированием
  (#2 (permalink)) Старый
ostap_bender ostap_bender вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.10.2012
По умолчанию 16.10.2012, 16:42

Глупые попытки:

cpp Код:
#include <math.h>
#include <complex.h>
#include <iostream.h>
//////////////////////////////////////////////////////////////////////////////////////
typedef double                T_real;
typedef std::complex<T_real>  T_compl;
//////////////////////////////////////////////////////////////////////////////////////
T_compl  pow_z_p
    (
        T_real  z_real,
        T_real  z_imag,
        T_real  p
    )
{
    T_real  z_p_real = 0;
    T_real  z_p_imag = 0;
    if(z_real || z_imag)
    {
        //Пронормируем заданное комплексное число.
        T_real  norm     = sqrt(z_real * z_real + z_imag * z_imag);
        T_real  cos_phi  = z_real / norm;        
        T_real  phi      = acos(cos_phi);    
 
        //Представим заданное комплексное число
        //z == z_real + i * z_imag
        //в виде
        //z == norm * (cos(phi) + i * sin(phi)).
        //Возводя это число в степень p по формуле Муавра, получим:
        //z^p = norm^p * (cos(p * phi) + i * sin(p * phi)),
        //откуда
        T_real  norm_p  = pow(norm, p);
        z_p_real        = norm_p * cos(p * phi);
        z_p_imag        = norm_p * sin(p * phi);      
    }
    return T_compl(z_p_real, z_p_imag);    
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    std::cout << "Введите комплексное число z: "
              << std::endl
              << '\t'
              << "z.real = ";
 
    T_real  z_real;
    std::cin >> z_real;
 
    std::cout << '\t'
              << "z.imag = ";
 
    T_real  z_imag;
    std::cin >> z_imag;
 
    std::cout << "Введите вещественный показатель степени: ";
    T_real p = 0;
    std::cin >> p;
 
    std::cout << std::endl
              << "Комплексное число "
              << T_compl(z_real, z_imag)
              << " в степени "
              << p
              << " равно "
              << std::endl
              << pow_z_p(z_real, z_imag, p)
              << std::endl
              << std::endl
              << "Тот же результат, полученный через библиотечную функцию: "
              << std::endl
              << std::pow(T_compl(z_real, z_imag), p)
              << std::endl
              << std::endl;    
}
Ответить с цитированием
  (#3 (permalink)) Старый
StudDraw2017 StudDraw2017 вне форума
Banned
 
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.11.2017
По умолчанию 23.11.2017, 19:42

Не знаю шаблоны, но кажется, вы не туда пошли.
Если у вас задание создать класс комплексных чисел, то надо дать описание типа подобное записям и содержащее две переменные для хранения собственно числа.
Далее, следует описать методы (функции класса) для реализации операций сложения и умножения.

Всё это можно усложнить до перегрузки присваивания и арифметических операций, но использовать STL, думаю, не следует.
Ответить с цитированием
  (#4 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,255
Сказал(а) спасибо: 27
Поблагодарили 51 раз(а) в 51 сообщениях
Регистрация: 16.10.2005
По умолчанию 23.11.2017, 20:29

Цитата:
Сообщение от StudDraw2017 Посмотреть сообщение
Не знаю шаблоны, но кажется
Мне кажется, Вы заняты некрофлудом и набивкой постов.
Хотите в бан?
Ответить с цитированием
  (#5 (permalink)) Старый
StudDraw2017 StudDraw2017 вне форума
Banned
 
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.11.2017
По умолчанию 23.11.2017, 20:46

Обычно, на первой странице списка темы нестарые. Ваш форум слишком раздроблен для текущей активности, а время последнего сообщения в треде далеко от названия темы, указано уменьшенным шрифтом и не по стандарту. В результате, просто не обращаешь внимание на дату.

Вместо запугивания баном и так редких юзеров, сделайте вывод предупреждения с датой при попытке отправить сообщение в старый тред, и некропостинг сократится.
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,255
Сказал(а) спасибо: 27
Поблагодарили 51 раз(а) в 51 сообщениях
Регистрация: 16.10.2005
По умолчанию 23.11.2017, 21:49

Посмотреть на дату религия не позволяет?
Ответить с цитированием
  (#7 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 6,760
Сказал(а) спасибо: 15
Поблагодарили 820 раз(а) в 805 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 24.11.2017, 11:25

Цитата:
Сообщение от StudDraw2017 Посмотреть сообщение
Вместо запугивания баном и так редких юзеров, сделайте вывод предупреждения с датой при попытке отправить сообщение в старый тред, и некропостинг сократится.
Вы не редкий юзер, а спамер, рекламирующий повсюду какую-то там контору по решению задач за лоботрясов. Чтобы увидеть это, достаточно погуглить по нику посты за последние пару месяцев.

Последний раз редактировалось Rius; 24.11.2017 в 11:28
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
абстрактные базовые классы Good1984))) С/С++ 5 26.12.2011 15:45
Изучаю спрос на ноутбук Samsung R505 toxic2007 Продам 1 29.09.2010 00:31
Как переделать в классы программный код duden Вопросы начинающих программистов 3 01.06.2010 19:07
Классы модификация магнитофона elenSV С/С++ 2 01.05.2009 17:11
Классы как найти ошибку Виталик 1 Delphi 2 29.01.2009 16:49
Классы на Asm как их создавать no_NaMe Assembler 4 13.04.2006 18:18
Классы и компоненты в Builder imported_Des C++ Builder 1 14.08.2005 21:55
Классы и их использование в работе sunrize С/С++ 7 19.05.2005 18:22
Классы в DLL и работа с ними AntiGamer Visual C++ 10 08.03.2005 22:44
Как создавать свои классы Azure Delphi 3 02.01.2005 15:31
DLL и классы St@lker Visual C++ 4 16.02.2004 15:21



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов