Результат програми:
Завдання 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; }
