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

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

Завдання 2

Текст програми:

#include<iostream.h>

#include<conio.h>

class Distance

{private:int feet; float inches;

public:

Distance():feet(0),inches(0.0) {}

Distance(float fltfeet)

{feet=(int)fltfeet; inches=12*(fltfeet-feet); };

Distance(int ft,float in){feet=ft;inches=in;};

int Vvid()

{cout<<endl<<" Введiть значення футiв довжини -- "; cin>>feet;

cout<<endl<<" Введiть значення дюймiв довжини -- "; cin>>inches;};

void showdist()

{cout<<feet<<"\'-"<<inches<<'\'';};

friend Distance operator+(Distance,Distance);

friend Distance operator-(Distance,Distance);

friend Distance operator*(Distance,Distance);

friend Distance operator/(Distance,Distance);};

//////////////

Distance operator+(Distance d1,Distance d2)

{int f=d1.feet+d2.feet; float i=d1.inches+d2.inches;

if(i>=12.0){i-=12.0;f++;}; return Distance (f,i); }

Distance operator-(Distance d1,Distance d2)

{int f=d1.feet-d2.feet; float i=d1.inches-d2.inches;

if(i<0.0){i=1+i;f--;}; i/=12; if(f<0)i=f-i; else i+=f; return i; }

Distance operator*(Distance d1,Distance d2)

{int f=d1.feet*d2.feet; float i=d1.inches*d2.inches;

if(i>=12.0){f+=(int)(i/12); i-=12.0*((int)(i/12));} return Distance (f,i); }

Distance operator/(Distance d1,Distance d2)

{int f; float i;

if(d2.feet!=0)

{f=(int)(d1.feet/d2.feet);

if(d2.inches!=0)i=d1.inches/d2.inches;

else {cout<<endl<<" Дiлення на нуль не можливе. "<<endl; return -1;}; }

else

{if(d2.inches!=0)i=d1.inches/d2.inches;

else {cout<<endl<<" Дiлення на нуль не можливе. "<<endl; return -1;}; }; return Distance (f,i); }

//////////////

int main()

{float zm=0,chs1,chs2; int key; Distance d3;

do{system("cls"); setlocale(LC_ALL,"Russian");system("mode con cols=80 lines=16");

cout<<" Введення даних. "<<endl;

cout<<" Введiть першу довжину у метрах-- "; cin>>chs1; Distance d1(chs1);

cout<<" Введiть другу довжину у метрах-- "; cin>>chs2; Distance d2(chs2);

cout<<endl<<" Результат роботи програми: ";

cout<<endl<<" Значення першої довжини у футах: "; d1.showdist();

cout<<endl<<" Значення другої довжини у футах: "; d2.showdist();

d3=d1+d2; cout<<endl<<" 1. Додавання d3=";d3.showdist();

d3=d1-d2; cout<<endl<<" 2. Вiднiмання d3=";d3.showdist();

d3=d1*d2; cout<<endl<<" 3. Множення d3=";d3.showdist();

d3=d1/d2; cout<<endl<<" 4. Дiлення d3=";d3.showdist();

cout<<endl<<" Для виходу iз програми натиснiть клавiшу Esc. ";

cout<<endl<<" Виконала студентка групи 310П:";

cout<<endl<<" Каспришин Наталiя.";key=getch();}

while(key!=27); return 0; }

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

Завдання 3

Текст програми:

#include<iostream.h>

#include<conio.h>

////////////////

class Array

{private:

int* ptr;

int size;

public:

Array():ptr(0),size(0)

{ }

Array(int s):size(s)

{ptr=new int[s];}

int& operator[](int j)

{return *(ptr+j);};

int getsize(){return size;};

int getmasi(int j){return *(ptr+j);};

Array(Array& mas)

{size=mas.getsize(); ptr=new int[size];

for(int i=0;i<size;i++) *(ptr+i)=mas[i]; };

~Array(){delete[] ptr;};

Array operator= (Array* pok)

{size=pok->getsize(); ptr=new int[size];

for(int i=0;i<size;i++) *(ptr+i)=pok->getmasi(i); delete pok; };

};

///////////////

int main()

{ int key,z,doh=-1;

do{system("cls");setlocale(LC_ALL,"rus");system("mode con cols=80 lines=10");

cout<<" Введiть довжину масиву -- "; cin>>doh;

Array arr1(doh);

for(int j=0;j<doh;j++)arr1[j]=rand()%1994;

Array arr2(arr1),arr3; arr3=arr1;

cout<<endl<<" Результат роботи програми: "<<endl<<" Масив arr1: ";

for(int j=0;j<doh;j++)cout<<arr1[j]<<" ";

cout<<endl<<" Масив arr2: ";

for(int j=0;j<doh;j++)cout<<arr2[j]<<" ";

cout<<endl<<" Масив arr3: ";

for(int j=0;j<doh;j++)cout<<arr3[j]<<" ";

cout<<endl<<" Для виходу iз програми натиснiть клавiшу Esc. ";

cout<<endl<<" Виконала студентка групи 310П:";

cout<<endl<<" Каспришин Наталiя.";key=getch();}

while(key!=27); return 0; }