Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 75, средняя оценка - 4.63
misterbl95
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 22
17.05.2012, 01:05     Комплексные числа #1
2. Даны два комплексных числа в алгебраической форме. Найти их произведение.


Пример

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//Лаб.раб.№ 1. Линейная программа.
#include <iostream.h>           //Для потокового ввода - вывода
#include <conio.h>              //Для работы операторов clrscr()и getch()
#include <math.h>               //Для реализации  sqrt()
void main()
{  float a,b,c,P,S;
   clrscr();                     //Очистка экрана
   cout<<"\nВведите 1 сторону треугольника:   a=" ;
   cin>>a;
   cout<<"\nВведите 2 сторону треугольника:   b=" ;
   cin>>b;
   cout<<"\nВведите периметр треугольника:   P=" ;
   cin>>P;
   c=P-a-b;                      //Вычисление длины третьей стороны
   P/=2;                         //Вычисление полупериметра    
   S=sqrt(P*(P-a)*(P-b)*(P-c));  //Вычисление площади треугольника по 
                                 //формуле Герона 
   cout<<"\nПлощадь треугольника   S="<<S;
   getch();                      //Задержка экрана
Пример это просто шаблон
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2012, 01:05     Комплексные числа
Посмотрите здесь:

C++ Комплексные числа
Комплексные числа: вычислить значение выражения C++
комплексные числа C++
C++ Комплексные числа..
C++ Комплексные числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
17.05.2012, 10:40     Комплексные числа #2
misterbl95,
в своё время посвятил этому целый раздел
http://www.cyberforum.ru/faq/thread4...ml#post2432704
-=ЮрА=-
Заблокирован
Автор FAQ
17.05.2012, 11:03     Комплексные числа #3
Ниже С++ код позволяющий найти произведение двух комплексных чисел
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <clocale>
#include <iostream>
using namespace std;
 
struct complex
{
    double re;
    double im;
};
 
//ÔóГ*êöèÿ ГЇГҐГ·Г*ГІГ*ГҐГІ êîìïëåêñГ*îå ÷èñëî
void PrintComplexNumber(complex val);
//ÔóГ*êöèÿ îñóùåñòâëÿåò ââîä êîìïëåêñГ*îãî Г·ГЁГ±Г«Г*
//èìååòñÿ Г§Г*Г№ГЁГІГ* îò Г*ГҐГўГҐГ°Г*îãî ââîäГ*
bool EnterComplexNumber(complex &val);
 
int main()
{
    setlocale(LC_ALL,"RUS");
    complex A, B, C;
    if((cout<<"×èñëî ГЂ :\n") && !EnterComplexNumber(A))
        cout<<"ГЋГёГЁГЎГЄГ* ââîäГ*\n";
    else
    if((cout<<"×èñëî B :\n") && !EnterComplexNumber(B))
        cout<<"ГЋГёГЁГЎГЄГ* ââîäГ*\n";
    else
    {
        //(a1 + j*b1)*(a2 + j*b2) = a1*a2 - b1*b2 + j*(a1*b2 + a2*b1)
        C.re = A.re*B.re - A.im*A.im;
        C.im = A.re*B.im + B.re*A.im;
        cout<<"ÏðîèçâåäåГ*ГЁГҐ A*B :\n";
        PrintComplexNumber(C);
    }
    system("pause");
    return 0;
}
 
void PrintComplexNumber(complex val)
{
    cout<<val.re;
    if(val.im < 0)
        cout<<" - j"<<-val.im;
    else
        cout<<" + j"<<val.im;
    cout<<endl;
}
 
bool EnterComplexNumber(complex &val)
{
    bool bInput = true;
    cout<<"Ââåäèòå äåéñòâèòåëüГ*ГіГѕ Г·Г*Г±ГІГј : ";
    //Г„Г*Г*Г*îå óñëîâèå îçГ*Г*Г·Г*ГҐГІ Г·ГІГ® îøèáî÷Г*Г® 
    //îñóùåñòâèëè Г*ГҐГўГҐГ°Г*ûé èëè ïóñòîé ââîä 
    if(!(cin>>val.re) || cin.get() != '\n')
        bInput = false;
    if(bInput)
    {
        cout<<"Ââåäèòå Г¬Г*èìóþ Г·Г*Г±ГІГј : ";
        if(!(cin>>val.im) || cin.get() != '\n')
            bInput = false;
    }
    if(!bInput)//Åñëè ââîä áûë Г± îøèáêîé
    {
        cin.clear();//Г±ГЎГ°Г*ñûâГ*ГҐГ¬ ГґГ«Г*ГЈ îøèáêè
        cin.sync(); //î÷èùГ*ГҐГ¬ ГЎГіГґГҐГ° ГЄГ®Г*ñîëè
    }
    return bInput;
}
Миниатюры
Комплексные числа  
UranFlex
131 / 129 / 21
Регистрация: 25.05.2013
Сообщений: 233
23.10.2013, 14:33     Комплексные числа #4
Будьте осторожны, код в сообщении номер 3 от -=ЮрА=- - содержит ошибку.
Вот пример - выдает неверный результат для комплексных чисел
A = 1 - 2i
B = 3 + 3i
Правильный ответ будет
9 - 3i

Исправление ошибки в строке 29
C++
1
C.re = A.re*B.re - A.im*B.im;
Миниатюры
Комплексные числа  
Yandex
Объявления
23.10.2013, 14:33     Комплексные числа
Ответ Создать тему
Опции темы

Текущее время: 00:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru