Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отвкты на ГОСЫ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
4.89 Mб
Скачать

48. Поле комплексных чисел. Различные формы записи комплексных чисел. Формула муавра.

Понятие комплексного числа.

Опр: Комплексным числом – наз. упорядоченная пара действительных чисел z = (a,b).Число а – действительная часть Re(z). Число b – мнимая часть Im(z).

Суммой 2-х комплексных чисел z1(a1,b1) и z2(a2,b2) есть комплексное число z =z1+z2= (a1+a2,b1+b2).

Разностью 2-х комплексных чисел z1(a1,b1) и z2(a2,b2) есть комплексное число z =z1–z2=

(a1– a2,b1– b2).

Произведением комплексного числа z1 и числа α есть комплексное число z = α*z1 = (α*a, α*b).

Произведением 2-х комплексных чисел z1(a1,b1) и z2(a2,b2) есть комплексное число z =z1*z2= (a1*a2 – b1*b2, a1*b2 +b1*a2).

Свойства операций.

  1. Дистрибутивность: (z1  z2)*z3=z1*z3  z2*z3.

  2. Коммутативность произведения: z1*z2 = z2*z1.

  3. Ассоциативность (z1*z2)*z3=z1*(z3*z2).

  4. (1,0)* z = z.

  5. (0,0) + z = z.

  6. (0,0)* z = 0.

Рассмотрим комплексное число (a,0) каждому такому числу соответствует одно действительное число a. И выполняется:

  1. (a,0)+(b,0)=(a+b,0);

  2. (a,0)*(b,0)=(a*b,0).

Число вида (0,1) наз. мнимой единицей ( і ).

Всякое комплексное число z = (a,b) можно представить как z = (a,0)+(0,b)=a+b*(0,1)=

=a+ib алгебраическая форма записи комплексного числа.

z =aib число сопряженное комплексному числу z =(a,b)=a+ib.

Комплексное число z =a+ib. удобно изображать точкой плоскости в декартовой системе координат.

У гол на который необходимо повернуть вокруг центра координат вектор длиной ( ), расположенном в исходном положении, вдоль оси X и имеющий начало в центре координат, чтобы конец вектора оказался в точке (a,b) – наз. аргументом комплексного числа Arg (z).

Arg (z) = φ, φ2π, φ4π,…

φ = arctg(b/a); zI II или φ = arctg(b/a)π; zI IV.

Arg (z) определяется не однозначно, а именно с точностью до слагаемого кратного 2π.

Среди ∞ мн.-ва значений Arg (z) есть одно (которое обозначаем аrg (z)) главное значение –πаrg (z)π.

Arg (z) и аrg (z) связаны соотношением:

Arg (z)= аrg (z)+2πk, k.

Пусть φ одно из возможных значений аргумента комплексного числа. Тогда:

Re(z) =a=|z|cosφ;

Im(z)=b=|z|sinφ.

z=|z|(cosφ+isinφ) тригонометрическая форма записи комплексного числа.

Алгебраические действия над комплексными числами.

(i)2= –1;

z1=a+ib;z2=c+id.

  1. z1+z2=(a+c)+i(b+c);

  2. z1–z2=(a-c)+i(b-d);

  3. z1*z2=(a+ib)(c+id)=ac+ibd+iad+i2db=(ac–db)+i(ad+bc);

  4. z1/z2=((a+ib)/(c+id))*(c–id)= ((a+ib)*(c–id))/(c2–(id)2) = ((ac+db)+i(ad–bc))/(c2+d2) =

(ca+bd)/(c2+d2)+i(ad-bc)/ (c2+d2).

Произведение числа в тригонометрическом виде:

|z1|=r; |z2|=t;

z1=|z1|(cosφ+isinφ);

