Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / var09 my / 02

.doc
Скачиваний:
27
Добавлен:
30.04.2013
Размер:
29.18 Кб
Скачать

Лабораторная работа №2

Востропятов Н. А.

Вар №9

I. Для вариантов 6-10 определить класс -"Комплексное число" в виде действительной и мнимой частей

II. Вычислить таблицу значений заданной функции при -1<=Re(z)<=1 и -1<=Im(z)<=1 с шагом 1 по обоим аргументам.

III. Вычислить значение функции в точке, значение которой вводится с клавиатуры.

IV. Проверить найденные значения, используя класс complex

2 + z*tg(z)

#include <stdio.h>

#include <conio.h>

#include <math.h>

class Complex

{

friend void SetComplex(Complex *pComp, float r, float i);

friend void Input(Complex &a);

friend void Output(Complex &a);

friend Complex tan(Complex &z);

public:

Complex(void) {re = 0; im = 0;};

Complex(float r, float i) {re = r; im = i;};

Complex(Complex &src) { re = src.re; im = src.im; };

~Complex(void) {re = 0; im = 0;};

inline Complex operator-(void) const { return Complex(-re, -im); }

inline int operator==(const Complex &z) const { return (z.re == re && z.im == im); }

inline int operator!=(const Complex &z) const { return (z.re != re || z.im != im); }

inline Complex operator+(const Complex &z) const { return Complex(re+z.re, im+z.im); }

inline Complex operator-(const Complex &z) const { return Complex(re-z.re, im-z.im); }

inline Complex operator*(const Complex &z) const { return Complex(re*z.re, im*z.im); }

inline Complex operator/(const Complex &z) const { return Complex(re/z.re, im/z.im); }

inline Complex operator+(float fl) const { return Complex(re+fl, im); }

inline Complex operator-(float fl) const { return Complex(re-fl, im); }

inline Complex operator*(float fl) const { return Complex(re*fl, im*fl); }

inline Complex operator/(float fl) const { return Complex(re/fl, im/fl); }

inline Complex operator^(float p) const { return Complex(powf(re,p), powf(im,p)); }

void Set(float r, float i);

void Set(Complex &a);

float GetRe(void) { return re; }

float GetIm(void) { return im; }

private:

float re;

float im;

};

void Complex::Set(float r, float i)

{

re = r;

im = i;

}

void Complex::Set(Complex &a)

{

re = a.re;

im = a.im;

}

void SetComplex(Complex *pComp, float r, float i)

{

pComp->re = r;

pComp->im = i;

}

void Input(Complex &a)

{

printf("Enter Re Im: ");

scanf("%f %f", &a.re, &a.im);

}

void Output(Complex &a)

{

printf("%f %f\n", a.re, a.im);

}

Complex tan(Complex &z)

{

return Complex(sin(2*z.re)/(cos(2*z.re)+cosh(2*z.im)), sinh(2*z.im)/(cos(2*z.re)+cosh(2*z.im)));

}

void main(void)

{

Complex z1;

Complex z2(10,12);

Output(z1);

Output(z2);

Input(z1);

Output(z1);

z2 = z1*tan(z1) + 2;

Output(z2);

SetComplex(&z1, 1, 2);

Output(z1);

printf(" ----\n");

for (float a = -1; a <= 1; a+= 0.5)

{

z1.Set(a, a);

z2 = z1*tan(z1) + 2;

Output(z2);

}

getch();

}

2

Соседние файлы в папке var09 my