Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 Вариант.doc
Скачиваний:
11
Добавлен:
17.09.2019
Размер:
227.84 Кб
Скачать

8. Функция main()

void main()

{

char ch;

try

{

list<Time> list1;

int n;

cout<<"Input the size of the list"<<endl;

cin>>n;

list1=Create_list(n);

print_list(list1);

cout<<"Input position to insert min element"<<endl;

cin>>n;

ins(list1,min_el(list1),n);

print_list(list1);

Del_m(list1,Avg(list1));

cout<<"After deleting elements greater than average"<<endl;

print_list(list1);

mult(list1,max_el(list1));

cout<<"Multiplicated by max"<<endl;

print_list(list1);

}

catch(int)

{

cout<<"Error";

}

cin>>ch;

}

9. Результаты работы программы

Input the size of the list

10

0:41 7:47 5:34 8:20 2:49 12:4 7:58 5:58 16:2 7:44

Input position to insert min element

6

0:41 7:47 5:34 8:20 2:49 0:41 12:4 7:58 5:58 16:2 7:44

After deleting elements greater than average

0:41 5:34 2:49 0:41 5:58

Multiplicated by max

244:38 1992:52 1008:22 244:38 2136:4

Задача 3.

10. Описание параметризованного класса.

template <class T>

class Vect

{

vector<T> c_vect; //последовательный контейнер для хранения элементов

int len; //длина контейнера

public:

Vect();

Vect(int s);

//конструктор с параметром типа int - длиной создаваемого контейнера

~Vect(); //деструктор

void prn(); //печать элементов контейнера

T min_el(); //величина минимального элемента

T max_el(); //величина максимального элемента

T Avg(); //среднее арифметическое элементов контейнера

void Del_m(T a); //удаление элементов, больших a

void ins(T a,int n); //вставка элемента a на позицию n

void mult(T a); //умножение всех элементов контейнера на величину a

};

template <class T>

Vect<T>::Vect() {len=0;}

template <class T>

Vect<T>::Vect(int s)

{

T a;

len=s;

for(int i=0;i<s;i++)

{

cin>>a;

c_vect.push_back(a);

}

}

template <class T>

Vect<T>::~Vect() //деструктор

{

c_vect.clear();

}

template <class T>

void Vect<T>::prn()

{

for(int i=0;i<len;i++)

cout<<c_vect[i]<<" ";

cout<<endl;

}

template <class T>

T Vect<T>::min_el()

//поиск минимального элемента

{

T min=c_vect[0];

for (int i=1;i<len;i++)

{

if (c_vect[i]<min)

min=c_vect[i];

}

return min;

}

template <class T>

T Vect<T>::max_el()

//поиск максимального элемента

{

T max=c_vect[0];

for (int i=1;i<len;i++)

{

if (c_vect[i]<max)

max=c_vect[i];

}

return max;

}

template <class T>

T Vect<T>::Avg()

//нахождение среднего арифметического

{

Time a;

for (int i=0;i<len;i++)

a+=c_vect[i];

a/=len;

return a;

}

template <class T>

void Vect<T>::Del_m(T a)

//удаление элементов, больших a из контейнера

{

vector<T>::iterator it1;

it1=c_vect.begin();

while (it1!=c_vect.end())

{

if (*it1>a)

{

it1=c_vect.erase(it1);

len--;

}

else

if (it1!=c_vect.end())

it1++;

}

}

template <class T>

void Vect<T>::ins(T a,int n)

//добавление элемента a на позицию n

{

vector<T>::iterator it1;

if (n>len+1||n<1)

cout<<"No such position"<<endl;

else

{

it1=c_vect.begin();

for (int i=0;i<n-1;i++)

it1++;

c_vect.insert(it1,a);

len++;

}

}

template <class T>

void Vect<T>::mult(T a)

{

for (int i=0;i<len;i++)

c_vect[i]*=a;

}

11. Глобальные функции для выполнения заданий отсутствуют.