z2=|z2|(cosψ+isinψ).

  1. z1*z2= |z1||z2|(cosψ+isinψ)(cosφ+isinφ)=rt(cosφcosψ+icosφsinψ+isinφcosψ-sinφsinψ) = rt(cos(φ+ψ)+isin(φ+ψ)).

  2. z1/z2=|z1|/|z2|(cosψ+isinψ)/(cosφ+isinφ)=r/t(cosψ+isinψ)(cosφ–isinφ)/((cosφ+isinφ)(cosφ–isinφ))= rt(cos(φ–ψ)+isin(φ–ψ)).

Степень:

zn=rn(cosnφ+isinnφ) формула Муавра.

Извлечение корня:

z=r(cosφ+isinφ).

Под корнем n-й степени из числа z будем понимать любое комплексное число ρ(cosδ+isinδ) которое в n-й степени даст число z.

Преобразуем последнее неравенство с помощью формулы Муавра.

ρn(cosnδ+isinnδ)= r(cosφ+isinφ).

ρn=r; nδ=φ+2πk, k.

ρ= ; δ=(φ+2πk)/n.

= (cos((φ+2πk)/n)+isin((φ+2πk)/n)).

49. Поняття інкапсуляції в мові програмування C++. Методи які організують інтерфейсі. Наведете приклади визначення відкритих і закритих полів і методів класу.

Инкапсуля́ция — свойство языка программирования, позволяющее объединить и защитить данные и код в объект и скрыть реализацию объекта от пользователя (прикладного программиста). При этом пользователю предоставляется только спецификация (интерфейс) объекта.

  • Пользователь может взаимодействовать с объектом только через этот интерфейс. Реализуется с помощью ключевого слова: public.

  • Пользователь не может использовать закрытые данные и методы. Реализуется с помощью ключевых слов: private, protected, internal.

Сокрытие данных — неотделимая часть ООП, управляющая областями видимости. Является логическим продолжением инкапсуляции. Целью сокрытия является невозможность для пользователя узнать или испортить внутреннее состояние объекта.

Инкапсуляция — один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с абстракцией, полиморфизмом и наследованием).

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

Пример (Класс А инкапсулирует свойства Aa, Ab и метод DoSomething, представляя внешний интерфейс ReturnSomething, a, b)

class A

{

public:

int a, b; //данные открытого интерфейса

int ReturnSomething(); //метод открытого интерфейса

private:

int Aa = a, Ab = b; //скрытые данные и использование ими интерфейса

void DoSomething(); //скрытый метод

};

Можно заметить, что интерфейс, фактически — это просто чистый абстрактный класс, то есть класс, в котором не определено ничего, кроме абстрактных методов. Если язык программирования поддерживает множественное наследование и абстрактные методы (как, например, C++), то необходимости во введении отдельного понятия «интерфейс» не возникает. Аналогичные сущности описываются в виде абстрактных классов и наследуются классами для реализации абстрактных методов.

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

В C++ интерфейсов, строго говоря, нет вообще. Механизм, аналогичный интерфейсам (и, исторически предшествующий им) реализуется другими средствами чрезвычайно мощной объектной подсистемы этого языка.

C++ поддерживает множественное наследование и абстрактные классы, поэтому, как уже упоминалось выше, отдельная синтаксическая конструкция для интерфейсов в этом языке не нужна. Интерфейсы заменяют абстрактные классы, а реализация интерфейса производится путём наследования этих классов.

Пример определения интерфейса:

/**

* interface.Openable.hpp

*

*/

#ifndef INTERFACE_OPENABLE_HPP

#define INTERFACE_OPENABLE_HPP

// Класс интерфейса iOpenable. Определяет возможность открытия/закрытия чего либо.

class iOpenable

{ public:

virtual ~iOpenable(){}

virtual void open()=0;

virtual void close()=0;};

#endif

Интерфейс реализуется через наследование. Благодаря наличию множественного наследования, ничто не мешает реализовать в одном классе несколько интерфейсов, если в этом есть необходимость.

Метод в объектно-ориентированном программировании — это функция, принадлежащая какому-то классу или объекту.

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