Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Текст программы

Теоретическая справка.

Комплексные числа – расширение множества вещественных чисел, обычно обозначается . Любое комплексное число может быть представлено как формальная сумма x+i*y, где x и y – вещественные числа, i – мнимая единица, при этом х – действительная часть, у – мнимая часть комплексного числа.

=i.

Действия над комплексными числами.

· Сравнение

a + b*i = c + d*i означает. Что a = c и b = d (два комплексных числа равны между собой тогда и только тогда когда равны их действительные и мнимые части)

· Сложение

(a + b*i) + (c + d*i) = (a + c) + (b + d)*i.

· Вычитание

(a + b*i) - (c + d*i) = (a - c) + (b - d)*i.

· Умножение

(a + b*i) (c + d*i) = ac + bc*i + ad*i + bd* = (ac – bd) + (bc+ad)*i.

· Деление

= + ()*i.

· Если комплексное число z = x + i*y, то число = x – i*y называется сопряжённым (или комплексно сопряжённым) к z (обозначается также z*)


Текст программы

// Подключаем модули

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

#include <iostream>

#include <fstream>

using namespace std;

 

//---------------------------------------------------------------------------

// Класс "Комплексное число" Z = Re + Im * i

class Complex

{

private:

double Re; // Действительная часть комплексного числа

double Im; // Мнимая часть комплексного числа

double ro; //модуль

double fi; //амплитуда

 

public:

double A;

double B;

double C;

// Конструктор класса без параметров

Complex()

{

Re = 0.0;

Im = 0.0;

}

// Конструктор класса с параметрами

Complex(double re, double im)

{

Re = re;

Im = im;

}

// Деструктор класса

~Complex()

{

}

float SetRe(float); //координаты Re

float SetIm(float); //координаты Im

float Setro(float); //координаты ro

float Setfi(float); //координаты fi

float GetRe() //возвращает из класса значение Re

{return Re;}

float GetIm() //возвращает из класса значение Im

{return Im;}

float Getro() //возвращает из класса значение ro

{return ro;}

float Getfi() //возвращает из класса значение fi

{return fi;}

// Функция сложения

void Addition(Complex A, Complex B)

{

Re = A.Re + B.Re;

Im = A.Im + B.Im;

}

// Функция вычитания

void Subtraction(Complex A, Complex B)

{

Re = A.Re - B.Re;

Im = A.Im - B.Im;

}

// Функция умножения

void Multiplication(Complex A, Complex B)

{

 

Re = A.Re * B.Re - A.Im * B.Im;

Im = A.Re * B.Im + A.Im * B.Re;

 

}

// Функция деления

void Division(Complex A, Complex B)

{

Re = (A.Re * B.Re + A.Im * B.Im) / (B.Re * B.Re + B.Im * B.Im);

Im = (A.Im * B.Re - A.Re * B.Im) / (B.Re * B.Re + B.Im * B.Im);

}

// Функция поиска комплексного сопряженного числа

Complex GetComplexConjugate()

{

Complex Z;

Z.Re = Re;

Z.Im = -Im;

return Z;

}

// Функция поиска модуля комплексного числа

double GetAbsoluteValue()

{

double Abs;

Abs = sqrt(Re * Re + Im * Im);

return Abs;

}

 

//функция ввода чисел A B C

void Input()

{

cout<<"A=";

cin>>A;

cout<<"B=";

cin>>B;

cout<<"C=";

cin>>C;

}

 

// Функция вывода комплексного числа

void Show()

{

if(Re == 0.0 && Im == 0.0)

{

cout << " 0" << endl;

return;

}

if(Re == 0.0)

{

if(Im > 0.0)

cout << " " << Im << " * i" << endl;

 

return;

}

if(Im == 0.0)

{

if(Re > 0.0)

cout << " " << Re << endl;

else

cout << Re << endl;

return;

}

if(Re > 0.0)

cout << " " << Re << " ";

else

cout << Re << " ";

if(Im > 0.0)

cout << "+ " << Im << " * i" << endl;

}

};

//---------------------------------------------------------------------------

// Перезагрузка операторов: +, -, *, /

Complex operator + (Complex A, Complex B)

{

Complex Z; Z.Addition(A, B); return Z;

}

Complex operator - (Complex A, Complex B)

{

Complex Z; Z.Subtraction(A, B); return Z;

}

Complex operator * (Complex A, Complex B)

{

Complex Z; Z.Multiplication(A, B); return Z;

}

Complex operator / (Complex A, Complex B)

{

Complex Z; Z.Division(A, B); return Z;

}

//---------------------------------------------------------------------------

// Главная функция

int main()

{

// Создаем объект A

Complex A; // A = 0 + 0 * i, т.е. A = 0

A.Input(); // Выводим

A.Show(); // число на экран

system("Pause"); // и ждем нажатия любой клавиши

 

// Создаем объект B

Complex B(-1, 2); // B = -1 + 2 * i

B.Input(); // Выводим

B.Show(); // число на экран

system("Pause"); // и ждем нажатия любой клавиши

 

// Создаем объект C

Complex C(3, -4); // C = 3 - 4 * i

C.Input(); // Выводим

C.Show(); // число на экран

system("Pause"); // и ждем нажатия любой клавиши

 

// Складываем два числа

A = B + C; // A = 2 - 2 * i

cout << "A = B + C \n" << "A = "; // Выводим

A.Show(); // полученное число на экран

system("Pause"); // и ждем нажатия любой клавиши

 

// Вычитаем из одного числа другое

A = B - C; // A = -4 + 6 * i

cout << "A = B - C \n" << "A = "; // Выводим

A.Show(); // полученное число на экран

system("Pause"); // и ждем нажатия любой клавиши

 

// Перемножаем два числа

A = B * C; // A = 5 + 10 * i

cout << "A = B * C \n" << "A = "; // Выводим

A.Show(); // полученное число на экран

system("Pause"); // и ждем нажатия любой клавиши

 

// Делим одно число на другое

A = B / C; // A = -11/25 + 2/25 * i

cout << "A = B / C \n" << "A = "; // Выводим

A.Show(); // полученное число на экран

system("Pause"); // и ждем нажатия любой клавиши

 

// Создаем объект D

Complex D = C.GetComplexConjugate(); // D - комплексно сопряженное к C

cout << " _\nD = C \n" << "D = "; // Выводим

D.Show(); // полученное число на экран

system("Pause"); // и ждем нажатия любой клавиши

// Вычислим модуль комплексного числа D

double Abs = D.GetAbsoluteValue(); // Abs - модуль комплексного числа D

cout << "Abs = |D|" << endl; // Выводим

cout << "Abs = " << Abs << endl; // полученное число на экран

system("Pause"); // и ждем нажатия любой клавиши

 

// Все в порядке - возвращаем ноль

return 0;

}

//---------------------------------------------------------------------------

Тестовые примеры:


<== предыдущая | следующая ==>
Позитивные (психотические) проявления | 

Date: 2015-07-02; view: 177; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию