Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Звіт практика 2.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
410.69 Кб
Скачать

3.3 Вимоги з пожежної безпеки

Для забезпечення електробезпеки та пожежної безпеки у приміщеннях і на робочих місцях з ПК повинні дотримуватися вимоги «Правил улаштування електроустановок», «Правил технічної експлуатації електроустановок споживачів» та «Правил технічної безпеки при експлуатації електроустановок споживачів». Приміщення з ПК обладнуються засобами пожежогасіння. У приміщеннях і на робочих місцях з ПК повинні дотримуватися правила пожежної та електробезпеки. До роботи на ПК повинні допускатися особи, які пройшли інструктаж і перевірку знань правил та інструкцій з охорони праці, пожежної безпеки та електробезпеки.

3.4 Охорона навколишнього середовища

При роботі з комп’ютером важливо знати , що комп’ютер виготовлений з неорганічних матеріалів , які при потраплянні в навколишнє середовище не розкладаються , тому дуже важливо неробочі або старі комплектуючі здавати в спеціальні пункти по їх утилізації або переробці.

Висновки

Метою практики було розробити арифметичний калькулятор.

В результаті виконання навчальної практики був реалізований

клас комплекс, що дозволяє працювати з комплексними числами.

Програма дозволяє проводити наступні операції з

комплексними числами:

1. складання двох комплексних чисел;

2. віднімання двох комплексних чисел;

3. множення двох комплексних чисел;

4. поділ двох комплексних чисел;

Пояснювальна записка складається з трьох розділів: теоретичні основи, опис програмного продукту, охорона праці.

Перелік джерел

  1. А. Я. Архангельський, C++ Builder 6. Справочное пособие. Книга 2. Классы и компоненты. – СПб Бином, 2002. – 528 с.

  2. А. Я. Архангельський, Программирование в C++ Builder 6. – СПб Бином, 2003. – 1151 с.

  3. Б. Страуструп. Язык программирования C++. Третье издание./Пер. с англ. – СПб.; М.: «Невский Диалект» – «Издательство Бином», 1999 г. – 991 с.

  4. Библиотека компонент EhLib 6. Руководство разработчика – EhLibTeam. Редакция: 1.62, СПб 2013 – 160 с.

  5. Новые возможности EhLib 6.2 – EhLibTeam. Редакция: 1.62, 2013 – 12 с.

  6. С. Глушаков, С. Смирнов, А. Коваль. Практикум по С++ – Харьков: Харьковский институт информационных технологий.

Додаток а

1 Реалізація класів. Header-файл

#ifndef MATH_H

#include <math.h>

#else

#define MATH_H

#endif

#ifndef IOS_H

#include <iostream.h>

#else

#define IOS_H

#endif

#include <vcl\dstring.h>

const double pi = 3.1415926535897932384626433832795;

bool COMPLEX_FORMAT=false;

class complex{

private:

double x,y;

public:

complex(double re=0,double im=0){x=re; y=im;}

complex exp(complex);

complex pow(complex,complex);

complex sqrt(complex);

complex log(complex);

complex sinh(complex);

complex cosh(complex);

complex sin(complex);

complex cos(complex);

complex tan(complex);

void print(complex);

complex input(void);

double real(complex z) {return z.x;}

double image(complex z){return z.y;}

double mod(complex z) {return sqrt(z.x*z.x+z.y*z.y);}

friend double arg(complex z) {return (z.x||z.y)?atan2(z.y,z.x):0;}

complex StrToCompl(AnsString);

AnsiString ComplToStr(complex);

complex operator~(complex);

complex operator+(complex,complex);

complex operator-(complex,complex);

complex operator-(complex);

complex operator*(complex,complex);

complex operator/(complex,complex);

complex operator^(complex,complex);

bool operator==(complex,complex);

bool operator!=(complex,complex);};

complex operator~(complex z)

{return complex(z.x,-z.y);}

complex operator+(complex z1,complex z2)

{return complex(z1.x+z2.x,z1.y+z2.y);}

complex operator-(complex z1,complex z2)

{return complex(z1.x-z2.x,z1.y-z2.y);}

complex operator-(complex z)

{return complex(-z.x,-z.y);}

complex operator*(complex z1,complex z2)

{return complex(z1.x*z2.x-z1.y*z2.y,z1.x*z2.y+z2.x*z1.y);}

complex operator/(complex z1,complex z2)

{return complex((z1.x*z2.x+z1.y*z2.y)/(z2.x*z2.x+z2.y*z2.y),

(z1.y*z2.x-z2.y*z1.x)/(z2.x*z2.x+z2.y*z2.y));}

