Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторний практикум.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

Void show_complex();

};

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

double complex::modul()

{

double temp;

temp=pow(x*x+y*y,1/2.0);

return temp;

};

//обчислення аргумента комплексного числа

double complex::argument()

{

double temp;

temp=atan2(y,x)*180/pi;

return temp;

};

//вивід комплекснеого числа на екран

Void complex::show_complex()

{

if(y>=0) cout<<x<<"+"<<y<<"i"<<endl;

else cout<<x<<"-"<<y<<"i"<<endl;

};

В такому описі і елементи-члени, і елементи-функції є відкритими (public). Доступ до відкритих членів класу може бути здійснений прямим зверненням за допомогою оператора «.» згідно наступного синтаксису:

<імя класу>.<імя поля класу>

<імя класу>.<імя методу класу>

Наприклад:

Void main()

{

complex chislo; //Опис екземпляру класу chislo

chislo.x=1; // Присвоєння полю x значення 1

chislo.y=1; // Присвоєння полю y значення 1

// Вивід комплексного числа

chislo.show_complex();

// Вивід модуля комплексного числа

cout<<"Модуль комплексного числа ="<<chislo.modul()<<endl;

// Вивід аргументу комплексного числа

cout<<"Аргумент комплексного числа = "<<chislo.argument()<<endl;

}

Використання відкритих членів та методів дозволяє отримати пов­ний доступ до елементів класу, але при беспосередньому зверненні до них виникає потенційна небезпека внести помилки у функціонування взаємо­звязаних між собою елементів класу. При цьому обмеження доступу не є способом захисту даних, а тільки методом полегшення програмування та пошуку логічних помилок в роботі програми. Загальноприйнятим елементи - дані є закритими (private) , а елементи-функції – відкритими (public). Для доступу до закритих члені класу необхідно створити відпо­відні відкриті елементи-функції, бо доступ до них за допомогою оператора «.» в цьому випадку є неможливим. Наприклад:

class complex

{

private:

double x;

double y;

public:

double modul();

double argument();

void show_complex();

void vvid();

};

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

double complex::modul()

{

double temp;

temp=pow(x*x+y*y,1/2.0);

return temp;

};

//обчислення аргумента комплексного числа

double complex::argument()

{

double temp;

temp=atan2(y,x)*180/pi;

return temp;

};

//вивід комплекснеого числа на екран

void complex::show_complex()

{

if(y>=0) cout<<x<<"+"<<y<<"i"<<endl;

else cout<<x<<"-"<<y<<"i"<<endl;

};

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

void complex::vvid()

{

cout<<"Введіть x\t";

cin>>x;

cout<<"Введіть y\t";

cin>>y;

};

Фрагмент головної програми для вводу комплексного числа із клавіатури та виводу його на екран матиме наступний вигляд:

// Опис комплексного числа

complex chislo;

// Присвоєння значення комплексному числу

chislo.vvid();

// Вивід комплексного числа

chislo.show_complex();

Приклади виконання завдання

Приклад №1

Програма для роботи точкою в декартовій системі координат. Членами класу є просторові координати точки (x,y,z) (private). Ме­то­дами класу (public) є: ввід координат точки із клавіатури; вивід координат точки на екран; обчислення та вивід відстані до початку координат ; обчислення та вивід азимутального кута (у сферичній сис­темі координат); обчислення та вивід полярного кута (у сферичній системі координат). При розробці методів класу використовуються наступні формули:

; ;

#include<iostream>

#include<math.h>

#include <windows.h>

#define pi 3.1415926

using namespace std;

class tochka

{

private:

double x;

double y;

double z;

public:

double modul();//Обчислення

double fi(); //Обчислення

double teta(); //Обчислення

void sfera(double); /*Визначення положення точки відносно кулі */

void show_tochka();//Вивід координат точки

void vvid();//Ввід координат точки

};

double tochka::modul()

{

double temp;

temp=pow(x*x+y*y+z*z,1/2.0);

return temp;

};

double tochka::fi()

{

double temp;

temp=atan2(y,x)*180/pi;

return temp;

};

double tochka::teta()

{

double temp;

temp=atan2(sqrt(x*x+y*y),z)*180/pi;

return temp;

};

void tochka::sfera(double r)

{

if (pow(x*x+y*y+z*z,1/2.0)<r) cout<<"Точка лежить в межах кулі із радіусом = "<<r<<endl;

else if (pow(x*x+y*y+z*z,1/2.0)==r) cout<<"Точка лежить на сфері із радіусом = "<<r<<endl;

else cout<<"Точка лежить за межами кулі із радіусом = "<<r<<endl;

};

void tochka::show_tochka()

{

cout<<"Кооодинати точки ("<<x<<"," <<y<<","<<z<<")"<<endl;

};

void tochka::vvid()

{

cout<<"Введіть координату x\t";

cin>>x;

cout<<"Введіть координату y\t";

cin>>y;

cout<<"Введіть координату z\t";

cin>>z;

};

void main()

{

SetConsoleOutputCP(1251);

SetConsoleCP(1251);

tochka M;

M.vvid();

M.show_tochka();

cout<<"Полярний кут ="<<M.fi()<<endl;

cout<<"Азимутальний кут ="<<M.teta()<<endl;

double r;

cout<<"Введіть радіус кулі r\t";

cin>>r;

M.sfera(r);

cout<<"Відстань від точки до початку координат ="<<M.modul() <<endl;

}

Результат роботи програми