complex operator^(complex z1,complex z2)

{return exp((log(mod(z1))+complex(0,1)*arg(z1))*z2);}

bool operator==(complex z1,complex z2)

{return z1.x==z2.x&&z1.y==z1.y;}

bool operator!=(complex z1,complex z2)

{return z1.x!=z2.x||z1.y!=z1.y;}

double mod(double x){return fabs(x);}

double mod(int x){return abs(x);}

complex exp(complex z)

{return complex(exp(z.x)*cos(z.y),exp(z.x)*sin(z.y));}

complex pow(complex z1,complex z2)

{return exp((log(mod(z1))+complex(0,1)*arg(z1))*z2);}

complex sqrt(complex z)

{return pow(z,0.5);}

complex log(complex z)

{return complex(log(mod(z)),arg(z));}

complex cosh(complex z)

{return (exp(z)+exp(-z))/2;}

complex sinh(complex z)

{return (exp(z)-exp(-z))/2;}

complex cos(complex z)

{ complex i=complex(0,1); return cosh(i*z);}

complex sin(complex z)

{ complex i=complex(0,1); return -i*sinh(i*z);}

complex tan(complex z) {return(sin(z)/cos(z));

complex input(void){

char s[80],sx[40],sy[40],*ps;

double xs,ys;

cin>>s;

*sx=0;*sy=0;

ps=s; if(*ps=='(') strcpy(s,++ps);

ps=s; while(*ps) ps++; ps--; if(*ps==')')*ps=0;

ps=s; while(*ps!=','&&*ps) ps++;

if(*ps==','){*ps=0; ps++; strcpy(sy,ps);}

strcpy(sx,s); xs=atof(sx);

*sy ? ys=atof(sy): ys=0; complex z=complex(xs,ys);

return z;}

void print(complex z) { z.y ? cout <<"("<<z.x<<","<<z.y<<")" : cout<<z.x;}

complex StrToCompl(AnsiString s){

char *cs,*ps,*es;

char sx[40],sy[40];

const char lp='(',rp=')';

double xs,ys;

cs=s.c_str();

if(!strcmp(cs,"INF")) return complex(1e308,0);

if(!strcmp(cs,"-INF")) return complex(-1e308,0);

*sx=0;*sy=0; ps=cs; while(*ps)ps++; ps--; es=ps; ps=cs;

if(*ps==lp&&*es!=rp||*ps!=lp&&*es==rp) return complex(0,0);

else if(*ps==lp&&*es==rp) {*es=0; ps++; strcpy(cs,ps);}

ps=cs;

while(*ps) ps++; ps--; es=ps;

if(*ps=='i'){

if(ps==cs)return complex(0,1);

*ps=0;ps--;

while(*ps!='+'&&*ps!='-'&&ps!=cs)ps--;

if(ps==cs){strcpy(sy,cs); strcpy(sx,"0");}

else if(*ps=='+'||*ps=='-'){

strcpy(sy,ps); *ps=0; strcpy(sx,cs); }

if(!strcmp(sy,"+")||!strcmp(sy,"-")) strcat(sy,"1");

xs=atof(sx); ys=atof(sy);}

else{

ps=cs; while(*ps!=';'&&*ps!=','&&*ps) ps++;

if(*ps==';'||*ps==','){*ps=0; ps++; strcpy(sy,ps);}

strcpy(sx,cs); xs=atof(sx); ys=*sy ? atof(sy):0;}

complex z=complex(xs,ys); return z;}

AnsiString

AnsiString ComplToStr(complex z){

AnsiString *s = new AnsiString[80];

AnsiString *rs = new AnsiString[40];

AnsiString *is = new AnsiString[40];

double re,im; const AnsiString lp='(',rp=')',c=';',ci='i';

re=real(z); im=image(z);

if(fabs(re)<1e-308) re=0; if(fabs(im)<1e-308) im=0;

*rs=FloatToStr(re); *is=FloatToStr(im);

if(COMPLEX_FORMAT) {

if(!re&&!im) *s="0";

if(re) *s=*rs;

if(im==1&&re) *s+="+i";

else if(im==1) *s="i";

else if(im>0&&re) *s+=("+"+*is+"i");

else if(im>0) *s+=(*is+"i");

if(im==-1) *s+="-i";

else if(im<0) *s+=(*is+"i");}

else { if(im) *s=lp+*rs; else *s = *rs;

if(im) *s += (c+*is+rp);}

delete[] is; delete[] rs;

return*s;}